Learning iOS App Development

Over the last few weeks, I have been learning a lot about Web Development. This week I decided to tackle my first tutorial in iOS Mobile App Development. 

Ray Wenderlich’s free workshop on iOS app development walks you through the development process from start to finish with a beginner-friendly project — a simple game application called Bullseye. The site provides you with the resources you need to complete the project, and if you set up an account you can save your progress in the tutorial so you can easily return to where you left off. 

Ray Wenderlich takes more of a classroom approach (rather than a workshop approach) in his teaching technique. It feels more like being in a classroom than in a typical boot camp environment. He spends a lot of time setting the stage and giving an overview of his course as well as an introduction and summary for every segment. He also spends a lot of time on the history of Swift, design concepts, and mathematical theory, as well as navigating the software. The tutorial is a mix of lecture-style video lessons and hands-on guided tasks followed by challenges to test your knowledge. I really enjoyed the challenges because it allowed me to see how much I could (or couldn’t) recreate on my own. Wenderlich believes in learning via repetition so there is a lot of circular learning which I also found helpful as a newbie. 

Wenderlich explains that it isn’t necessary to fully understand every piece of code that you write. However, through the little bit of code I’ve been learning in web development, I’ve come to realize that the less you know about the code you’re using, the harder it is to debug it when you make a mistake. Experiencing that first hand made me want to thoroughly dissect Swift  before using it and so I would often pause the videos to do my own research. When learning to code, I think it’s completely ok to just trust the process and realize that comprehension comes through repetition and practice. 

It was challenging for me to switch gears from learning HTML, CSS and JavaScript to learn Swift. Being so new to coding (a mere two months in) I don’t think I had enough of a foundation in web development to be able to deeply understand a new language along with designing for a new intention. Intrinsically, it was similar, but conceptually it was very different. Mobile apps are much more interactive than a static website and designing for interactivity is much more complex than designing for information layout. In iOS development, you step into the world of object-oriented programming and compile your project in Xcode, a fairly complicated IDE (Integrated Development Environment). There are so many shortcuts within the editor that I didn’t write any code for the first several segments and only augmented the code copied in.

My main critique is that Wenderlich’s tutorial was, unfortunately, a bit outdated. Swift is a relatively new language and for this reason is updated very frequently. Xcode had already been updated multiple times and the layout of the new version was quite different from the version shown in the tutorials. I often had to pause, search and troubleshoot to keep up with the tutorial. The Bullseye app involved a bit of math to calculate points, which Wenderlich spent a lot of time explaining. This would have been fine, if the objective of the tutorial was to learn mathematics, and though it was necessary information to build the game, the depth of the explanation made me feel confused about his teaching objectives. In my opinion, learning the math behind the game mechanics could have been done better with accompanying illustrations or graphics to support the instructors teaching objectives. 

In iOS development (just like in web development) you don’t need to understand every line of code. However, having a deep understanding of code helps to be able to see the BIG picture and understand things conceptually. I believe that you need to know what is possible and how to implement it to gain confidence using Swift in Xcode. 

Overall, I would say I gained a good introduction to iOS development and Xcode. The simplicity of the Bullseye game gave me insight and appreciation for the mobile games that we interact with on a daily basis. I’m excited to dive even deeper into iOS and to learn more about the future of this technology! 

Before you go, check out my Bullseye game below!

Are you ready to dive into this tutorial? Check it out here.