The Best Way to Learn Mobile App Development

If you start looking into it or have already been researching on ways to learn mobile app development, you come to find out that there is a wide variety of options and decisions you have to make regarding how to learn Mobile App Development. I wrote this guide to help you get started in hopes that it will save you some time and get you coding your own mobile applications faster.

The Many Paths to Learning Mobile App Development

As I mentioned above, there are many different options when it comes to learning mobile app development. Here are just some of the decisions that you will have to make when first getting started with the development of mobile applications:

  • Android, IOS or Cross-Platorm – Do you start out learning to program for Android, IOS or both? What about other Operating Systems? Well the truth is, there really isn’t any other significant Operating Systems, Android and IOS hold about 98% of the market share right now, a mobile development team from UK finds. Worldwide, Android holds 75.22% of the market, while IOS controls 22.76% for a combined market share of 97.98%. So are we worried about the missing 2%? No, not as beginning developers breaking into the market, we’re not. The ratio of Android to IOS users varies significantly from country to country, so if you want to learn more about individual countries, you can go to https://deviceatlas.com/blog/android-v-ios-market-share and read all about it.  U.S. market share is a little bit unclear since I’ve read reports for the end of 2018 that put Android on top and conflicting reports that put IOS on top, so lets just say  it’s roughly 50/50 in the U.S. IOS usage is higher in countries with better economies. As most people know,  iPhones do not come cheap! I just read online that the new iPhone XS is selling for over $1500 dollars! That is much more than I ever care to pay for a phone, but it is impressive with 512gb storage and 4gb of ram. That’s almost as powerful as the laptop I use, amazing! In my opinion, that’s more than most of us need though. There are times when it would be nice, but most of the time I don’t think we need that much power in our cell phones. Surely not the average user at least. So, all arguments aside, Android is the clear winner to me because they have the largest market share world-wide and all of the multi-platform method of mobile app development I’ve seen and tested so far have not been good enough to build commercial applications with yet. So i think you should either pick Android or IOS to start with and eventually learn to develop for both since there is no viable cross-platform option available yet that I’ve seen.
  • What IDE, Framework or coding platform do you use? This question is heavily reliant upon the previous question because it mostly depends on what Operating System you have chosen to develop for. In my case, I’ve chosen to develop for Android first, so after checking out most available options, I’ve decided to go with Android Studio. I selected Android studio because it seems to be the most intuitive and it is very well documented. There’s nothing worse than downloading a new program and finding out that there is hardly any documentation on the web regarding how to operate that program. You won’t have that issue with Android Studio. It came out in May of 2013, so it’s been around for over 6 years now and has built quite the reputation in that short amount of time. I don’t think any of the choices available today are going to have been around for anymore than ten years or so just because the technology is so new. I did try a few other IDEs first and Android Studio was the one that I was able to build a working app the fastest on and it didn’t leave me scratching my head and thinking “Wow, I created an app, but I have no idea how I did it” as some of the other IDE options left me thinking. It’s also important to note here, I feel, that I have no reason to endorse any of the decisions I’ve made in this guide. No one paid me to write this and I do not endorse any products unless I truly think they are the best, but I have not been paid by anyone to endorse anything. So, if I say something is the best, I truly believe it is the best option. It’s as simple as that. That’s hard to believe sometimes in today’s fast paced economy, but it still holds true with me.
  • What coding languages do you learn? Again, this answer is dependent on how you answered both of the questions above, so my choice will only be relevant to your situation if you also choose to develop for Android. The official language for Android development is Java. There is also Kotlin for Android Studio users. Kotlin apps will run on any machine that supports the Java runtime environment and because most machines can, Kotlin is a relatively easy way to create android applications. If you chose to go with IOS on the other hand, Objective-C and Swift are the two most commonly used programming languages for IOS app development. My first choice was Java because it’s been around the longest for use with Android and seems to be the most documented of the two. Kotlin is newer and may have some neat new features, but for now, I’m going with old reliable…

Okay, so that about covers it, the three bullet points above cover the three most important questions you have to ask yourself when you first get into mobile application development. I took my time making the decisions I made to go with Android Studio IDE and the Java programming language to start building mobile apps with, but I can also learn the alternative methods after I perfect these Android application development methods. A true developer is always learning. They say you will need to know about seven different programming languages to be an expert mobile application developer. That sounds about right to me because that’s how many languages I had to learn to be an effective web developer. Speaking of which, I did look into using the languages I already know as a web developer for mobile application development. While there are platforms that make it possible, such as Cordova, in the end they are mostly using techniques to convert the code you write into Java anyway, so I figure it’s faster and more productive in the end to just start learning Java for Android Mobile Application Development. I may look into ways to convert my Java Apps into IOS apps when I am done making some mobile apps with Android Studio, but I suspect I will eventually learn to develop separate apps for IOS in the end.

What Programming Language is Best for Mobile App Development?

If you’re a web developer and are considering getting more into mobile application development for IOS and/or Android operating systems for mobile phones, then you are likely go ask the question, “What Programming Language is Best for Mobile App Development?”.

The answer is somewhat complicated because there are many answers. To narrow down the possible options, and as someone who prides themselves to currently working on the Devio.digital website, I am going to make some premature yet sagacious conjectures. I will assume that you, like myself, like to stay away from platforms and drag and drop type UI tools to program with. I will also assume that you want to develop something for both Android and iPhone, not just one or the other.

Considering the above assumptions, there are still many options, so what makes it such a complicated choice? In my opinion the main factor that makes it so difficult to pick a coding language to specialize in for mobile app development is the fact that there are two main and competing mobile platforms that have chosen to use different languages with their operating systems. Of course I am speaking about Android Vs. iOS.

Android Vs. iOS, Which is More Popular?

A quick Google search shows me that just over 85% of smartphones are Android, while most of the remaining 15% are Apple iOS phones. According to an article I read on 9to5mac.com, Android and iOS together account for 99.1% of all smartphones in use today, which makes any other devices almost pointless to develop for. It is worth mentioning that of the 0.9% of devices that are not running Android or iOS operating systems, are mostly running Windows operating systems. Windows OS accounts for  0.6%, while 0.1% are Blackberry and the remaining 0.2% are various other operating systems that are not popular enough to be worth even mentioning here.

Best Languages for Android OS

JAVA

Since Android controls the majority of the market for smartphones today, let’s look at them first. If you are going with the most popular answer, than Android wins by far! Android operating systems use Java. If you are coding an app for Android phones, Java is most likely going to be your best programming language to choose as the base language for your app. In reality, many apps use a combination of several different languages. However, in my experience your language of choice will make up the majority of the app’s code.

Kotlin

Kotlin, a second app development language option, was designed and developed by JetBrains. They are a Czech company known for the popular IDE, IntelliJ IDEA. Google’s Android team recently announced that they are officially adding support for the Kotlin programming language. Kotlin was created to address some of the Java issues. Some say the Kotlin syntax is clean, simple, and leads to less code bloat.

Best Languages for iOS

While Apple’s iOS operating system only accounts for roughly 15% of the smartphone market, that is still a significant number of devices out there. Smart developers create apps for both Android and iOS, whether it be with separate apps for each or some sort of platform used to create a mashup that will allow a single app to function on both operating systems.

Apple iOS apps primarily use SWIFT or Objective-C

SWIFT

SWIFT is a quickly growing open source language popular with many starting out with app development today. Apple has heavily promoted the use of SWIFT making it clear that they intend for SWIFT to be the leading language choice for iOS application developers.

Objective-C

Objective-C was the original language of the iOS operating system, but is being phased out apparently since Apple is making it clear that SWIFT is the future, then that leaves Objective-C stuck in the past. While it is still a viable option, I would suggest using it only on an as-needed basis for iOS application development purposes.

Cross -Platform Mobile App Language Options

For some of you, particularly those of you who don’t want to make two separate apps, a cross-platform language option might seem more attractive. A cross-platform language in this context, is one that will allow a mobile application to function on both Android and iOS without the need to make two applications, one for each OS.

JavaScript

If you started out as a web developer as I did, then you are surely familiar with JavaScript. Not to be confused or associated with Java, JavaScript is it’s own language despite the similar name. JavaScript is very versatile in that you can complete many different types of tasks using the language. It is probably one of the most popular cross-platform options because it is effective and rather light-weight.

Several JavaScript frameworks exist today that target the mobile application development market. While I am not a huge fan of most frameworks in general, some of these deserve some serious consideration none-the-less. Some of the well known JavaScript frameworks popular today include PhoneGap by Cordova, Angular.js, jQuery Mobile and React. There are many more that are worth researching if you are looking for a cross-platform JavaScript framework or library to help build your next mobile application for Android and iOS. Actually, JavaScript apps will also work on the other less used Operating Systems as well such as Windows OS and Blackberry.