Choosing Between Flutter and Kotlin: My Journey to a New Skill
Written on
Chapter 1: The Need for Change
As the new year rolled in, I found myself yearning for a fresh start. The previous year had left me feeling stagnant, and I sought an escape from my growing boredom. My solution? To dive deep into a new skill—specifically, something outside the realm of JavaScript, which I had been working with for years and was starting to find monotonous.
I took to Twitter and LinkedIn to ask my network a simple question: Flutter or Kotlin? Here’s what the Internet revealed:
Despite the lack of engagement—likely due to the timing of my poll on Christmas Eve and the absence of context—I ultimately had to make a choice. After much contemplation, I opted for Flutter.
Section 1.1: The Decision-Making Process
So, how did I arrive at this conclusion? Here’s the thought process and research that influenced my final decision.
Resources—What Are My Options?
When it comes to anything JavaScript-related, resources are abundant. However, I felt that the novelty of learning something new was fading. Diving into a new programming language can be daunting, especially when you're unsure where to find reliable resources.
To kickstart my journey, I watched a quick video by Fireship that provided a brief overview of Kotlin and Flutter. While I had some prior experience with both, it wasn't enough to grasp their full potential.
In my experience, once you've worked with various coding languages, they often start to blur together. Fundamentally, they share similar concepts, with only slight variations in syntax and terminology. Just like how a cat is called "chat" in French and "katze" in German, programming languages can be more alike than different.
I delved deeper into crash courses for both Flutter and Kotlin, finding a mix of free and paid resources. Here’s a compilation of what I explored to help me make my final choice:
Kotlin Resources: - FreeCodeCamp.org — Learn Kotlin Programming — Full Course for Beginners (13hrs) - TraversyMedia — Kotlin Crash Course - Lodash — How I learned Android development with Kotlin in 1 month - TraversyMedia — A Simple Android App with Kotlin - Donn Felker — Freelancing for Software Developers — Kotlin Tutorial for Beginners: The Kotlin Programming Language Full 9-hour Course
Flutter Resources: - Fireship — Flutter Basic Training - 12 Minute Bootcamp - FreeCodeCamp.org — Flutter Course for Beginners — 37-hour Cross Platform App Development Tutorial - Flutter Mapp — Flutter Tutorial For Beginners in 1 Hour - dbestech — Flutter 3.0 Master Class for Beginners to Advanced 2022 | Ticket Booking App Development Tutorial
This exploration led me to ponder: What do I want to create? What are my goals?
Section 1.2: Defining My Goals
I found myself pondering these questions a bit arbitrarily. I was searching for solutions before clearly identifying the problems I wanted to address.
The first question was straightforward—I aim to develop a mobile app. Not just another JavaScript-based application, but a truly native one that performs efficiently.
Conventional wisdom suggests that native apps function more effectively, and I wanted to test this theory myself. If I solely considered this factor, Kotlin would be the more logical choice due to its native compatibility with Android, especially as Google phases out Java in favor of Kotlin.
So, why did I choose Flutter? The answer lies in my desire to support iOS. As an iPhone user, I wanted the flexibility to publish my apps on the App Store. However, I currently lack a Mac, which I plan to acquire in 2023—once I save enough, as kids can be quite the financial commitment.
In the meantime, I still wanted to engage in mobile app development, and Swift was off the table for now. Thus, Flutter appeared to be the ideal option. My plan is to start with Android and expand to iOS when possible.
Chapter 2: The Year Ahead
From a career standpoint, Kotlin might be the wiser choice for my local job market, yet from a creator's perspective, Flutter has the edge. According to Algowid, there are roughly 470,000 job opportunities for both Kotlin and Flutter, with Flutter developers earning around $72,166, slightly less than Kotlin developers at $80,760. However, Flutter's hot reload feature simplifies the development process, making it more enjoyable.
Flutter also allows for genuine cross-platform development, compiling into native apps without relying on a bridge. While Kotlin offers cross-platform capabilities as well, I couldn't find sufficient beginner-friendly resources to spark my enthusiasm.
Ultimately, the key to learning any programming language is to maintain a level of excitement; otherwise, it can quickly become a chore. Flutter may not be the best fit for everyone, but at this moment, it captivates me. Perhaps in the future, I'll revisit Kotlin with a different perspective.
In conclusion, this article serves as a reflective piece for me—a necessary exercise to realign my goals and direction. Stay tuned for upcoming Flutter content as I transition from a novice to a more skilled developer.