GDD Europe 2017 — Flutter

First day of Google Developer Days coming to an end. Before I move on to the party I would like to share my thoughts about Flutter.

So what is Flutter?

In my own words it’s a new tool for creating mobile apps and what Flutter site says is:

Flutter is a new mobile app SDK to help developers and designers build modern mobile apps for iOS and Android.

Why would I bother?

When preparing for GDD I had this feeling about Flutter that I had 3 years ago about Kotlin. I had to try it out. So I decided to go to Flutter’s hands-on training organised at the end of day 1: Build beautiful mobile apps with Flutter by AMahdy Abdelaziz and David Yang

What did we do?

We started with simple introduction and quickly move on to the setup of Flutter and code lab:

I have to admit it went smooth and I had my first app running really fast.

Flutter is using Dart language. I have no idea about that language at all and to be honest it doesn’t look that pretty but it was fairly easy to understand what is going on in the code.

The best part about this training was the opportunity to ask the creators directly and I had a lot of questions. Next I will write down some key points in a total random order :)

  1. Flutter is in Alpha/Preview state which means in that case that it’s not going to change in the nutshell but it’s going to be extended with more and more features.
  2. It was created by Google for Google first and it’s shared with the community now. Same story as with Kotlin by the way :)
  3. No support for Webview, Maps or Videos and probably there will never be. Instead those components would be implemented in Android and iOS and wrapped in Flutter(as far as I got it right)
  4. Following on previous point, Flutter is able to easily build on top of native OS and extend own set of widgets
  5. Cover more Material Design components than Android SDKs including support library. They try to make it 1–1 relationship with Material Design guidelines. It really matters when your designers ask you to develop something based on guideline and you tell them that it takes days or weeks because it’s not built in Android :/
  6. Flutter draws directly to GPU
  7. Supports communicating with Firebase database but crash reporting, analytics or other parts of Firebase will come later. It’s Alpha afterwards.
  8. Flutter focuses on Widgets and States. Just look for those keywords yourself ;)
  9. In contrary to Android development where nesting UI components is bad, in Flutter it’s OK and you don’t need to worry about that.
  10. Android Studio or XCode are needed to run emulators and setup SDKs, for actual development/coding IntelliJ + Flutter plugin is recommended. You can also use any editor support Dart syntax + command line to run your app

How to start?

I can’t say that I really started, I barely scratched the surface but I am definitely going to investigate more time into it. It doesn’t mean I will drop Android and my favourite Kotlin. I feel that Flutter is something to keep an eye on. I am not saying it will be our future for sure, it may die quickly like many other things we seen but let’s be open and wait.

That’s all. It’s time for a party :)