It wasn’t too long ago when developers like us had to build applications for Android and iOS in entirely different environments, with entirely different enginneering teams. This was soon remedied by frameworks such as PhoneGap, Xamarin and React Native. While we've had success with the three in the past, it always felt like they were missing that special something that makes native applications feel... well... native.
Flutter is Google's attempt to compete with Facebook's React Native. The idea is that it takes one code-base written in Dart and compiles it down into native ARM code. Since it's native it can use the device to it's fullest potential, that means accessing the GPU and all of the native API's provided by the operating system. There are 3 primary examples that Google provides as to why Flutter is an exceptional framework.
- Fast development: At AndPlus, we pride ourselves on getting our customers to market fast. Really fast. A feature within Flutter called 'Hot Reload' allows code changes to reflect in real-time. This allows developers to view changes as they occur, rather than refreshing or recompiling.
- Expressive + Flexible UI: Flutter allows developers to access every pixel on the screen. This includes all animations, widgets, gestures and rendering all directly within the framework. Having all of this at your fingertips means you can build entirely custom designs and solutions.
- Fully native apps for iOS and Android: This doesn't just mean compiling the code down to Swift or Java. It means the applications will follow the Interface Guidelines provided by both Apple and Google. So scrolling, navigation and fonts will all blend in seamlessly with your stock applications.
It's a Beta?
Technically, yeah... it is. However, Google is already usingn Flutter full-time internally. The new AdWords app is written in Flutter. This application is used by companies to invest hundreds of millions of dollars a day into Google's advertising platform. This means that they believe in their tech and that's enough reason for us to start building with Flutter.
Notably, the Hamilton app was build in Flutter... yes Hamilton, the musical. It's a relatively popular application and blends into iOS and Android seamlessly, just as advertised.
Just because people are using it already doesn't mean it doesn't have some growing pains ahead of it though. As with all new technologies, it will have to prove stability over time before it's widely adopted. Development teams like us have been looking for a reliable, stable and well supported framework for cross-platform app building for some time now. We've built apps in Xamarin, PhoneGap and React Native with great success, but the journey wasn't always smooth.
A Bright Future
Still, the future of cross-platform development looks promising. It will never be completely simple to build 'two apps at once' but frameworks like Flutter can make the process much more enjoyable. Is Flutter the future of iOS/Android development or is it possibly the next step in replacing Android entirely? Some people think so... but we'll stay out of the rumors for now and build the best software we know how.