Android Studio to Ionic
Back-story, lessons and everything in between.
After tinkering the inter-web for years, I was ready to move. I had then started becoming fascinated by mobile applications, more specifically Android applications. I wanted to know how they work and also build one of my own.
And so, my journey to Android programming commenced. Information was readily available provided you had internet. I knew that in order to learn Android, I needed to be good at Java. That became my first goal. I spent the better part of 2015 honing my Java skills. I read from multiple sources including YouTube, Udemy, Udacity, Codecademy, and StackOverflow just to mention a few. The thing about Java is there is so much repetition when writing code, after a while it just kind of sinks in.
Confident I had at least grasped the basics of Java and Object Oriented Programming, I started delving into Android Development. I thought my previous methodology would work…boy was I wrong. Most of the resources I found online lacked a proper structure. They also, to a degree, lacked practicality with regards to moving someone from beginner level to intermediate or professional level. I knew that wouldn’t work, and so I started searching for paid courses.
Udacity, though highly recommended, was too pricey at the time. As fate would have it, I stumbled upon a course by Mark Price from Devslopes while searching for courses on Udemy. It’s actually how they named their course that caught my attention: “Android Studio: Beginner to Paid Professional.” I honestly liked the sound of that, it had a ring to it — if you know what I mean. Luckily, Udemy also had a sale running that week. Instead of paying $133, I needed to only pay about $20. In hindsight, that might have been the best investment I have made this far with such little amount.
Also, has anyone else realized that Udemy always has a promotion running or is it just me?
Anyway, I purchased the course. Given I had other things I was still doing, I spent about 2–3 hours a day going through Mark’s course. I’m not doing any sort of marketing, but I honestly think Mark Price is one of the best teachers I have met, so to speak (Him and Tyler McGinnis. Definitely recommend checking our Tyler’s React course). The course was only 25 hours. However, given the amount of apps and exercises one had to do — it took about 3 months to be completely done. I also used Mark’s course as some sort of guideline on how to better learn Android.
Combining his course, learning from other sources (StackOverflow played a big role here) and practice, I was able to built 10 Android apps; none of which made it to the Playstore for y’all wondering.
The thing about the Devslope’s course was that it taught more than just Java or Android. The focus was a blend of how to design great user interfaces and experiences as well as how to think as a programmer (although a little bit oriented towards object oriented programming. Get the pun? 😂 😂 😂).
I’m not sure if it’s the language or the teacher, but for whatever reason, I fell in love with Java as a language. And the problem is that I obsess with stuff. I became a purist, wanted to hear nothing of Hybrid applications or even Native Android apps built with anything else other than Java (with the exception of Kotlin).
And then Micha happened. I remember when he first introduced me to Linux. His exacts words were, “Once you start using Linux, you’ll never go back to Windows.” He was right, twice! He had started using Cordova way back before it became so popular. As it grew, and as Ionic Framework also matured —so did he. After seeing just how close Hybrid and even Native apps had come close to the real thing, I was sold.
In 2017, I jumped ship and built my first Ionic cross-platform native application. Angular had also become a lot friendlier since the last time I checked (AngularJs 1.0 haikuwa mama ya mtu! Eeey). I liked that. Additionally, having been through hell with Redux while working with React, I loved the fact that Angular was a full framework that I could built both web and mobile applications with. I’m still not sure if Angular is bearable or if Redux is just freaking hard or if both are true.
Anyway, here I am today — still in love with Java but married to Javascript. Now that you understand where I came from, I thought I’d share why I switched the languages and why I think it might be good for you to do to. But first, a quick reminder “Native Android applications powered by Java are not going anywhere anytime soon. And neither is Java.” With that out of the way, let’s begin:
1. The rise of PWAs:
Oooh yes! Progessive Web Apps, the new talk of the town. Progressive web apps are easier to build using Frameworks such as React and Angular. In fact, Ionic makes it super easy to build PWAs.
The truth is, tech giants dominate the app market. And their apps takes up a lot of space which users don’t have. Contrary to what developers might think, the web still has a wider reach than applications. If you can combine the reach of the web with the experience the native apps have — you would have hit a home run. And that’s just what PWA does.
2. Size of code base
Aside from Android Studio itself taking up sooooo much space, apps built using Java (Android Studio) have such a huge code base. The amount of code one has to write is incredible. I remember in one of his lessons, Mark even commented and said “Everything that is wrong with Android studio is Java.” Sad, but I’d have to agree.
3. The learning curve
Having come from web, I found it easy to learn Ionic. Most of the things in ionic are adapted straight from the web. Familiar syntax made it easy for me to pick up quickly and set the ball rolling.
4. Typescript is easy to debug than Java
Ionic runs on Typescript, which is like a superset of Javascript. Although Typescript can also be strict in its own right, it’s easier to debug than Java. Granted there are a lot of more Java developers and you can probably find an answer much quicker on StackOverflow, good luck trying to understand what broke in the first places. And don’t talk to me about unit testing, just don’t!!
5. Cross Platform
I like the idea of built one for all. Apps built on Ionic are cross-platform, that is, they can work on different sets of devices. And with the recent updates made on the Framework, Ionic apps are starting to look and feel like Native applications. Most users can’t even tell the difference — heck, even Devs can’t tell the difference unless they see the code (or someone tells them).
6. Ionic allows me to fully focus on the front-end
When an app is built using Ionic, be rest assured that the back-end is supplied from somewhere else. Separation of back-end and front-end has become a global trend. The case of build an API, which is consumed by the front-end has become the norm.
Working with Ionic, and consuming the API (usually done by Micha), allows me to focus on the front-end: the user interface, the experience, and the tiny little details. Which is something I really enjoy doing.
If you read this far, well — you read this far, what more do you want me to say? It’s over, do something else 😂 😂. Okay just kidding, you’re awesome.