flutter_logo.pngThe developer community is all abuzz with the long-anticipated Beta release of Flutter, Google’s free and open source mobile UI framework for crafting high-quality native interfaces on iOS and Android. I’ve even been following updates on this framework as it matures. First off, this is Google we are talking about. Second, who doesn’t love Hamilton (their mobile app was built with Flutter)? Okay, okay. I’m getting ahead of myself. Let’s all calm down and take in the pros and cons one at a time.

So, as we all know, there isn’t one way to develop an app. There’s native development wherein you use the tools and the languages provided by Google or Apple for their respective platforms. Here the difficulty level is high and the code is unwieldy. And then there is the ‘Columbus mode’ wherein you explore and discover what works for you. The options are many and everything depends upon your level of expertise and comfort with a tool or language. That’s nice, but can also be insanely chaotic.

Flutter, a cross-platform framework, aims to address this dichotomy. Paul Miller writes in Verge: “Flutter is a Frankenstein’s monster of various Google projects. It’s based on Google’s own Dart programming language… It has a rendering engine based on the Skia Graphics Library, the same thing Chrome uses to draw pixels on a screen. There’s an IntelliJ IDE for Flutter, just like Google has with Android Studio. And Google is also using Flutter in its upcoming Fuchsia OS, so that whole team is in the mix.” Interesting. Let’s go deeper one aspect at a time.

Built using Dart

Dart is Google’s own programming language that was released in 2011 as a direct competitor to JavaScript. Dart’s internal adoption at Google has been extensive with AdWords, AdSense, and Google Fibre teams using it to write their customer facing web apps. Externally, adoption has been slow up until now. But that is likely to change with the introduction of Flutter. From what I’ve heard, Dart is easy to use, a lot like C. Dru Keppel, who works at Summit Projects as an ActionScripter, says: “Dart is Google’s replacement for JavaScript… the general intention is to provide the same tools that JavaScript does, only as power tools.” He explains that Dart has a lot of Object-Oriented features that the typical JavaScript programmer will be unfamiliar with, but are essential for serious development. In other words, Google feels that JavaScript isn’t up for the task of being a “real” programming language, and Dart is going to fill that glaring gap.


dartlogo

Pros: Easy to learn, good for those who are good at C, can do heavy-lifting in programming.

Cons: Not many people know Dart. So setting up a team might be a challenge. It’s worth noting that people with a javascript background (including Typescript, which adds type enforcing like Dart does) will have an easier time adjusting.

Hot Reload!

Flutter offers fast development. Its website promises “Hot Reload in milliseconds to paint your app to life.” Whoa. Milliseconds? How?

You see, cross platform frameworks like Javascript need to go through a bridge in order to talk to native code. Furthermore, React Native works across two realms: first, the native realm of Objective-C or Swift, and second, the JavaScript realm. It uses JavaScript to access the OEM widgets in the native realm.

Here lies one of the main keys to understanding React Native performance. Each realm by itself is blazingly fast. The performance bottleneck often occurs when we move from one realm to the other. In order to architect performant React Native apps, we must keep passes over the bridge to a minimum. Wm Leler, Senior Software Engineer at Google, further explains: “Widgets are typically accessed quite frequently (up to 60 times a second during animations, transitions, or when the user “swipes” something on the screen with their finger) so this can cause performance problems.”

hot reload

Credit: Flutter.io

Flutter fixes this issue by injecting the updated source code files into the running Dart Virtual Machine (VM). The VM updates classes with the latest versions of fields and functions. Next, the Flutter framework automatically rebuilds the widget tree. This allows developers to view the changes that they’ve made instantly. Obviously, I’ve been used to waiting for hours for most development platforms to deploy and test an app on a device. Instant change detection would multiply productivity, reduce cost, and cut down development time. So, the hot-reload function of Flutter is a big yes for me!

Pros: Greater productivity
Cons: None!

Unified app development

Native development typically has a large cost associated with coding and ongoing support. Plus, you need to do it at least twice: once for the platform of your choice (Android or iOS) and then the other as well (because somebody on your team will always want the other platform!). In some cases, teams also have to code for a third time, for the web. The process is tedious, time-consuming, and expensive.

With Flutter, you build mobile apps, not Android apps or iOS apps. That’s just another way of saying that with Flutter, you build just once, from a single codebase. Flutter does its own rendering using Skia.

This enables developers to write the UI and navigation just once and simply share it across iOS and Android. Moreover, 60% of the code is reused between Flutter and web. 

Dean Chalk, Google Flutter Enthusiast & Developer says: “One key factor to app success is the cost (in terms of money as well as time) of getting an app into the stores. This is where Flutter really shines. It offers a genuine opportunity to write once and deploy everywhere.”

Pros: Higher productivity
Cons: None!

Widget, widgets, and more widgets

Widgets are critical to an app’s view and interface. They need to look good and natural irrespective of the screen size. They must perform fast, should be extensible and also customizable. Flutter makes it all possible by providing its own widgets.

Credit: Dartlang.org

You see, Flutter has a widget for everything. Dig deeper, and you’ll find that each widget is made of smaller widgets. Those widgets in turn are made from even smaller widgets. In effect, you are programming with widgets, which again is a productivity booster. David DeRemer, from Posse, states: “Flutter’s “everything is a widget” approach made it easy for us to compose custom UIs from a rich set of building blocks provided by the framework. And, because Flutter runs on both iOS and Android, we were able to spend our time creating beautiful designs instead of porting the UI. ”

Pros: Higher productivity
Cons: None

Keep Moving Forward with Aptude

Aptude is your own personal IT professional services firm. We provide our clients with first class resources in a continuous, cost-containment fashion.

Our support services will free up your senior IT staff from the overwhelming burden of day-to-day maintenance issues. Now they’ll have time to launch those new projects and applications you’ve been waiting for. Simply put, we can free up your resources and contain your costs. Let’s have a quick chat to discuss our exclusive services.

All good?

From what I’ve understood, designing with Flutter is an altogether refreshing experience as compared to what the developer been through so far. In addition to the advantages listed above, there are a few more. For instance, it is run from the command line. So you can use it with any IDE and project setup is simplified. Additionally, there’s plugins for Intellij, Android Studio, and VS Code. Most importantly, Flutter is Google’s baby. Having a big name and its following backing it up is a huge advantage in terms of further development and support. So, where’s the catch?

Tricky spots

It is worth noting that not all Google products or platforms succeed; perfect example being mass adoption of the Dart language, which this is coupled with. Second, unlike the Ionic platform and React Native, Flutter is for mobile apps only. Hence there is no support for running in a web browser. This could be a big decision-maker if you’re looking for more device specific flexibility. Finally, Flutter is in Beta, and just recently moved from Alpha to Beta. So there is still time for Flutter to mature and be production ready.

Verdict?

Anything new is uncharted territory and brings with it its usual share of unpredictability. However, all said and done, Flutter, to me, seems like an enormously promising step forward in app development. The Hamilton app, for instance, was developed and launched in just three months. While Firebase, Google’s mobile development platform was used for backend and infrastructure, the front-end was developed using Flutter.

What Are You Working On?

Looking for intelligent technological solutions? Seeking consultation on your upcoming projects? Need a quote for services? Contact Aptude’s executive team directly. It’s amazing just how much one little email can rapidly accelerate your productivity.

Guy DeRosa

Senior Vice President & Director of Operations
EMAIL GUY
p: 630.692.6700
ext. 406

Srinath Parepally

Vice President of International Development
EMAIL SRINATH
p: 630.692.6700
ext. 402

Uday Mehta

Vice President of Development
EMAIL UDAY
p: 630.692.6700
ext. 403

Michael Foster

Director of Art & Communications
EMAIL MICHAEL
p: 630.692.6700
ext. 413

Gain Time, Increase Currency, Contact Us

It’s amazing how one quick email can change your life. Give us a shout! We’ll get back to you right away with the right person for what you’re looking to accomplish.

You don't have to go into a lot of detail now, we'll dial it in later.
=
What our clients are saying…

schneider-national

Aptude provides onsite and offshore Oracle DBA support, which includes troubleshooting, back-up, recovery, migration, upgrades, and daily maintenance of Oracle database servers. Aptude has been working with our team for the past four years and we continue to use them and are satisfied with their work

Warren E., Schneider National

build

Aptude provided Build.com a Java, MySQL, Webservices and other UI based solution in the business domain of analyzing and reporting on user activities for our ecommerce website. Utilizing Omniture’s APIs to download, parse, and regenerate and upload back so that we could be more effective in our marketing. I was satisfied with their project work and delivery and would consider utilizing them for future projects.” Build.com

Dan D., build.com

ugahead

Aptude provided us with Oracle DBA migration support, including an upgrade from Oracle 11.1 to Oracle 11.2, and the project was completed on time and to specifications. The project manager and project consultants were responsive and proactive, resulting in a successful conclusion to the work. I would definitely contract with them again, and have recommended them to other technical offices at the University of Georgia.

David C., University of Georgia

wolters-kluwer

Thank you for the hard work your team has put forth to staff the contract positions at Wolters Kluwer. Aptude has consistently scored high in our supplier carding and even more important you are a vendor we can always trust. I am especially impressed with your ability to tackle our positions that other vendors have not been able to fill.

Andrea G., Wolters Kluwer