Best resources to get started with iOS development

If you're just starting out with iOS app development, it can be challenging to find resources that will keep you moving forward. Here I want to share some of the best resources that has helped me with my first iOS app. This article will be especially useful if you're like me who will do everything from raw ideas to App Store submission.

Design / protyping tool

I use Sketch 3 for all screen prototypes and asset production. A similar tool I used in the past is Adobe Fireworks but since Adobe said good-bye to Fireworks, I started using Sketch 3 and now it's hard to imagine my life without it. It's a versatile, easy to use tool with a friendly price tag. If your work involves a significant amount of web/mobile UI work, you should check them out.

Many seem to use a wireframe tool, like Balsamiq, Omnigraffle but I'm one of those people who use a pen and paper for a quick visualisation process. If you work in a team you may want to consider a wireframe tool for an effective communication but if you're on your own like me, pen and paper approach should be perfectly fine.


Swift, the new programming language for iOS

I have a programming background so learning a new programming language wasn't a huge learning curve but when I first glanced through Objective-C, I instantly lost interest. It just looked too complicated.
On the other hand, when Apple announced Swift, I was instantly hooked. The language was a lot more natural and it looked similar to Javascript which I was already familiar with. 

Despite the familiarity with the language, there were still a lot to learn in terms of using iOS SDK and new concepts introduced to Swift. I spent hours, days on Google and Youtube wishing to find some good tutorials. Luckily, I stumbled on a solid course that was provided by Stanford University. It was free and legal.


Swift course by Stanford University

It's available on Itunes U or on Youtube. The lecturer is a reputable engineer named Paul Hegarty who used to work with Steve Jobs at Apple. The course can be long and daunting if you were looking for some quick stuff but it touches on the fundamental aspect of iOS programming with depth. Learning fundamentals is critical as it allows to adapt your knowledge for solving various problems. So if you're not looking to hack something together, this should give you a solid foundation on your knowledge of Swift and iOS development in general.


Udemy iOS 9 Swift course

The curriculum of Stanford Swift course does not yet cover the whole spectrum of iOS development. And it can be challenging to follow if you are new to programming. If you can afford some pocket money and want to save some time from looking for free stuff, there is an alternative to learning Swift and iOS.

I personally took this Udemy course.
There are other alternatives on Udemy that teaches the latest Swift on the latest Xcode but this is what I ended up choosing after seeing good reviews. It was overall a great choice and I can recommend it to others.

The author, Mark Price explains clearly in a fun, approachable way for audience at any level of programming. 
The course includes building real world apps and the author doesn't take a shortcut but tries to explain the fundamentals first before tackling any real world problems. Inconsistent audio quality in some of the earlier lectures can bug you if you're a sensitive person but the production quality in general is high considering the price. It would have been better if the author covered the basic concept of CRUD (Create, Read, Update, Delete) but he missed Update, Delete part which I think is crucial to any programming. But overall, it's clear that the author put a lot of effort to help others get the best result from the course. The course even covers using third-party libraries (Cocoapods) and how to prepare for App Store submission which was a nice touch.

Code with Chris

CodeWithChris is another good free resource for learning Swift. He explains clearly in an easy-to-follow manner and touches on some essential iOS SDK (software development kit). It also covers back-end services like Parse and Firebase for more data rich application with cloud capability. It will be a much better use of his channel along with a proper book or a paid online course.

Design + Code by Meng To

Meng To is a designer who is passionate about building a product from start to finish and he published a book called Design + Code for designers passionate about learning to build iOS apps. I don't have a personal experience to share about this book because I didn't find the need yet but I hear that it helped some people.


And...of course, good old StackOverflow

StackOverflow is the best place to go if you know what you're asking and have already done some ground work yourself. The chances are high that other people have already asked the same question so make sure you do some research before making effort to post your question. It will not only save you time, but also to keep the community healthy. And understand that this kind of site will only work if you're are already learning something else where.

Last but certainly not least, if you are not version controlling your project, I highly encourage you to invest some time learning how to use Git in your project. This doesn't only apply to iOS development but any web/mobile projects. Not long ago, I've accidentally deleted the main storyboard of my Xcode project when I tried to remove a segue (connector between screens) and my friend Git was watching every single move I was making and gave me an option to discard that mistake.