My First Flutter Experience

Bright Ahedor
4 min readMay 13, 2019

--

Flutter Experience

When I first heard of flutter I was very excited though I did not know what to expect. The fact that it came from Google gave me some confidence. Now to put things in perspective I am a mobile developer with over 8 years of experience in developing Android and IOS apps.

This is the app I built using flutter with no prior knowledge about Flutter or the Dart Language; the programming language for Flutter. The app I built is like a mini Uber:

Android: https://play.google.com/store/apps/details?id=dropyn.mobile.app

IOS: https://itunes.apple.com/us/app/dropyn/id1446411232?ls=1&mt=8

Overall my experience with Flutter as a mobile developer has been good but I would like to group it into two, Bad and good experience.

Good Experiences

Flutter is not a web app packaged, the only reason I do not like hybrid apps is that you use HTML + CSS + Js in developing them. I hated the fact that I have to use the very technology I run from when doing web development. I wanted to do Mobile because I hated HTML kind of stuff. Now here I am having to go back to the same things I attempted running away from. With Flutter, I didn't have to write HTML, CSS and JS. I write my Dart then am good to go.

There is no drag-drop interface editor, one of the reasons I love Flutter is the fact that there is no GUI for UI editing. Now you might think that is exactly the opposite. I believe that understanding the code without dragging and dropping gives you the power to build anything you want. Without a drag and drop interface, I felt I have become unlimited and unstoppable when it comes to building UI’s. I feel I can now build any UI I can now dream off. If you have done native development for some time, you would realise that its not all the designs from the design team (the graphic designers building the mockups) that can be implemented. But with Flutter, I feel that is a thing of the past and that anything is possible.

Awesome Widgetting concept, the whole idea that everything in Flutter is a widget is mind-blowing. Even padding is a widget, oh my God that gives enormous power to building anything.

Hot reload, all apps built in Flutter can be run easily and changes are seen. In native Android and IOS, you have to run the app on your phone to see every change you have made. Some basic things like typo fixes have to be re-run before the changes are seen. But in Flutter, just a mere saving would make the changes live.

State Variables, in Flutter we have what is called state variables. This gives the developer the ability to update a variable at one place and see the change across the app. A typical use case is this, you have a list that you fetch from the server but before then the list was empty once the data from the server has been fetched, you can use the set state to update all references to the list letting the change reflect in all the instances.

Bad Experiences

Some widgets are not ready, As at December 2018, as I was developing my app which was supposed to be a map heavy app, the Map Widget was not fully ready by then. What this means is that I had to leverage on third-party map plugins to achieve my goal. It was hell trying to make the map plugin work with my app. The solution would have been to build my own widget but here I am a single developer working on an Android and IOS app, both rider and driver within a 3 months time frame. It would have been much easier if the Map Widget was fully functional by then.

You need native experience, to be honest with you there is no way you will have this easy if you don't have a native IOS and Android development experience. To be straight with this, before you deploy to AppStore you need a MacBook and Xcode. You also would have to do some configurations in Xcode that would be easy if you really have the native experience. This is not a Flutter specific challenge but is something worth taking note in every hybrid app development process.

No ORM (Object Relational Mapping), because Flutter is pretty new, some plugins are still under development. Now one of the things I struggle with is a good ORM like Realm in Android and IOS to handle local storage and persistence. I had to resolve to write my own SQL queries to save data for offline use. Remember I have a deadline and so every minute was important to my project.

A new language, the first thing that nearly threw me off starting with Fluter was the fact that I have to learn a new language. After several years of experience with Objective C, Swift, Java, Python and Kotlin, here I am having to learn another language again. But honestly, it was worth the while and I am glad I explored the language. From the little reading I did, Dart was the language that gave the engine behind the hot reload according to Google. So we really don’t have a choice with this.

In all, I would say the Flutter experience was awesome and I look forward to using Flutter in more of my projects. But am expecting more plugins in the days to come to make development much easier and faster.

--

--

Bright Ahedor
Bright Ahedor

Written by Bright Ahedor

Aeronautics Engineer and Founder

Responses (1)