Flutter was highly recommended by various developers as a tool that solves all cross-platform development issues and makes the process even more efficient. Since we always check out new, promising solutions to recommend the best technologies to our clients, we needed to check Flutter out. During our first Flutter app development project, we’ve learned a few things and received an answer to the question: will Flutter dominate cross-platform development?
In this article, we will cover:
- Our first project with Flutter
- 8 lessons learned about Flutter app development
- Conclusions after the first Flutter project
- When do we recommend using Flutter
Our First Project with Flutter
Flutter is a mobile app SDK for cross-platform app development, created by Google. It provides a framework, tools and widgets needed to create and deploy an app that works on Android and iOS devices.
There was a lot of media buzz around Flutter, and many developers were recommending it as the best cross platform framework ever. Many companies already took advantage of Flutter development: check out these Flutter app examples to get inspired.
Since our goal is to offer our clients with the best technological solutions possible, we had to check Flutter out. Our developers decided to learn how to code with Flutter and create the first app with the framework. We wanted to analyze its pros and cons and find out how it can be beneficial for our clients.
What We’ve Learned About Flutter: 8 Lessons
Below, we present 8 crucial insights after our first Flutter app development project.
1. Flutter is easy to learn
At first, we needed to learn more about Flutter and Dart – a programming language used for writing Flutter apps. It turned out that it’s really easy to learn, especially for developers who are familiar with JavaScript. Both Flutter and Dart have low entry thresholds. What helped us to figure out the best practices of Flutter development, was broad documentation. It cleared out how to configure the environment, provided us with examples and explanations, offering a few basic lessons. What helped a lot, was a section that compared Flutter development with other frameworks.
2. You can set up the environment easily
The environment setup appeared to be rapid and easy. Flutter is integrated with popular IDEs: Android Studio, Visual Studio and Intellij IDEA, so every developer can start working immediately using their favourite tools. It gave us a quick start.
3. You need to figure out the layouts
The way of creating layouts with Flutter seemed a little confusing at first, but after figuring it out, it turned out that it’s easy to implement even the most complex layouts with Flutter. Although, we recommend reviewing the widget lifecycle, because not understanding it can lead to some unexpected bugs.
4. Hot Reload is useful, fast and reliable
What impressed us a lot was Hot Reload. We could experiment and immediately see changes in code, which also made bug fixing easier. Flutter’s Hot Reload is fast but also reliable. It allowed us to be more productive. Flutter also offers a plugin to easily check widgets, perform unit and integration tests. That and Hot Reload made testing a lot easier for us.
5. UI is written in Dart
Flutter offers ready UI elements that are adjusted to Cupertino and Material Design standards. It’s really easy to customize the UI. Material Theming allowed us to define consistent style parameters easily. What’s important, UI components are built into code. Flutter doesn’t use CSS or JSX-style syntax to style UI. UI layout and styling are written in Dart.
6. Flutter has a few cool integrations
Flutter provides good integration with other Google’s services, like Firebase, which we often use for data storage. It also offers a few other useful integrations, like with Supernova. With that, we were able to export Sketch designs directly to Dart code.
7. One widget matches Android and iOS looks
Flutter comes with its own set of widgets instead of using the native UI controls for each platform. Every widget works on both platforms and we don’t need to write any platform-specific code. Flutter displays them properly on each one of them. The framework takes care of specific behaviour, like scrolling, so Flutter apps really look like native ones. What is more, with Flutter everything is a widget, and we can almost be sure that there’s already a widget for anything we would like to create.
8. With Flutter, you literally write one code for both platforms
With Flutter, you write the code once and run it on multiple platforms. Developers don’t need to write any platform-specific code. Also, creating code in Dart, we didn’t have to build bridges like with React Native or Ionic. Dart is compiled ahead-of-time into native code, so it doesn’t need bridges. It facilitates the development and makes the app faster.
Conclusions After First Flutter Project
What impressed us a lot, was the performance of Flutter apps. No bridges and a different approach to layouts make them really fast. Flutter was easy to learn and we were able to create an app time-efficiently. Our favourite feature was Hot Reload, which was reliable and made the development process fun. We managed to create a delightful, easy-to-use app quickly, and share the code between platforms by almost 100%. With Flutter, the popular phrase “Code once, run on multiple platforms” actually works.
It is visible that Flutter is a serious Google’s project. We’ve learned about that already during last year’s Flutter Interact conference when Google announced a lot of improvements and further development directions. They invest in the framework and promote it. It seems that they may even want to transform it into a recommended tool for Android app development. With so many tools and differences between Android versions and devices that a developer needs to cover, one code created with Flutter seems like a perfect, convenient solution.
Is Flutter a Good Choice for Your Project?
With the framework, the development process is quick and cost-efficient, and you get apps for Android and iOS literally with one code. Now, Flutter for the web is not ready yet, so we choose the framework for mobile app development projects, particularly when clients care about time and cost-efficiency. We especially recommend Flutter for MVP development. Although, we think that soon Flutter will be the first choice for cross-platform developers (and maybe some native Android ones) all over the world, even for the biggest projects.