Why I'm switching to Flutter and Dart

Why I'm switching to Flutter and Dart

My journey to developing a full stack application

Why I chose Flutter and Dart

After spending 14 years building and maintaining applications in HTML, CSS, and mostly JavaScript I became burnt out. It seemed like every five seconds some new functionality came out in JavaScript. CSS wasn’t fun anymore as everything seemed to just frustrate me and HTML, you can only do so much.

So I tried other things. I got into jQuery. I used Bootstrap on a major site I built. I thought it would take less time. In the end all I got was a headache and a need to consume more coffee. The site came out less than stellar. I mean, it functions ok, but it is far from perfect. I spent an entire year, planning, prototyping, and developing a site all for what I considered to be a big letdown. You see, I consider coding to be an artform just as much as a science and well, my site just turned out to be, well, Modern Art. It lacked in many areas, mostly design and in speed. If I ever get the chance to do a redesign for that site I would definitely do things differently. My search for a new technology got me into site builders like Dreamweaver, and Bootstrap Studio, as well as WordPress, what I found was that each one of these was lacking one thing in common. They all were not easily customizable.

Enter Flutter and Dart

Around the beginning of 2021 I saw an ad for a course on Udemy on flutter and dart. I watched the course overview and it was like a lightbulb went on above my head. I knew I needed to make a change. After toying around with other ideas and messing around with Bootstrap Studio, I became enchanted by the idea of writing one codebase for all my apps.

You see, I did make a run at trying Mobile development with Android Studio using Java/Kotlin, but it just was not my thing. As much as I loved it I felt like it was going to be a big pain to develop for two different operating systems, then I would still have to develop a separate app for the web. That was the straw that broke the camel’s back so to speak. I was now ready to dive into flutter and dart wholeheartedly.

Here are some of the main reasons I became captivated with Flutter: • With Flutter I can design beautiful apps • Made by Google and supported by Google • I can productively build apps • I can create faster apps • I can target mobile, web, and desktop apps

Made by Google, Supported by Google

Another key point for me is that flutter and dart were both made by Google. This gave me confidence that a significant amount of effort and design went into the development of these products. “Flutter is Google’s UI toolkit for building beautiful, natively compiled applications for mobile, web, desktop and embedded devices from a single codebase.”

Great Documentation

Another key factor for me was flutter and dart both have excellent documentation. With some time in the docs you can pretty much figure your way out of many a coding conundrum. Flutter has an extensive library and it is growing day by day. There is also great community support for Flutter.

Fast Development

Flutter is fast. It just works, and is fully customizable while having a vast library of widgets to build native interfaces in just minutes. What makes flutter so quick is its Stateful Hot Reload functionality. You can update code in a matter of milliseconds as flutter uses it technology to only update the code that is changed not entire program. Using flutter’s widgets you can build beautiful apps in less time giving you more time to do whatever it is you need to do.

Expressive and Flexible UI

“Quickly ship features with a focus on native end-user experiences. Layered architecture allows for full customization, which results in incredibly fast rendering and expressive and flexible designs.”

Native Performance

One of the best thing about flutter is it works on everything. No more having to wrestle with code and write out for Mac OS, Windows, Android, and iOS. “Flutter’s widgets incorporate all critical platform differences such as scrolling, navigation, icon and fonts, and your Flutter code is compiled to native ARM machine code using Dart’s native compilers.”

Dart: my favorite language to date

So what is Dart and how does it work with Flutter? “Dart is a programming language designed for client development, such as for the web and mobile apps.” (en.wikipedia.org/wiki/Dart_(programming_lan..)

It also was developed by Google as a free and open source, client optimized language and can be used to build server and desktop apps. It is for building fast apps on any platform, including Apple® Silicon.

Dart is Optimized for UI

“Develop with a programming language specialized around the needs of user interface creation.” It is optimized for UI and is really easy to learn, with familiar syntax.

Productive Development

“Make changes iteratively: use hot reload to see the result instantly in your running app.”

Fast on all platforms

Compile to ARM and x64 machine code for mobile, desktop, and backend. Or compile to JavaScript for the web.

“Run backend code supporting your app, written using a single programming language.” One of the greatest features of Dart is that you can code and debug in your code editor of choice.

In conclusion

My thoughts aside, Flutter and Dart are heavy hitters in the mobile application field. Over the past year I have seen a lot of buzz on tech twitter about flutter and dart. I have a great feeling that flutter is going to be here to stay for a while.

With that in mind I am going to pour my learning resources into Dart and Flutter. I’ll work on projects that build upon the knowledge I already have in front-end development to further my abilities to code full stack applications using Dart and Flutter. My first app is going to be a small social app with functionality to chat, send photos, and later videos in a feed format. This will be cross platform and work on Android, iOS, and the Web.

Here I guess I need to give a little backstory. I am a person with a disability. I spend much of my time wishing I could access certain activities, but to this date not every building is accessible and not every function I cannot attend has an alternative form of delivery. My goal is to utilize this tech to build a much larger app later to help disabled and disadvantaged people access public meetings, such as civic groups, churches, and the like.

I came into tech wanting to help people access the web, now with these two technologies I think I have an appropriate toolset to work with that end in mind.