The idea of having a small gadget in the palm of your hand, helping you with your daily tasks, organizing your thoughts, giving you a digital calendar to manage your busy schedule, allowing you to send and receive phone calls through different mediums, and use a high resolution camera, along with fun games and other entertainment on the go, has intrigued me all my life.
The truth is that mobile apps have become a big part of our life today. In the US, people use on average 9 apps a day, about 30 apps monthly, and spend an average of 3 hours and 35 minutes daily on mobile devices. These facts are what got me interested in the world of mobile apps.
My name is Pablo, I’m currently 27 years old, and I’ve been programming for more than five years now, but I’ve been interested in software development since the first time I used a computer. I’ve always wondered how things work behind the scenes. Event at a young age, I would find myself searching the web on how to create my own app. Yet, seeing all of those unfamiliar terms, names, programming languages, etc., I got discouraged because I didn’t know where to get started. That’s why I wanted to write this article. To show how I got started, and help anyone else considering a career in mobile app development.
It is worth noting that before learning how to develop mobile apps, you will need a good grasp of software development skills and knowledge of key programming language, such as JAVA, C or C++. It might seem a little intimidating at first, but there are a diverse amount of resources to get you started. You can find multiple online courses, for example, on Udemy, Coursera, Pluralsight involving software development. Obviously if you are in college taking anything remotely close to software development (management information systems, for example) as a degree, you will most certainly gain these skills and knowledge. I learned these basics in college, as well as on my own using online courses from different sources.
One of the first decisions I had to make was if I wanted to develop on iOS or Android. Even though these are not the only platforms that we can develop apps on, they are definitely the most globally popular and their established communities help us find the resources we need to answer any questions we may have on the way.
It’s important to make this decision since the resources needed, such as Software Development Kits (SDKs) or Integrated Development Environments (IDEs), vary for each targeted operating system you select. There’s also the difference of working environments between the two operating systems. When developing for iOS, the environment is a bit limited. In contrast, when developing for Android, the environment is more flexible. Keep in mind that the minimum recommended specs for the computer you use is not intended for mobile development specifically, but overall software development. While you don’t need the strongest computer, a good computer helps with compilations and build times.
Minimum requirements for developing iOS apps:
- An apple computer with MacOS is needed
- Intel i5 or i7 equivalent CPU, ~2.5 Ghz
- 4GB of RAM, although I would recommend 8GB
- 128 GB disk storage
- xCode IDE (This is free to download from the apple App Store)
Minimum requirements for developing Android apps:
- You can use MacOS or Windows with more or less the same specs
- Intel i5 or i7 equivalent CPU, ~2.5 Ghz
- 4GB of RAM, although I would recommend 8GB
- 128 GB disk storage
- Android Studio IDE (This is free to download from the web)
Once you have decided which platform and environment you will work on, you need to consider the programming languages available for developing in these specific platforms natively. iOS development has two different programming languages, Swift and Objective-C. Objective-C is a much more mature programming language, having been around for at least 30 years. It was the first one available for users to develop iOS mobile applications. In 2014 Swift was introduced. Swift aims to make things easier, from syntax to memory management. Swift has now been evolving rather rapidly, especially when it was open-sourced by Apple in 2015. I started iOS development using Swift and if you are just starting, I highly recommend it. While Objective-C is still available and being used, it is reasonable to say that Apple is focusing on the future of Swift. Here are some resources to get started on iOS development:
Android development can also be written on two different languages, Kotlin and JAVA. Although most of my experience on mobile development lies within iOS development, it is my understanding that learning Android development should start off using JAVA. This is because learning JAVA along the way helps you to advance career wise and become part of a large community, which could lead to better job opportunities. At the same time, if you are already pretty experienced with JAVA, learning Kotlin will help you prepare for what’s to come in the future and also improves productivity considering that there are some tasks that are easier in Kotlin than on JAVA. Here are some resources to get started on Android development:
Regardless of the resources you leverage, the biggest step to take is getting started. Software development skills are not only in high demand but are increasingly becoming an essential skill for everyone. Once you have learned the basics in software and mobile development, you can ignite your creativity and develop awesome apps whether just for fun, or to help solve business needs. Happy coding!