iOS
This page provides a quick overview of my recent push to learn iOS development. I have been studying iOS development for 6 weeks. In that time I was able to create an introductory casual game, work through a few tutorials, and start developing a much more complex game that will likely take 4 to 5 years to complete solitarily. This page does not explain anything about iOS development, though it does explain my approach to learning iOS development. I have barely begun my journey to iOS development, as I reach new stages I will update this page with my experiences.
Day 1 - Google
At this point I actually didn't know anything about developing for iOS. I had experience with Excel macros (VBA), SQL data mining (not DBA), and SSRS reporting but that's it. So, at first it started with a Google search "How to develop for iOS". I learned that before jumping into code you must decide what devices you want to develop for and what app you are going to create. Pretty basic, so I decided that I wanted to make an RPG game for the iPhone. I chose an RPG because I liked playing them in my formative years; but this created another question that needed to be addressed "What gaming engine did I want to use?"
Week 1 - Gaming engine...
I am not a gamer nor do I own a gaming system (other than the diy RetroPie) and choosing a gaming engine was a hard question to answer for somebody with zero game development experience. I didn't even know what a gaming engine was, so that was the first step to enlightenment. There are a lot of YouTube videos that can tackle this subject in general. Next, I focused on specifically iOS gaming engines. At this point I have been Googling a lot and going down the YouTube rabbit hole quite a bit and naturally began to narrow down a couple sources I liked. One is a website called Cartoon Smart and the other is an iTunes U course from Stanford University In the end I decided to use SpriteKit for iOS. This meant I needed to download and install XCODE on my mac (Apple makes this nice and easy).
Week 2 - Tutorials at last!
With XCODE installed and a couple good sources for tutorials I was ready to code. I found a tutorial on YouTube for a small casual game that looked like a good a starting point as any. The objective of the game is to keep the ball on the path by tapping the screen to change the ball's trajectory. This tutorial isn't very good (coding is a little wonky), but I followed through all the same. I typed all the code rather than copying and pasting redundant sections for better retention; in the end the app is roughly 45,000 characters.
Week 3 - Members Only
Week 3 was completely dedicated to the tutorials on CartoonSmart. These tutorials are shorter and narrated in plain speak which is great for just getting started. Once I worked through the free tutorials I paid for an annual subscription to gain access to the members only content. The paid content continues the free tutorials into more depth. These tutorials gave me some bearings in the XCODE application using the SpriteKit GUI. But, there is only so much you can do clicking around and uploading images, so I figured the next step was to learn Swift.
Week 4 - Stanford University
The next step to learning Swift was to enroll in an online course from Stanford University through iTunes U. There is a big jump in difficulty from CartoonSmart to this Stanford course. These videos are extremely dense and though the professor is a genius I had (and still have) a lot of catching up to do. I paused the first few videos almost every sentence. I took notes like I was in college and listened to the lectures in the shower, in the car, while cleaning house, and generally any time I could. There were reading assignments and mini exercises to do, which kept me very busy. The first project that the professor walk you through is a calculator, that may sound easy enough but he works in various concepts to make it a rather complex application. He explains MVC (Model View Controller) application design and how these departments communicate with eachother. If you reallly want to know how to develope for iOS then take this class and see it to completion.