It is February 2020 and it’s been about 5 months since I made the decision to move into the mobile development space. A decision like this one takes an initial investment. An investment to learn something new, and that means time and even monetary investment.
I had to invest some money into paying for a Udemy course, and a lot of time into learning a new way of doing things. Having been developing for the Web for some time, that came to my advantage, as not everything was entirely new.
The path to becoming a mobile developer wasn’t straight either, as are so many things in life. I had to kiss my fair share of frogs, before finding something that works. You see, there are so many ways to develop mobile apps, and it took time to find something that clicks.
One way to build mobile apps is to take the native approach, where you build them using the native programming languages used by Android and iOS for the iPhone. I did not want to take this route because, it meant having to learn two different tool-chains: that route was not practical for me.
The other approach is to use cross-platform mobile development, where the mobile app is developed for both Android and iOS from a single code base. This was the sweet spot, except there are many options here as well.
Flutter is an open-source UI Software Development Kit (SDK) created by Google. It is used to develop applications for Android, iOS, Windows, Mac, Linux, Google Fuchsia and the Web. As you can see, Flutter is pretty versatile. But for me at present, as things can change pretty fast in the software space, my interest is what Flutter can do for Android, iOS and the Web.
Flutter makes use of the Dart programming language, which is a client-optimised programming language for apps on multiple platforms. It is developed by Google, and is used to build mobile, desktop, back-end and web applications.
Flutter apps are composed of widgets. Widgets can contain other widgets, and you make use of widgets to build the user interface. It is a concept similar to components in React Native. Widgets assemble into a treelike structure of related widgets, that together form the complete user interface.
It is the nature of the world we live in that there are always alternatives: for mobile phones we have Android and Apple iOS. As the owner of an app, it makes sense to have your app on both platforms because, if you don’t, you miss out on users on the other.
Traditionally, to be on both platforms, you had to code two separate native apps. Two separate native apps means cost in money terms and time. Flutter solves this elegantly by allowing you to build for both platforms using a single code base.
The default mode is to use Google’s Material Design in developing the app, but if you want to use the traditional Apple design, the code can be modified to cater for that as well, using Apple’s Cupertino design.
I must confess, I do not have the greatest memory there is, and have to constantly refer to documentation to get things done. If anyone ever told you you need a great memory to be a developer: they lied. Don’t get me wrong, it is a great asset to have a great memory, but just not a necessity.
I was so excited to see the great code help and support I got with Flutter. The intellisense is simply great, and I refer to the documentation less than I otherwise would, when developing in Flutter. Compared to React Native, the code editor assist features are just awesome.
From completion of code snippets, to even entire boilerplate of code, the experience is just great. Take the example when creating a stateful widget: there is no way I would remember the boilerplate, and would have to check it every time. The code editor completes this for me easily every time. Stateful widgets are widgets that remember their state across multiple render cycles.
Of Course I speak of my experiences from using Visual Studio Code as my code editor and the experience might be different for those using other code editors. I just wanted to articulate how coding from a single code base, and having a great code editor experience makes Flutter simply awesome.
Want to hear some more from the Webmobyle Blog? Please