Thoughts & Musings
Learning Apple's Swift Programming Language
When Apple announced their new programming language, Swift in August 2014, I thought it was a great time to try my hand at developing my first native iOS app. I had dabbled in learning Objective C a number of times but it had not stuck, now with Swift, I could see a language that more closely resembled what I was comfortable with thanks to my background as a web developer.
As Swift was a brand new language, initially there were not many places to get started with it. I, like thousands of others, immediately downloaded the official Swift Programming Languagebook from the iBooks store and set about trying out the examples in the new playground feature of the latest Xcode beta. Running through each of these tutorials were ok but I quickly found that I needed more information around each topic to get a wider understanding of the key concepts. I’ve always been someone that learned my development skills initially through the medium of videos. I remember watching Andy Clarke and Molly E. Holzschlag's CSS course on Lynda.com back in 2006 when my company at the time were looking to move beyond a table-based website created in Dreamweaver. The incredible Railscasts series from Ryan Bate’s and Michael Hartl’s Rails Tutorial helped me get to grips with Ruby on Rails early in 2008, whilst David Travis’ The Ultimate Guide to Usability helped me out greatly when I eventually made the jump from being a Web Developer to a UX Designer and Developer.
Just a few of my favourite resources for learning Swift
To learn Swift I started with a course I found on Udemy Swift - Learn Apple’s New Programming Language Step-by-Step this was a great first step because I really helped my build upon the foundation knowledge of Swift I had gained from playing with Strings, Arrays and Dictionaries in the playground. While running through this course I had the nagging feeling that while I was improving my understanding of the concepts of Swift, I was not fully grasping how I would transfer these skills into an iOS app itself. This led me to my next Udemy purchase, Rob Percival’s excellent The complete iOS8 and Swift Course. This course helped me with the practicalities of building apps, in fact, throughout this course you build 15 apps and are shown how to submit to the app store. I regularly find myself still going back to certain chapters of this course to double check some of my code.
Throughout this time I had been regularly asking questions, as well as leaving answers over on StackOverflow.com to fill in any gaps that had been left from these tutorials. When I wanted to get to grips with Core Data and iCloud, I found RayWenderlich.com’s book Core Data by Tutorials to be a thorough and fully encompassing of the topic.
It goes without saying that I still have a lot to learn, but now feel that I am competent in, and possess a good understanding of the Swift programming language. Additionally I have accumulated the core skills required to put together a professional standard iOS app. My first iOS app, Fight Scores is currently in review after a successful few weeks of user testing via TestFlight.
As with learning any language, the last few months have contained their fair share of ups and downs, days of frustration followed by moments of pure exhilaration as a concept finally clicks into place. I wouldn't trade a second of it.