Note: This is an updated version of the article published in July 2018, written by Helina Ariva. The updates reflect developments in both Flutter and Nevercode.
Flutter is a free, open-source mobile SDK that can be used to create Android and iOS apps from the same code base. Having rolled out its release preview 2 in September, Flutter is steadily moving towards the launch of Flutter 1.0, and the number of Flutter apps released is growing continuously. However, the mobile development industry is still apprehensive about Flutter. Will it become popular? We will not make any predictions here, but simply want to let you know that we are prepared and ready for Flutter.
In this post, we’ll give a quick overview of Flutter and instruct you to build your Flutter app with Nevercode’s out-of-the-box continuous integration and delivery integration 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 50. This, without a doubt, is a promising trend. Even though there is no stable version of Flutter out yet, 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 latest version.
Without making any comparisons with other platforms, here’s a list of some 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.
Read also about why Flutter will take off in 2018.
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.
The majority of the doubt about Flutter, however, concerns its novelty. Since Flutter is still in preview, some developers claim that it could not be used for building a complex commercial app yet and it’s better suited for simpler apps and prototyping. Yet, by looking around on the Internet, one can find success stories about Flutter apps already in production. For example, Tetsuhiro Ueda concludes in his article on making the app CARTUNE with over 200K users that although stability is an issue, he is “satisfied with the high development efficiency” and believes that the SDK will get better with every day.
Implement a proper CI/CD tool
As mentioned above, first Flutter apps have been already released to the public. When you’re building a Flutter app or considering doing so, don’t forget about implementing a proper continuous integration and delivery (CI/CD) tool to help you build, test and distribute your app.
While the developer community must still wait for the first stable version of Flutter SDK, we at Nevercode are happy to let you know that you can already set up and build your Flutter app on Nevercode in a matter of minutes.
Building Flutter apps with Nevercode
Nevercode is the first CI/CD for mobile that offers out-of-the-box support for building, testing and distributing Flutter apps. You are required to set up your project just once and Nevercode will build it for both iOS and Android. Your tests are detected and run automatically.
All you have to do is:
- Connect your repo.
- Decide what app configuration to build.
- Click Save and start build.
Once you have added the app and run the very first build, you can take full advantage of the features and configuration options that we offer, including code signing and app distribution. See how to set up Flutter apps on Nevercode to get started, or read the hands-on tutorial for using continuous integration and delivery for Flutter apps with Nevercode on our blog.
Whether Flutter will end up winning mobile developers over or not remains to be seen. However, when you have already chosen Flutter as your SDK or decide to give it a try, we urge you to do it right and automate building, testing and distribution of the app by implementing a proper mobile CI/CD tool.
PS. You can try Nevercode 14 days for free.
What do you think, will Flutter end up winning mobile developers' hearts? Let us know in the comments.
If you liked this post, don’t forget to leave a 👏!