Abstract
Flutter Tools Nvim is an open-source Mobile App Development project. Tools to help create flutter apps in neovim using the native lsp. Build flutter and dart applications in neovim using the native LSP. It adds the ability to easily launch flutter applications, debug them, as well as extending/exposing LSP functionality such as the widget guides, an outline view of your widgets, and hot reloading. It is built using Lua, Flutter, Dart. Key capabilities include: FlutterToolsOutlineIndentGuides - indent guides for the outline window; FlutterToolsDimmed - de-emphasised text: closing tags, outline return types and menu hints. The complete source code is publicly available on GitHub under the MIT License, making it a useful reference for students building a Mobile App Development mini project or final-year project.
1. Introduction
Build flutter and dart applications in neovim using the native LSP. It adds the ability to easily launch flutter applications, debug them, as well as extending/exposing LSP functionality such as the widget guides, an outline view of your widgets, and hot reloading.
This plugin draws inspiration from emacs-lsp/lsp-dart, coc-flutter and nvim-metals.
This plugin only enhances and adds to the functionality provided by nvim. It does not by itself provide autocompletion, code actions or configure how errors from the language server are displayed. This is all handled by configuring the lsp client.
2. Objective
Tools to help create flutter apps in neovim using the native lsp
This project demonstrates how Lua, Flutter, Dart can be applied to a real-world Mobile App Development problem.
3. Key Features / Modules
- FlutterToolsOutlineIndentGuides - indent guides for the outline window
- FlutterToolsDimmed - de-emphasised text: closing tags, outline return types and menu hints.
4. Technology Stack
5. System Requirements
General requirements for this technology stack — check the README for exact versions.
- Flutter SDK
- Android Studio or VS Code with Flutter plugin
- Android / iOS device or emulator
- Git (to clone the repository)
6. Installation & Setup
git clone https://github.com/nvim-flutter/flutter-tools.nvim.git
cd flutter-tools.nvim- FlutterRun - Run the current project. Respects config.debugger.enabled setting.
- FlutterDebug - Force run current project in debug mode.
- FlutterDevices - Brings up a list of connected devices to select from.
- FlutterEmulators - Similar to devices but shows a list of emulators to choose from.
- FlutterReload - Reload the running project.
- FlutterRestart - Restart the current project.
- FlutterQuit - Ends a running session.
- FlutterAttach - Attach to a running app.
{
'nvim-flutter/flutter-tools.nvim',
lazy = false,
dependencies = {
'nvim-lua/plenary.nvim',
'stevearc/dressing.nvim', -- optional for vim.ui.select
},
config = true,
}vim.pack.add({
'https://github.com/nvim-lua/plenary.nvim',
'https://github.com/stevearc/dressing.nvim', -- optional for vim.ui.select
'https://github.com/nvim-flutter/flutter-tools.nvim',
})
require('flutter-tools').setup {}Full setup instructions are in the project README.
7. Future Enhancements
Suggested extensions you can add to make this your own project.
- Add push notifications with Firebase Cloud Messaging
- Add offline support with local caching
- Publish an internal test build on the Play Store
8. Viva / Review Questions
Common questions examiners ask for projects in this domain.
- Which framework is used and why (native vs cross-platform)?
- How is app state managed across screens?
- Where is the data stored — locally, Firebase or a REST backend?
- How are permissions (camera, location, storage) handled?
- How would you publish this app to the Play Store / App Store?
9. Source Code & License
This project is developed by nvim-flutter and published on GitHub under the MIT License. Please follow the license terms and credit the original author when you use or modify this code.
Want to build this as your internship project?
Work on a Mobile App Development project like this with mentor guidance, weekly reviews and an internship certificate from Training Trains, Erode — online or offline.
Apply for Mobile App Development Internship