Image for post
Image for post
picture by Sheena Wood

Some of you probably get the pun already. The Flutter project was initially known as the Sky Engine. If you look closely into the project’s GitHub repo you may find the very first commit by Adam Barth:

commit 00882d626a478a3ce391b736234a768b762c853aAuthor: Adam Barth <>Date: Thu Oct 23 11:15:41 2014 -0700Open the Sky

A humble beginning

Have you tried Flutter? Yes? good… Now, have you tried to obfuscate Flutter app when compiling for Android?

I will make it brief because there is beautiful weather outside.

Obfuscating and shrinking the APK are those concerns which usually don’t bring much attention until you find it in non-feature requirements of your project.

When it comes to shrinking the code, Dart doesn’t need any extra tools to do it. When compiling for release Flutter will take advantage of tree shaking capability of Dart compiler and will drop all unused code. However, Android Java and Kotlin require an extra step. …

Image for post
Image for post

Flutter comes equipped with the Navigator class which allows defining Routes for an application flow. A Route determines the:

  • Widget you are going to show
  • Animations you are going to use when showing and hiding the Widget
  • State of animations

Very often developers create StatefulWidgets to do just that, completely forgetting about the Navigator and all advantages it brings to the app.

It’s simple, isn’t it?

It always goes like this. Designer sends you an invite to Zeplin. You look at the designs, they are nice clean and polished. The main layout looks so cool. You skim through other screens to get the glimpse of the UX flow. Now you build the image of the app in your head and suddenly you come to a realisation — each of these nice animations between different states will take a couple of days to develop. Testing it will take a bit longer because of supported system versions. …

I am happy to announce that last week I started work on my first commercial project using Flutter! A year of speaking, convincing, demos and live coding sessions has finally paid off.

As I hit the ground last Monday there was already a challenge facing me. My new app needed to use a third party library which used an NDK. I already knew that Flutter should have no problem with native libraries. Just add them to the project and create a Channel for it. Simple…

Not so fast.

Testing how Flutter’s hot reload scales up.

Image for post
Image for post

When it comes to discussing hot reload there is really no chance to avoid a Zoolander meme so please forgive me the title.

One of the most popular features of Flutter framework is its hot reload. It allows reloading the code on the running app without losing the state, massively reducing development time. What is really important is that Flutter’s hot reload isn’t a feature which was added to the framework, like Instant Run in AndroidStudio. Flutter was designed this way from day one and it just leverages the power of its architecture…

Agnostic layout with platform specific widgets

Flutter is a new cross-platform app development framework which promises absolute freedom in creating user experiences regardless of the host platform. It achieves that by taking over the rendering pipeline and managing everything by itself, from laying out the components, to drawing them. Customising everything is the lifeblood of Flutter. Applications which use a heavy design branding language are an obvious target for this platform independence. Think of Netflix, it feels and looks the same regardless if it runs on your iPhone, Android or PlayStation.

But what about brands who would like to keep…

Swav Kulinski

Computer enthusiast since 80s, Android developer since Eclair, now Flutter enthusiast.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store