Vivek Viswanathan
Vivek Viswanathan Staff Engineer at Compass. Passionate about building software that pushes hardware to its limits!!

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.

comments powered by Disqus