Utterly Fluttergasted

Pixplicity
Dec 18, 2018 · 7 min read

TL;DR

Did Flutter change our minds? Don’t get us wrong, we are sticking to our “we are not cross-platform developers” statement, but Flutter has so far been a very pleasant surprise. At Pixplicity, we used Flutter to build a lot of beautiful prototypes blazingly fast. Having the platform reach 1.0 status made Flutter a very viable option for many of our projects. Let’s dive in to why we support Flutter, and why Stefan was featured in the promo real of Google in support of Flutter, twice!

Cross-platform: yay or nay?

Flutter does run into some of the arguments we made against going cross-platform. For example, it is an immature platform (literally just got out of beta during the Flutter Live event), libraries are not as readily available as for native apps, and the latest changes in OSes are probably supported faster in the native SDK. However, other cons are circumvented or already solved:

  • The performance is insanely good.
  • There’s lots of documentation and tutorials available.
  • Thanks to Google pushing this product hard, a lot of libraries are already supported.

The Technology

Flutter is cross-platform because you can write once and deploy to desktop (Mac, Windows and Linux), mobile (Android, iOS and even Fuchsia) and soon to web as well — more on that later¹. Unlike most other cross-platform technologies, it does not use the underlying host platform for pretty much anything unless you want to interface with the hardware or platform APIs. Managing the device’s hardware is delegated to the host platform, whereas handling business logic and drawing to screen is done completely by Flutter. Flutter uses its own graphics engine, called Skia², which takes care of all the graphics rendering. This is a solution seen most in game engines such as Unity or Unreal, but not in solutions targeting ‘regular’ interfaces, which clearly sets it apart from the rest. The framework is bundled with widgets that are made to look and behave exactly the same as the ones everyone is already familiar with. In order to use platform-specific APIs, e.g. for accessing the camera or showing notifications, you write plugins in the native languages Kotlin/Java or Swift/Objective-C, or pick from many packages already available.

From Android developer to Flutter developer

With both of us coming from an Android background, if you ask us what sets Android apart, it’s its community. The tens of thousands of libraries, tutorials and blog posts freely available for everyone. The numerous meet-ups and conferences. The fact that there’s no chance you’ll shoot a question and not find someone to help out. Is it a bed of roses? Of course not! But is any kind of development, really? Wouldn’t it be too boring if something was very easy? Wouldn’t it feel like doing the same tasks over and over again? Sometimes it feels like the only reason we actually became developers is because it’s challenging, head-scratching and sometimes nerve racking. Maybe it’s just us! 😅

Two developers, two opinions

Stefan was the first one in the team to pick up Flutter and wanted to give it a spin. This is his experience in discovering the platform:

Flutter Live 2018

There were a couple of big announcements during the event, including:

  • Hummingbird, Flutter for the Web
  • Flutter desktop embedding — Flutter on MacOS, Linux and Windows
  • New tools and SDKs for Flutter developers

Flutter 1.0

The stable 1.0 brought us tons of bug fixes, some new features and more polish to Flutter. Now, iOS folks can enjoy the improved Cupertino widgets and for those who are using Firebase, there is already 1st party support for quite a lot of Firebase services. The Flutter team managed to improve the performance of the framework and also reduce the overall app size. If you didn’t know, all flutter apps bundle the Flutter toolkit together in one package.

Hummingbird

We were very pleased to hear that the Flutter team is busy on delivering us a web-based implementation of the Flutter’s runtime, called Hummingbird. This gives us the power to deploy a Flutter app to Web without any code changes! Yegor Jbanov, a software engineer from Google, wrote a technical blog post about it.

Flare

We’ve visited a lot of presentations, but we don’t think that any of us had their jaw dropped to the floor until this one: just watch this demo by Filip Hráček.

Flutter + MLKit + Flare

Codemagic

Lastly, another announcement worth mentioning is the first cloud-based CI/CD tool exclusively for Flutter: Codemagic.


Pixplicity

The Creative Tech Agency

Pixplicity

Written by

The Creative Tech Agency

Pixplicity

The Creative Tech Agency