Flutter Flutter Little App

 

So things were not all that terribly interesting at Google I/O this year, at least as far as iOS developers are concerned — 

100 things we announced at I/O ‘18

— until you get down to

90. We shipped Flutter Beta 3, the latest version of our mobile app SDK for creating high-quality, native user experiences on iOS and Android…

That’s always an interesting claim, isn’t it? Well, allegedly it’s

Ready for Production Apps: Flutter Beta 3

This week at Google I/O, we’re announcing the third beta release of Flutter, our mobile app SDK for creating high-quality, native user experiences on iOS and Android, along with showcasing new tooling partners, usage of Flutter by several high-profile customers, and announcing official support from the Material team.

We believe mobile development needs an upgrade. All too often, developers are forced to compromise between quality and productivity: either building the same application twice on both iOS and Android, or settling for a cross-platform solution that makes it hard to deliver the native experience that customers demand. This is why we built Flutter: to offer a new path for mobile development, focused foremost on native performance, advanced visuals, and dramatically improving developer velocity and productivity…

Well, to our ears, this has a distinct ring of the claims made for cross-platform development by for instance Xamarin, which tend to not be widely shared by those who actually attempt to ship products with them:

Xamarin SUCKS! Lessons learned from weeks wasted

I’m really sorry for the language, but this software is simply and literally the worst mega f***ing shit I’ve ever used in my life. This halfass piece of garbage only serves to waste people time. And IKR, how could people pay for this, ffs?!

… SO TO ANYONE OUT THERE WHO, LIKE ME, THOUGHT “HEY, IT CAN’T BE THAT BAD, CAN IT? I’LL JUST SPEND A FEW HOURS, MAYBE A DAY SETTING THINGS UP BUT IT WILL PAY FOR ITSELF”. NO. GO BACK. IT WON’T PAY. IT’LL NEVER PAY. IN FACT, IF YOUR DREAM IS TO WORK AT MICROSOFT THEN MAYBE YOU SHOULD STICK TO XAMARIN. BECAUSE YOU’LL FEEL LIKE YOU’RE FIXING XAMARIN’S BUGS, NOT YOURS. IN FACT, SOMETIMES YOU’LL EVEN FORGET ABOUT YOUR PROJECT. YOU’LL BE JUST LIKE “WTF IS THIS PROJECT DOING HERE? OH, IT’S MINE”, BECAUSE YOU’LL BE SO INTO XAMARIN BUGS. YOU’LL START THINKING ABOUT GOING TO GITHUB AND FIX XAMARIN INSTEAD OF YOUR OWN CODE (SERIOUSLY). THIS IS A DISEASE. DO NOT GO ANY FURTHER. YOU’VE BEEN WARNED.

Don’t hold back there, tell us how you really feel why don’t you?

Or, there’s always the trendy flavor of the last couple years before people actually started trying to maintain real apps with it, React Native:

Native > Flutter > React Native

As we all know there are a lot of cross-platform development frameworks but none beats the user experience of a natively developed application. A few months back here I was trying to appeal for React Native. But when I took it for a full spin for a fun project. I fell flat on my face.

There were many shortcomings when it came to React Native. Since mobile applications heavily depend on swipe-based user interaction and React Native heavily depends on a bridge that makes the JS code run on the native engine. This caused a lot of janking due to bottleneck. List Views using React Native was a nightmare…

Well, that fellow is optimistic about Flutter’s potential, apparently once bitten still not shy. Give it a couple more decades, you’ll be cynical as a troll, just watch … either that or burnt out completely, there does not appear to be any middle ground.

For some additional supporting evidence, here’s hands on experience:

How fast is Flutter? I built a stopwatch app to find out.

According to the docs, high performance is to be expected:

Flutter is designed to help developers easily achieve a constant 60fps.
But what about CPU utilization?

TL;DR: Not as good as native. And you have to do it right…

Now, not as good as native, that’s not stopping people shipping apps with it, check out the Showcase here. As we write this, the Hamilton musical app is the flagship example of a shipping cross-platform Flutter app, and the builders veritably ecstaticize themselves over the experience here: 

Rise Up! — The story of how the Hamilton App uses Flutter to do more for its fans

So there is definitely the potential here to suck less than other cross-platform solutions — not to imply that’s a high bar! — and it’s always good to have options available, yes?

So if you are interested in Flutter —

— and it definitely looks worth at least keeping an eye on to see if it gains further traction or slides into the shambling undeadness of past Google abandoned failures —

— here’s some resources to check out:

Flutter @ Google I/O 2018 YouTube playlist from @flutterio

Udacity’s free Build Native Mobile Apps with Flutter course

… and of course the Wenderlich tutorial empire is staking territory out here already:

Getting Started with Flutter

Getting Started with Flutter in Android Studio screencast

Flutter Navigation Tutorial

And if you, Dear Reader, happen to have some experience building a non-trivial application with Flutter, be sure to let us know how it went!

UPDATES:

Flutter vs React Native: A Developer’s Perspective 

Alex | May 16, 2018

Leave a Reply