Flutter is a new way to build apps for mobile, desktop and web platforms. A first look from Xamarin developer.
Mykhail Galushko 05.20.2019
We are heavily using Xamarin to build mobile apps for last 6 years and we are quite satisfied with the platform. Our main product: Inphiz mobile app (digital workplace for SMB and enterprise) - is built with Xamarin and Xamarin.Forms.
However mobile ecosystem is changing very fast, so we always should check latest trends to be able to deliver great experience to users.
Flutter is a hot topic in mobile community and in our team also. We have already done multiple POC and built serveral medium-size apps to prove the technology. And I would say that we are satisfied with the result.
Let's check the details of Flutter and what you get as a developer or a customer:
Development speed: existing tools (Android Studio, Visual Code) allows you to write code, build it, run, make changes and see changes in real-time (with hot reload): overall it makes development speed super fast.
Native performance: Flutter is using Skia (C++ engine) to draw UI, that provides overall native performance.
Platforms support: not only mobile platforms (iOS, Android) are supported, but desktop (WIndows, Mac, Linux) and web is under development now. Overall Flutter is planned as a solution for any platform.
Google is behind it and using for their products Google is using it for their services, so they are interested to extend and maintain it. Also Flutter is planned as default way to build apps for Fuchsia (next generation OS by Google)
Possible to reuse native libraries: all existing native libraries can be connected to Flutter app. So you just need to spend time to build connection (if community didn't do it yet).
Great tools: Android Studio, Flutter Inspector, Visual Studio Code.
Non-native UI (but looks and behaves native): as I mentioned earlier - UI is drawn via Skia library. It means that native controls are not used.
Age of the platform: it was released to production use a while ago (4 Dec 2018), so community is not so big yet and not so many libraries & integrations are available for now. So you will need to build integration yourself and bring it to community.
Have a look at most known apps, built with Flutter: