How I built a cross-platform, connected app in ~7 days

Yes, that’s true! I indeed built a very simple, beautiful app for a client recently in just ~7 days and I did that with a tool which isn’t even out of alpha. Isn’t it amazing? Yes I know, it’s kind of crazy, but you get a strange kind of confidence when you know that folks at Google are totally behind this thing.

Flutter is a new mobile app SDK to help developers and designers build modern mobile apps for iOS and Android.

I found out about Flutter last year when it was very early and even the website/wiki didn’t have much help apart from a getting started section and widget catalog. But there was something which made me hopeful about this and I started following it since then. In Google I/O 2017, finally, there were two amazing talks covering Flutter (find them at the end of this post), and I knew something big is coming :)

To summarize, the apps built with flutter:

  1. Have very rapid development cycle thanks to features like Hot Reload.
  2. Are developed in Dart which is in itself a very easy to learn language.
  3. Are beautiful with full support of Material Design, animations and native navigation.
  4. Are very high performant and render at ~60FPS.
  5. Are completely cross-platform (iOS and Android).
  6. Have consistent look and feel on both platforms.

Flutter has a fairly straightforward setup and the installation guide is simple enough to follow. They have a getting started guide and a quick Dart introduction too. I, myself, didn’t know Dart prior to working with Flutter but it is very easy to learn as you go. I also recommend to follow the two codelabs (1 and 2) and also, explore the widget catalog. To know what’s under the hood (and that’s really optional), and how the framework is implemented, check out their technical overview.

What I really like about Flutter, is their beautiful set of Material Design widgets. You get cards, collapsible lists, color palettes, and icons out of the box. All these things seamlessly work consistently across both platforms with equally good performance. Their widget catalog is very strong and especially some controls like ListTile are very versatile and convenient. ListTile is especially something that helped me a lot in building forms, information pages and lists alike. I wish other frameworks also have something like this built into their component library.

Screenshots of the app

I will be writing more on Flutter in future as I explore the framework, meanwhile, check out the videos from Google I/O ’17. Please share your suggestions and queries in comments and I’ll try my best to answer them.

Thanks Wm Leler for pointing out another cool video: