For a while now we've been playing around with Google's new cross platform SDK, Flutter. Recently this resulted in our first Open Source plugin, Geolocator for Flutter.
However, there's more than our usual love for open source and curiousity for new technology that makes us rather excited about Flutter. So what's the deal here?
If you look at the available cross-platform solutions out there the basic architecture is more or less the same: use a language you can use on all supported platforms and make a bridge to the native platform API's. There's a difference between platforms that also bridge to the UI related API's (Xamarin for example) vs. the web based one's like Cordova that use a web view for the UI.
Still, in general you could say that your application works in user space, while talking to OS API's. These API's are part of the Operating System and make a developers live easy. At least that was the plan...
Flutter takes a different approach: it uses a language from the web ecosystem (Dart) and instead of talking to OS API's it just 'draws' directly to the screen. Why do you want to do that? Performance! Not having to deal with native API's that need to handle all kinds of different use cases, a Flutter app asks for a canvas and then draws directly onto it. This is done with a very high performance graphics rendering engine called Skia. Probably you're already familiair with Skia, because it's also used by Google's Chrome browser.
This blog is neither the time, nor the place, to discuss how Skia works but one thing is clear: a Flutter app is capable of graphics rendering performance numbers that are way beyond what you can achieve with a 'tradional' native app.
We've been doing cross-platform for many years now. Over those years we learned to use those platforms to their maximum potential. The business case for doing cross-platform is quite simple isn't it? Well, we've been running into corner cases where, more often than not, it ended with: "maybe we should have done this with a native app".
And while it's still too early to tell (Flutter just recently left the beta stadium), we're becoming more and more convinced that Flutter might be that cross-platform solution that fits all our needs.
Still interested? Want to know more? Then join our Meetup in August where we tell and show you more about Flutter!