6 Month into Flutter: As a junior Software Developer

6 Month into Flutter: As a junior Software DeveloperMohamed Hassan KadriBlockedUnblockFollowFollowingMay 1I recently got my computer science degree and I decided to finish my studies and get a software engineering and thankfully I was lucky enough to be chosen by a program hosted by Proxym-Group where I had the chance to to finish my studies and work as junior Front-End Developer , To give a quick summary, the company builds software for clients with differents backgrounds mostly governments and banks.

And here I am Waiting for my first task .

my company is using Apache Cordova to develop their mobile apps but Apache Cordova had a lot of drawbacks so they decided to search for an Alternative and their choice was Flutter .

So I had to make a case study about flutter And learn how to use this framework .

To be honest I wasn’t happy with that decision at the time I hated leaving my comfort zone since all I knew was HTML ,CSS, Javascript and my favorite framework Vue.

js And I had no experience developing Mobile application .

It is like someone took you away for your mother warm uterus and just gave you a slap and send you to the world .

I’m not going to compare Flutter to these Cross-Platform mobile technologies In this article .

Learning FlutterI had only 1 month to Learn this framework and come with answers to different topics, and here the journey begins .

1.

SetupIt was easy to get setup.

Flutter provides good documentation which details all the required steps.

2.

DartAt first Dart had the feeling of Java and I really hated strongly typed languages(I wasn’t fun of java in college ) But by the time Dart became a lovely language to develop in .

He had the flexibility of Javascript and strong like Java working with Asynchronous programming with async/await/Future is a breeze, and it also feels complete and consistent .

This was my first experience of it and I found it familiar and intuitive.

It’s a fresh and modern feeling language.

And being a compiled “ahead of time” (AOT) into native code for multiple platforms, eliminated the need for a JavaScript bridge and improving performance.

Although it is missing some features that I have come to love (In Javascript world ).

The documentation is rich and it’s all you need To learn it3.

Architecture and state management patternsAfter learning dart the first thing I was looking for was design patterns and the best way to structure your code in flutter and this one Was really hard since Flutter is a new technology .

Some people follow the business logic component pattern (BLOC)Or Redux for Flutter But thought it’s a bit unnecessarily complex.

So I decided to pick up The Scoped-Model geared with RxDart since I come from the Web World and this was closest to the architectures I knew .

4.

Building the UI:Everything’s a widget, this is all you need to know ,Flutter has a wide variety of UI Widgets supported on the framework itself.

And it's based in Material Design .

Material Design is wonderful and you can customize Flutter’s Material Design library to replicate any Design you like.

Flutter defines the UI by creating a Widgets tree within Dart.

This is very comfortable.

Since it is written as a code, it is easy to switch the UI according to the conditions.

Flutter offers a wide variety of Widgets too, and UI can be created with a combination of them, so there was no need for third-party UI library for that purpose.

5.

Development and DebuggingWorking with flutter and discovering his widgets was a real joy .

Hot Reload : “Fast hot reload” which officially states is true without any exaggeration.

You can reloaded in less than 1 second.

it’s fast and reliable.

 , you can fix it right away, continuing from where you left off, without restarting the whole thing so implementing any UI was really easy .

For debugging Dart Analyzer and Dart Observatory tools help find errors using specific commands you can almost debug anything from performance , time each widget took to build , animation , your dart code …My impression During learning :I haven’t been this excited about learning a technology .

Documentation is fantastic .

Flutter rocks.

It’s not perfect by any means, but in my own opinion, the learning curve, ease of use, tools available make it by far a nice experience .

Working on a projectAfter finishing the case study here comes the first project .

re-writing an existing app in production with flutter .

with over 30 complex UI and animation .

I thought Writing a cross platform apps will throw more design challenges But Implementing complex layout in Flutter was easy.

I found myself rebuilding all the existing UI in a short period and same things with the animation specially with flare (a tool to build high-quality animations and extract them into flutter widgets) .

I got to use maybe 20% of the widget I learnt when developing the app .

Now comes the code and logic time .

since I chose Scoped model for state management and to structure my app and achieve neat separation of your logic form UI.

I had fun using it at first he was straightforward and easy to implement but as my app got more complex I started discovering his weakness maintenance became hard and challenging as my model grow up .

With all this information, I do not recommend the use of ScopedModel unless your state is very easy to manage; if your application is complex enough, I do not believe this the right answer to support that complexity and growth.

So I will consider trying another approach in my next appBut in the end I managed to finish the app .

Final ThoughtsSo far, I’m super happy with Flutter overall.

And he is here to stay .

Its true that Libraries & support is impressive, but still not so rich as for the native development and I really regret not coming from a native development background.

In my opinion, Flutter has many more advantages for business and development teams than risks.

It’s a great chance to build beautiful, high-performance and outstanding mobile apps which fit your custom needs and requirements.

It’s worth considering Flutter, especially if you want an app both for iOS and Android.

That’s all, thanks!.If you liked this post, don’t forget to leave a ????!If you found this article interesting and front end development interests you, consider following me on Github, or LinkedIn.

.

. More details

Leave a Reply