Flutter is a free, open-source mobile SDK that can be used to create native-looking Android and iOS apps from the same code base. Being in beta for a while, Flutter 1.0 was officially launched in December 2018. However, the mobile development industry is still apprehensive about Flutter. Will it become popular? That still remains to be seen.
In this post, we’ll give a quick overview of Flutter and instruct you to build your Flutter app with Codemagic CI/CD exclusively for Flutter.
The gist of it
Flutter has been around already since 2015 when Google first introduced it, but the buzz around it has grown stronger only lately.
It’s a cross-platform tool intended for creating Android and iOS apps from a single code base by using a modern, reactive framework.
Flutter apps are built using Dart, a simple object-oriented programming language.
The central idea of Flutter revolves around widgets. The entire UI is made of combining different widgets, each of which defines a structural element (like a button or menu), a stylistic element (like a font or color scheme), an aspect of layout (like padding), and so on. Flutter does not use OEM widgets, but provides its own ready-made widgets which look native either to Android (Material Design) or iOS apps (Cupertino). It’s also possible to create custom widgets. Look here for a technical overview.
In terms of popularity, Flutter is making good progress. While Flutter had made it to the top 100 software repos based on GitHub stars by the time release preview 1 was announced in June 2018, it has risen in the ranks and is now among the top 30. This, without a doubt, is a promising trend. Thousands of Flutter apps have made its way to app stores, among these the Alibaba app with 50 million users. Read more about what the Flutter team has to say about their first stable release and what’s on their product roadmap for 2020.
Benefits of Flutter
Without making any comparisons with other platforms, here’s a list of some of the features and qualities that may make you consider having a go at Flutter:
- High productivity. Since Flutter is cross-platform, you can use the same code base for your iOS and Android app. This can definitely save you both time and resources.
- Fast and simple development. One of the most lauded features of Flutter is hot reload which allows you to instantly view the changes made in the code on emulators, simulators and hardware. In less than a second, the changed code is reloaded while the app is running with no need for a restart. This is great not just for building UIs or adding features but also for bug fixing. As far as simplicity is concerned, Flutter claims in its docs that programming with Flutter is so easy that no prior programming knowledge is required: “Experience with object-oriented languages is definitely helpful, but even non-programmers have made Flutter apps!” There’s only one way to find out whether this is true.
- Compatibility. Since widgets are part of the app and not the platform, you’ll likely experience less or no compatibility issues on different OS versions. This in turn means less time spent on testing.
- Open-source. Both Flutter and Dart are open-source and free to use, and provide extensive documentation and community support to help out with any issues you may encounter.
What’s holding developers back
Developers building native Android and iOS apps may be put off by the need to learn yet another programming language, that is, Dart. And if you’re planning to hire a team of Dart developers for your Flutter app, you might face staffing problems as there are not too many of them out there. However, due to its simplicity, Dart is relatively easy to pick up, and knowing an additional programming language is definitely an advantage to any serious developer.
Also, Flutter might not be your platform of choice when you’re developing games or an app that requires a lot of device-specific functions.