To name a few:
- Can present components that look native to each platform
- Reactive UI architecture
- Easy to program UI components
- The UI components cannot break with OS updates and are the same across OS versions because the app ships with all the UI rendering code.
- Can build in VS Code; after installation, the tooling is invisible — it just works.
- No expertise in iOS, Android, Xcode, or Android Studio is required to build and deploy an app, unless you need to write native libraries not already available.
- Can debug on emulator and device from VS Code
- Can hot load changes, easing the UI dev cycle with instant feedback
- Excellent official documentation
- UI has native performance, apparently fast enough to support graphical UI (e.g. games)
- Interest in Flutter has been growing rapidly over the past several years
- Google appears to be making Flutter and Dart a high priority. Recently announced staffing increases. First implementing their new IoT OS (Fuchsia) for Dart.
- Libraries are readily discoverable via Dart packages and manageable via CLI
- Dart is easier to learn and master than Typescript and Java/Kotlin and yet well suited to existing Javascript and Java devs, so except for reputation, the language makes Flutter a better starting technology for new devs and devs not already familiar with React. This may also make the code easier and less expensive to maintain in the long run.
- Dart provides a tidier way to scope and organize code than other languages (personal opinion).