The mobile application industry is huge and it’s growing by the day. In the past year, Apple has distributed over $10 billion to developers while over a billion Android devices were shipped. The total value of the mobile app industry is expected to grow to $77 billion by 2017. Just as how it was with the dot-com boom of the late ‘90s, those who were lucky enough to catch the mobile app wave in the early stages are most likely doing really well right now.
As for those who didn’t manage an early head start, many have considered making a career change and self-learning mobile app development to become a full-time mobile app-developing rockstar. You might think that it’s a bit late and that the mobile app market must be pretty saturated by now. However, the truth is that it’s never been a better time to be a mobile software engineer, a mobile app designer or an entrepreneur starting a mobile app business.
If you’re one of those prepared to put on the geeky glasses and get down to learning all about programming for mobile apps, it should come as a relief to know that the barrier to entry for mobile app development is relatively low. In fact, the one major obstacle cited by many who are on the quest to learn mobile app development is that it simply requires time and hard work. Just like learning any other skill or field of study.
Of course, you can always go back to college and study for a computer science degree. However, that takes a lot of time and money. To help you hack your way to becoming an app developer, we gathered some of the best online resources to self learn mobile app development. But before you begin the dive into the world of programming, it’s important that you understand and figure out the following questions:
1. Why do you want to learn mobile app development?
Probably the best way to begin is to seriously ask yourself why you’re setting on this path now to learn mobile app development. The answer to this fundamental question will ultimately affect many of the important decisions that you’ll be making.
Could it be that programming is your true passion in life but you had decided upon on a different path earlier on in life? Or could it be that the opportunity was never presented to you when you were younger? Perhaps you were once discouraged to venture down this path as it happened to me? Maybe you’re just looking for a new challenge in life and life is telling you to learn mobile app development.
It’s important that you seek to truly understand why you want to learn mobile app development so as to better your chances for success.
2. Where exactly are you starting from?
If you’re web developer looking to learn mobile app development, there are several useful platforms that can help you to transition to mobile app development such as PhoneGap and Appcelerator Titanium.
PhoneGap essentially uses a mobile platform’s Web view to render content so the app is, in other words, a web app passing off as a native app. Developing an app in such a way is limited in terms of the app’s ability to access the device’s capabilities and to offer a UX that fits well with the native platform. Appcelerator Titanium on the other hand uses the platform’s native controls to render UI although you’d have to learn its API.
If you’re not involved in any kind of computer work but have some prior knowledge on what is object-oriented programming, it would help a fair bit as you would already understand how computing works.
However, if you’re an absolute beginner starting from zero, it’s probably best if you take up a short introductory class on computer science just to get a hang of the basics. You can find free courses online with MIT Open Courseware, Coursera, or edX, just to name a few of the more popular ones.
The next recommendation I’d make is not to start to learn mobile app development straight away but to take the time to think about a final project you’d like to work on while learning mobile app development and/or find a mentor.
If you decide to go with one of the courses that you’ll find in the list further along this article, many of them would include mini-projects to put your programming skills to practice. I’d suggest having your own little project as well that would be your motivation, your milestone evaluation, and your personal creation all at once.
The Next Steps to Learn Mobile App Development
It’s good to know what you’d be dealing before taking a leap. These days, mobile apps are built primarily for the iOS platform or the Android platform. One is distinctively different from the other and you should consider whether you want to specialize in iOS or Android mobile app development. Of course, there’s no stopping you from attempting to master the both but that’s not a common thing to do in the mobile app development world.
Developing for iOS means learning Objective-C or Swift, which brings us to the question that is often asked, “Should I start learning Objective-C or go straight to Swift?” The answer to that ultimately depends on the answer to the very first question we asked above: why do you want to learn mobile app development?
If you’re learning to develop apps so as to create your own products for the iOS app market, then go ahead and jump straight to learning Swift. If, however, you want to be an iOS developer working for a mobile app development company, you’d be better off starting with learning Objective-C.
That’s because Swift was introduced only in 2014 and while feedback on it has been generally very positive, there are still tens of thousands of iOS apps out there built with Objective-C and tons of documentation meant for Objective-C. As a professional iOS developer, you’d need to know how to maintain or fix the code.
Here are some good online courses (note that some of them do charge a fee):
- CodeSchool Try Objective-C and Try iOS course
- Stanford University Developing iOS7 Apps for iPhone and iPad (slightly outdated but free and still useful)
- Treehouse iOS Development with Objective-C and iOS Development with Swift
- Udemy Swift and iOS8 Apps in 31 Days
You’ll also find that Apple’s iOS Developer Library is very well-documented and rather comprehensive. It’s probably best to start with a course that breaks down the complexity of iOS development into digestible parts and once you have a good understand on the basics, to delve further into each component detailed in Apple’s resources for developers and in StackOverflow.
And once you’re getting really comfortable with developing apps for iOS, here are some great blogs on iOS development:
Do take note that to be an iOS developer, you’d need a Mac. Also, testing devices would be costly as Apple products do carry a premium price tag. However, you might be consoled by the fact that Apple consumers do tend to spend a lot more on apps.
Should your choice platform be Android, make sure that you’re aware of the one concern of Android developers: there are many, many, and I mean many, different types of Android devices out there, which complicates things a little. However, it’s not an issue if you perceive it more as a challenge and a potential to reach a wider audience.
Learning to develop apps for Android requires knowledge of Java. If an image of aromatic Indonesian coffee is the only thing that comes to mind, you probably need an introductory class to Java the programming language.
- Programming by Doing (for Java)
- Vogella Java Tutorials (for Java beginners)
- Coursera Creative, Serious, and Playful Science of Android Apps (part of the Android Development track)
- Udacity Developing Android Apps
- Google’s Training for Android Developers
Not surprisingly, Google’s Android Developer Library is also extensive and well-documented.
Once you’re comfortably dreaming of electric sheep, here are some resources for Android development that you might want to check out:
Now that you’re ready to learn mobile app development and to become the next mobile app developer guru, do keep in mind that mobile app development isn’t just programming. Knowing how to write code to build an app is simply the beginning. Best practices, such as writing clean code and documentation, would come next as well as learning how to promote and monetize your mobile apps.
If you’re a designer who loves to get hands on with creating prototypes without having to learn mobile app development, we have the right tool for you. Proto.io is a mobile prototyping tool that allows you to create fully-interactive, code-free prototypes to showcase your creative ideas. Start a free trial today.