As a developer who tries to avoid being pigeon-holed, I sure have been writing a lot of web-applications lately. It’s the inevitable draw of new and shiny technologies that have sucked me in: Angular and React duking it out for top spot in the SPA world, Redux and MobX competing for state management…it’s all happening out there in the web-dev world! Finally, however, there are some exciting options cropping up on the other side of the proverbial development fence; and recently I’ve been exploring them. One, in particular, has caught my attention. Perhaps I should rephrase that a bit: one, in particular, has been consuming my every waking thought. It’s Google’s new mobile-development framework, and it’s amazing.
Flutter has been in development for a little while now, but it finally hit Release Preview 1 in June and I am absolutely all-in with this platform. First off, it has direct integration with the latest Android Studio. Android Studio has been fantastic ever since it switched over from being a strange version of Eclipse to being run by the team over at Jet Brains (authors of the esteemed IntelliJ and WebStorm). Being supported so strongly in the IDE means that it feels like I’m really doing mobile development. I can debug and deploy directly to my iPhone or Android device directly from inside the IDE with one button. You can setup break-points directly in your code, view your object graphs, and even see your rendering stack directly from Android Studio. It’s a class act.
Flutter supports compilation to native code for both Android and iOS. Similar to React-Native, Flutter is designed to provide a real “installed app” and not the hybrid sort of system that Ionic and Cordova offer. That means that your production-built code isn’t running inside of a browser on the phone, it’s running natively. That’s a huge deal if you want to make sure your app gets the best performance and your users get the best experience. Of course, constantly compiling via Xcode would make development mighty slow, and Flutter has your back there too. It offers an interpreted hot-loading deployment as well, so that you can hit “save” in Android Studio and see your changes appear in a little under a second on your physical device. It’s absolutely astonishing to see such a quick turn around on-device.
Let’s finish off here with a note about design: in addition to a cross-compiling mobile-development platform that supports hot-reloading on development devices, we also get a ton of pre-existing components and icons that you can use to build your apps. There are both Material and Cupertino style widgets, along with support for creating your own custom widgets if you’re going for a specific look. There’s even native .gif animation support. Come on, you know that’s cool. Everyone loves a good animation or two.