The Lockdown Coder: What I Managed in 12 Months With No Coding Experience
In March 2020, the pandemic had sunk in as the reality that we were all forced to face and the UK government had announced we were to enter lockdown and stay at home. Given the fear and uncertainties around the pandemic there was no telling how long the lockdown would last and with this enforced period of time at home I decided to take the opportunity to learn how to code.
My interest stemmed from mobile apps. There are a ton of apps for anything and everything and it’s impressive how popular and relevant they have become. But how on earth do you make one? I wanted to try.
This is the first article in a small series to share my experience with you and offer a glimpse of what is realistically achievable in 12 months. Indulge in my frustrations and joys through a turbulent period of time and come away with knowledge that you can take into your own coding adventure.
Mobile App Development: Kivy vs Flutter
I wanted to start with mobile apps as that was simply what caught my interest. I had also heard a lot of people talk about Python so my research led me swiftly to Kivy. Kivy is a free and open source framework that uses Python to create mobile apps. It also seemed attractive as you could use one codebase for both Android and iOS. This is interesting because, in many cases, Android app developers use Java as the official language and Kotlin as another official language. However, iOS developers turn to Swift for their apps. In some larger organisations, two teams are actually employed to code their Android and iOS apps because they are sufficiently different to each other. Kivy seemed interesting as you could code for both Android and iOS with one codebase.
Nevertheless, I wanted to make sure I was picking the right language to start out as I quickly realised there are a ton of options and I didn’t want to waste my time. Quite a few new technologies have a short shelf life — either because there is limited uptake and it’s simply not popular enough to sustain or because it is not maintained well enough and the code becomes problematic as other technology advances. After a little more digging, I stumbled onto Flutter.
Whilst Flutter is relatively new (it was released in 2017) it is owned and maintained by Google and its community of developers is growing. Similar to Kivy, you could also use Flutter to develop apps for both Android and iOS using one codebase. Google is also releasing a new operating system called Fuschia and in combination with Flutter could be integral in powering a future version of the internet of things. It sounded good. However, it doesn’t use Python, which I had been hoping to get to grips with, but uses Google’s own language Dart instead. Now Dart isn’t super popular but Flutter is gaining traction so I figured I would back Google and choose Flutter to start my own mobile app development.
What had become clear was that every step would be fairly arduous early on as there was plenty of information that I simply did not know and didn’t realise would be important. I read as many articles as I could stand and watched as many tutorials as I could stomach. The amazing thing is almost all the content you need to learn and get going is free to obtain on the internet if you have the tenacity to find it. Of course, Google has created some great resources to help Flutter developers, including The Boring Show where two developers ‘live’ code together so you can hear their differing perspectives and see how they approach problems. (You quickly realise there are many ways of achieving the same result with coding.) There is obviously the official documentation but, at the beginning, I found official documentation too technical and overwhelming and I needed to rely on tutorials showing me how to do a very specific thing in order for me to achieve it. YouTube videos were invaluable (Google has its own Flutter channel) and I found The Net Ninja particularly useful.
Even installing and setting Flutter up seemed like a daunting task — needing to update your PATH (this is simply so Windows can recognise Flutter commands in the console if you want to use a Windows console) and run Flutter Doctor to check all went well. After installing Flutter you still need a code editor to actually write the code. With Flutter you must install Android Studio and you can use it as an editor or choose a different editor (e.g. VS Code) at a later stage. I stuck with Android Studio given that it needed to installed anyway. Android Studio also comes with a handy emulator so you can run your apps through various devices on your laptop. However, I was using my old laptop which I had bought over 10 years ago and it really struggled with the emulator. My laptop resources maxed out pretty quickly and it would often slow down drastically or crash my laptop — it was super frustrating. Fortunately, for my sanity, you can plug in your own phone and set it to USB Debugging mode and use it to run your apps and get real-time changes as you are developing — the hot reload feature of Flutter. My laptop, despite being ancient, was actually capable of handling the day-to-day coding but not the emulator.
When you load up Flutter in your editor the boilerplate (the initial default template) code runs a simple counter app so you can test that everything has been set up fine. It worked! Now I simply needed to figure out how to code something for myself. Find out how I set about that task in the next article!
Part 1: What I managed in 12 months with no coding experience