If you’re a mobile developer like me, you’ve already heard about the new toy everyone is playing with these days: Flutter – Google’s open source SDK for building native apps for iOS and Android from a single codebase. In other words, it’s Google’s competing horse against Facebook’s React Native, to say the least.
Let’s give a quick and short summary of the basic technical concepts that are currently known about Flutter. For more details, check out Google’s blog post.
What is Flutter
- Cross-platform mobile development (iOS & Android) with a single codebase
- Written in Dart
- Clear & Concise Syntax (e.g. less code)
- Hot Reload (you see the results of your code in milliseconds)
- Full Native Performance for critical platform differences (such as navigation, scrolling, icons, and fonts)
- Compiled directly to native ARM code, with access to platform-specific APIs (e.g. Bluetooth)
- It integrates with Java/Kotlin code on Android as well as Swift/Objective-C on iOS
- It’s focused on beautiful visual elements, such as UI components and animations – you control every single pixel on the screen – it’s been literally marketed as Google’s Portable UI Toolkit
- Principled around small reusable components that react to changes in “state” (just as React Native)
- Close integration with Firebase (shocking)
- Built-in support for UI theming (get a dark mode for your app in seconds)
- Open Source
- No over-the-air updates
- Written in Dart
- Restricted to iOS and Android only
- Few open-source Flutter UI components and libraries (young community overall)
Why should you care about Flutter
At first sight, Flutter’s value proposition is to allow mobile developers to build cross-platform apps with truly native UI and truly native performance. This is an extremely bold promise and it’ll differentiate it immensely from value props of React Native or regular Swift/Kotlin development.
Assuming it meets the expectations, Flutter will make mobile app development suck less, but it’s definitely not a magic bullet. It does seem like you’ll be able to build relatively simple apps (e.g. an e-commerce app) that are more beautiful and performant than React Native ones – you’ll sacrifice over-the-air updates, but hey, I’ll take it.
Another reason why you’ll want to keep an eye on Flutter developments is that there are rumors it’ll play a big part in Fuchsia OS, the upcoming Google’s mysterious operating system (Fuchsia’s UI is being built in Flutter).
Additionally, being backed by Google, Apple will be the only rival Flutter will fight, as compared to React Native which fights against both Google and Apple. This should give Flutter double the odds of succeeding. Well, if you don’t count the 4 years React Native has ahead of Flutter.
Time will tell, but Flutter seems to be targeting solutions to the pain points React Native created and it addresses many complaints native mobile developers have had against platforms such as Ionic, Xamarin or React Native (native look-and-feel UI and performance). While it’s is still in very early stages, I’d think twice about doing anything serious with it, but I’ll definitely monitor its progress closely.