Try Google Flutter
Why Flutter?
It claims to provide support for building native apps on Andriod and iOS (and possibly other platforms) from a single codebase. As a Mobile App Developer myself, I tried to workaround the problem of building apps from single codebase across platforms by using webview + js. Some of the primary downsides in this approach are:
- When the application is graphics intensive, the interface become slow and doesn't give a pleasant user experience.
- The ui controls don't match the look & feel as that of the native platform
Hence, my urge to try out flutter and what it offers. From the support & community perspective, since Google is backing it, there is no immediate worry of this library going to a hibernate stage anytime soon.
Installation (windows)
The documentation provided here is pretty complete. I will just summarize the steps here:
- Make sure you have powershell (v5+) and Git installed and added to the PATH.
- Download Flutter from here - https://flutter.io/docs/development/tools/sdk/archive & Extract the archive
- Install Flutter & Darts plugin on your Android Studio (v3+)
- Use "flutter doctor -v" to check if the installation is all set
Building a Sample App
Creating a sample app using flutter and deploying the changes using AVD is explained here - https://flutter.io/docs/get-started/test-drive . The documentation is good and all you have to do is follow the steps.
I tried out the part-1 & 2 of the sample app and when on to try out the integration with camera later on. I used the image_picker, video_player and camera plugins. Here is the link to flutter plugins repo - https://pub.dartlang.org/flutter/packages
How good is it?
Here are some of the aspects that I found really good compared to other libraries used for mobile app development
- Hot Deployment - As soon as the change is made and saved, the plugin triggers a hot deployment of the changes on to the device. This makes the development iterations very fast.
- Performance - When the state changes, only the changes are applied on the interface thereby making the library optimal for performance
What could be improved
- While we have basic plugins available, the ecosystem is yet to improve. With google behind it and supporting the community, I have no doubt on the future path for flutter.
Feel free to comment on your experience with flutter.