Mobile Development

What is mobile deveopment?

Mobile development is, simply put, making apps for mobile devices. Although traditionally this has focused on making native iOS and Android apps, lately there has been a push towards creating hybrid apps that can be written once and run on both operating systems. I personally perform the former, as native apps are more performant and have much better developer ecosystems, but both choices are acceptable.

What do I need in advance?

Unfortunately this isn't something that can be done on the school computers; you will need to bring in your own laptop if you want to work on mobile apps during club time. If you want to write iOS apps, your computer will also need to be a Mac (Android apps can be written on any computer). There is no other cost to write apps that you put on your own phone, but if you want to publish your apps, the Google Play Store charges a $25 one-time fee, and the App Store charges $100/yr for a developer license.

Where should I start?

For iOS apps, you'll need to learn Swift. Apple has written a comprehensive Swift guide (iBook) that I highly recommend flipping through. You don't need to read the whole thing, but the first few chapters will give you a good sense of how to write basic Swift code. Apple has also written a great "Getting Started" tutorial about creating basic iOS apps with a little bit of Swift knowledge. After going through these, you should know enough to make some simple iOS apps, and be able to build on your knowledge with practice. However, if you would like to read some more tutorials, I personally like Ray Wenderlich.

I'm not as familiar with the Android ecosystem, but one choice you'll have to make is whether you want to write your apps in Java or Kotlin. Kotlin is newer, having just been released this year, and it seems to be the future direction of Android apps. However, since it is so new, there aren't as many tutorials available as there will be with Java. If you would like to start with Kotlin, they have a good "Try Kotlin" tutorial on their website. The official Android documentation is also a great resource (mostly Java), and Google recently created a free Udacity course if you prefer video content.

What should I make?

Although sometimes it may seem like every app has already been created, I promise you there will always be more to make. If you don't have a killer app idea, try looking for problems or things that you do every day that could be improved or facilitated through a mobile app. And if you still can't find anything, you can browse r/AppIdeas for inspiration, reach out to an open-source project or YouTube channel that might want an app, or create a better rendition of an app you use. The best apps you'll make are the ones that are useful to you.

I can't help with Android apps (unless you just have a Java question), but I've been making iOS apps for four years now, and I am currently employed as an iOS engineer at Microsoft. If you have any questions about apps, feel free to ask. Good luck!