FACT: Flutter is here and is providing a lot of interesting tools and has become a big player when it comes to cross-platform development.
This article is not intended to introduce you to Flutter and Dart, but with this article, I will try to impress you and make you start discovering all the potential that comes with Flutter. So below is a list of reasons why you should start or at least try to develop an app in a Flutter.
- HOT RELOAD
When you try Flutter it is impossible to not be amazed by the hot reload feature that is included. If you are from the Android world, then you can compare this thing with Instant run, which is not working so great. (FYI: An Android team is working hard with project Marble to fix this problem.) But with Flutter, they take this feature to a whole new level. Every time you make a change in your code, and when you save your file(cmd-s/ctrl-s), your change becomes immediately visible on the phone or simulator. Forget about preview inside of your IDE. You can check how stuff looks directly on the screen in the proper device. Also, keep in mind that hot reload feature is not working for all code changes in your file. Usually, when you don’t mess with the state of widgets that are in your code, the feature for performing a hot reload is working fine. And there is another goodie with this feature. Hot reload keeps the state of the app like it was before. So if you have the app for counting steps from 0 everytime you start the app, when you perform a Hot Reload, your counter will stay exactly where it was before hot reload was executed.
You can read more about this feature here: https://flutter.io/docs/development/tools/hot-reload
- TRY IOS APP ON ANDROID DEVICE OR EMULATOR
When I discovered this feature, I was even more impressed with Flutter. Approach for developers for running an iOS app on a physical device was never easier than with Flutter. No more working with provisioning profiles and certificates. No need for MacOS operating system to run your iOS app. You can run your app on a real device without that. Where is the catch? It needs to be an Android device. It is not as good as running your app on a real iPhone, but it’s as close as we can get. To achieve this, your app needs to be running on your phone. And everything you need to do is shown in an animation below. Yes, It’s that easy. And it’s working vice-versa.
3. FLUTTER IS OUT OF BETA
And usually, when this happens, it means that we are dealing with real stuff. Flutter was officially released as a stable version on December 5th on a Flutter Live 2018 event. And man oh man, what an event it was. I was not attending in person, but I watched all the videos from it, and they announced some great stuff for the future. You can see all the videos from this conference over here: https://bit.ly/2rTTZJK
4. COMMUNITY
It’s a new thing out there, but there is a lot of great stuff to check about Flutter. The community is growing fast. You can check graph about Flutter growth on StackOverflow here: https://bit.ly/2V04AA9
And because Flutter is a rookie that is officially fully released, you could take that as a challenge to make your name in the Flutter community. There is a lot of libraries that need to be developed and are demanded by developers that are using Flutter. And what is a better way to teach yourself, than to deep dive into problems that are currently around in the community? And don’t get me started with an effort from the Flutter team. They have The Boring development Flutter Show(https://bit.ly/2yWNmcr) that is all about development in a Flutter. They are doing live coding with all the mistakes, dead ends and demonstrating how to tackle those problems. They also publish a video per week for introducing widgets that are available in Flutter. They are calling those videos Flutter Widget of the Week(https://bit.ly/2MHAlJA). There is a lot of other videos on youtube and also some Flutter Facebook groups, so don’t be a stranger.
- FLARE
Animations were never easier. 2dimensions has created a tool for creating animation for Flutter, and when you try it, you see that it was developed with the intention for everyone to create animation with this tool. I have never done any animation in some external tool before, and when I tried Flare, I was amazed. I learn how to create a simple animation very quickly. And the process of getting this animation out to your app is very easy as well. You just export your animation from Flare as a .flr file and then with the help of a Flare package inside of your app you have your animation up and running in the matters of minutes. And in a case that you have some problem with Flare running in Flutter, you can post an issue to their GitHub account, and they will answer you in a couple of hours. At least for me was such a case and it was a weekend. Below is an animation that was created by me in 15 minutes from Flare to an emulator. You can also check some of the animation created with Flare over here: https://www.2dimensions.com/explore/popular/trending/all
- DART
I know…a lot of you will disagree with me, and a lot of you hate that you need to learn a new language. I have talked with a lot of people about what their thoughts are on Flutter, and I heard a couple of time that they don’t like how UI is built with Flutter. But hey, if you draw the line under what Flutter brings to the table, then you should put aside all those problems that you are seeing with learning Dart and with building your UI in code. And if there needs to be a new language to learn, thank goodness they went with Dart. If you have any background with Object-oriented languages and if you ever work with C#, Java, Javascript, then you will learn this language in a couple of days. It is easy to use and to learn new stuff. And if you don’t like how the UI is built, you can try online Flutter editor (https://flutterstudio.app). I tried it, but I prefer writing UI in code.
7. SUPPORTED IDEs
The Flutter team has supported three very popular IDEs. You can develop for Flutter with Android Studio, IntelliJ and Visual Studio code. With those 3 IDEs Flutter has covered a lot of developers that are already using at least one of those three integrated development environments. Which one should you use? I think there are no correct answers to this question. Every IDE has all the tools that are developed by the Flutter team. I would suggest you pick the one that you are most familiar with.
8. CROSS-PLATFORM
You can develop apps for different platforms with Flutter. Not only mobile but desktop as well. Some guy has even made his app run on Raspberry Pi, so what are the limits of Flutter? The Flutter team has also announced a new way for developing websites called Hummingbird. They are testing how to make it Flutter works on web apps, and I think they will succeed with this as well. Imagine that you could create an app for Web, desktop and mobile with only one codebase. That would be awesome, but let’s not take any early conclusions. But the future does look bright for Flutter.
9. FUTURE
Besides Hummingbird, there is a lot of other stuff that is related to Flutter in the future. Google is developing a new operating system called Fuchsia. With this operating system, Google wants to cover the Internet of Things devices and make that OS work on every device possible. They are also working with Huawei to make it Fuchsia run on a mobile phone. And guess what, Flutter apps can run on Fuchsia. Imagine the world where all devices are using the same system, and you can create an app with knowing only one language that runs on all those devices. That will be incredible. They will probably not achieve that, but they will do a big impact with Fuchsia when it is ready, so prepare for the future and start learning Flutter.
10. THE 10th REASON
The last reason is reserved for you to discover and to write about your favorite feature. What do you like when developing with Flutter? What do you think are the limits of Flutter? Which announced feature excites you the most? How do you like writing UI in Dart? Which tools help you with easier development? Please write your thoughts into the comment section below.
Peace! 😉