Google invests heavily in Flutter, a cross-platform framework for building native iOS and Android apps from a single codebase.
Building an app for both iOS and Android
If your business wants to create a mobile app, you likely want it to appear on both iOS and Android. Simply speaking, there are two ways to do this:
- Native development — develop a native iOS app and a native Android app, separately
- Cross-platform development — use a framework to develop both apps from the same codebase
Native development
Each platform holder provides a means for software developers to build native apps on their platform. Apple’s iOS SDK (Software Development Kit) enables developers to build iOS apps using Objective-C or Swift. Google’s Android SDK similarly allows devs to write Android apps in Java or Kotlin.
Cross-platform solutions
There are also third-party frameworks that allow developers to build apps for both iOS and Android (and sometimes other platforms as well) from one codebase. There might be some platform-specific code you have to (or want to) write, but the idea is that that the vast majority of the code is shared across all platforms. Building with these frameworks allow devs to produce real apps that can be released and sold on the iOS App Store and the Google Play app store.
Pros and Cons
The big-headline advantage of cross-platform development is producing your iOS / Android app faster and more cheaply than building two separate native apps. A single codebase for both apps is a benefit throughout the product lifecycle, as every new feature and change needs only be developed once, instead of once for each platform.
Other advantages include having a single development team for both apps. iOS and Android native development often require a separate development team for each platform, if not because of the separate knowledge bases, then because parallel development is required if you want apps or features to be available on both platforms simultaneously.
There are disadvantages, of course, and they vary depending on the framework. I won’t go too deeply into those here. Suffice it to say that some frameworks result in slower-performing apps (particularly if they don’t actually get compiled into native code), display non-native look and feel, provide limited or delayed access to device features, and/or require specific expertise that your team may not have.
Enter Flutter
Remember how I said each platform holder provides an SDK for creating apps? Well Google has introduced another SDK for building mobile apps, in parallel with its existing SDK.
It is called Flutter, and it’s a framework that allows developers to create native mobile apps for both Android and iOS.
Relatively new, but maturing fast
Google introduced Flutter a year ago, providing an alpha release and inviting developers to try it out. In February of 2018 Google announced the beta release of the Flutter. While still in beta, developers and companies have produced real applications with the framework. The most famous of these is the app for Hamilton the musical.
Google is putting serious effort into Flutter. As stated in their beta 3 release announcement earlier this month, Google has “invested tens of thousands of engineering hours preparing Flutter for production use” over the past year. In addition, Google touted Flutter at their Google I/O 2018 conference, devoting several hours of livestream sessions to the framework.
Google has labeled beta 3 as “ready for production apps,” and counts hundreds of Flutter apps already released through app stores.
A promising option
Flutter outputs compiled native apps on both platforms, which should largely eliminate the performance issues other cross-platform solutions exhibit. Flutter provides native UI controls for Android and iOS, so while you’re free to design a single branded look and feel for both platforms, you can also use native widgets that iOS and Android users would expect to see in their apps.
With Flutter, Google has also prioritized ease and speed of development, from how widgets are used to lay out screens, to how you can see code changes reflected almost instantly while developing.
It’s worth noting that Google chose Dart as the programming language for Flutter. Dart is a programming language few developers have experience with, but is said to be relatively easy to learn.
The upshot
A year after Flutter’s introduction, Google has put a lot of muscle behind the framework.
The desire for rapid cost-effective cross-platform mobile development is not waning. Flutter is a promising framework for building iOS and Android apps in a way that maximizes development speed and minimizes the common drawbacks of non-native development.
Flutter will definitely tempt many developers and product teams to at least try it out over the coming year. It’ll be interesting to see how much traction Flutter has gained by next May.
Additional resources:
What’s Revolutionary about Flutter
Video sessions from the I/O 2018 conference
Learn about how BetaTesting can help your company launch better products with our beta testing platform and huge community of global testers.