Using the Dart language for apps on Android and iOS
MWC2018 Fancy a Flutter? Google is hoping users will take a bet on its new cross-platform mobile development framework, whose first beta was announced at Mobile World Congress last week.
Dart on the other hand benefits from a native code compiler that targets both Android and iOS. One way to think of Flutter is that it extends Dart to mobile apps.
Why would you use Dart rather than some other framework? The ability to share code across Android and iOS is attractive, but there are many other options for this. Dart does benefit from a modern design, including a reactive framework which means that changes in state can automatically propagate through the user interface. It also has a well-designed set of widgets including Material Components that implement Google’s Material Design concept, and Cupertino widgets that follow the iOS design style. No surprise: the Material Design set is more comprehensive.
You can use any editor for Flutter development, but there are specific plugins for Android Studio, JetBrains IntelliJ (on which Android Studio is based), and Microsoft’s Visual Studio Code. Getting started is a matter of installing the usual components of an Android development environment and adding the Dart and Flutter SDK and tools. The Flutter team has a nice tool called Flutter doctor which checks dependencies and makes recommendations.
The Flutter tools do not include any kind of visual designer. At Google’s Mobile World Congress stand I was told that such a designer could get in the way of designing a responsive user interface. That said, a great feature of the debug environment is called Hot Reload. This lets you change the code while debugging, press in the terminal pane, and see the change almost immediately reflected in the running application.
Flutter (and Dart) are open source and free to use. Why is Google investing in it? The answer, I was told, is that Google hopes Dart users will use other Google services. The idea is that a framework that simplifies building Android applications that conform to Google’s design guidelines will also benefit Android as a whole. In other words, the same reasons platform companies always have for providing free or subsidised development tools.