Learn Swift: A guide for experienced developers

18 of the best books, courses, tutorials, and technical guides for experienced programmers new to iOS app development

Learn Swift: A guide for experienced developers
Stefan Berndtsson (CC BY 2.0)

So your boss wants you to learn iOS app development. Or maybe you have an app side project that you want to work on. Where do you start?

Learning a new platform and programming language can be intimidating. Even as you try to learn the basics, new technology is constantly being released, making it difficult to stay current. It can feel like you’re running a treadmill on top of a treadmill.

In this guide you’ll learn where to start with Apple’s development documentation, the best tutorials, and the best courses and books for experienced developers new to Swift and iOS. You’ll also learn how to best navigate Apple’s technical resources, and how to take your skills further with additional tutorials, courses, and books.

I put together this guide specifically for experienced developers who are looking to learn iOS development quickly. If you’re completely new to programming, you should check out the courses, books, and other resources I discussed in “Learn Swift: 15 beginner-friendly resources for iOS development.”

Apple’s documentation and resources 

As you start to make iPhone apps you will need to reference Apple’s documentation on the various APIs and SDKs. Apple also publishes numerous development guides, technical notes, and WWDC videos that are essential for any iOS or Mac developer to read. At WWDC 2018, Apple announced it is changing the way you’ll learn how to use new APIs, and it’s dropping support for its older programming guides.

Apple Programming Guides

Apple has published numerous programming guides that are a great way to understand how to leverage different technologies in iOS.

Starting guides that you should read are the View Controller Programming Guide, Table View Programming Guide, View Programming Guide, and the Auto Layout Programming Guide.

You can find more guides by searching the topic plus “programming guide” using Google, or on Apple’s developer search website. Google provides better and faster results than Apple’s search, which doesn’t always give the most relevant results. Apple’s search is better for sample code or WWDC videos.

Apple Developer Documentation

Apple dropped support for all of its programming guides at WWDC 2018, in favor of its new Apple Developer Documentation site.

Whether you’re a new or longtime Apple developer, you’ll have to learn how to find information with the new Documentation website. Check out the View Controller or Navigation Controller reference for detailed insight, or download sample code and learn about the APIs with detailed tutorials for Metal graphics rendering (now that OpenGL ES is deprecated on iOS 12).

You might find some topics are sparse, such as the Table View documentation. You should read the Table View Programming Guide, as it contains great insight, even though it’s no longer supported as of June 2018. The diagrams, code samples, and explanations are great, but they are lacking for many topics. My recommendation is to file bug reports to Apple to help fill in the areas where documentation is missing.

WWDC videos

Apple teaches the world what is new with iOS, macOS, tvOS, and watchOS every year. You’ll want to dive into these videos to get an understanding of what has changed, but also on how to get started.

The older WWDC videos, especially on mastering Auto Layout are great places to start. Watching newer Auto Layout videos will help bring you up to speed with new topics relating to new hardware, like the iPhone X. On newer videos Apple provides transcripts, slides, sample code, and related videos.

Apple Technical Notes and Technical Q&As

Both Technical Notes and Technical Q&As now fall under the Documentation Archive, which contains a treasure trove of information if you are building apps. It’s not clear what Apple plans to do after deprecating these great resources, but for the foreseeable future they are still relevant and helpful.

The Technical Notes provide additional details that were not present in the documentation, and any edge cases that might have been encountered by developers. For example, the In-App Purchase FAQ is an excellent resource if you need to accept payments in your app and you are facing challenges.

The Technical Q&As have answered specific questions that developers ask. For example, you may have seen a cryptic error message in Xcode when using unit tests with XCTest or wanted to know how to reduce the size of your app.

Apple Developer Forums

Apple provides help on the Apple Developer Forums. Sometimes you can find answers to questions, or details that you won’t find on StackOverflow. The benefit for asking questions or searching Apple’s developer forum is that sometimes you can get feedback from Apple employees.

StackOverflow

Another great resource for iOS development is StackOverflow. While it can be hard to ask a question as a beginner, if you can provide enough detail, you can get faster responses than on the Apple Developer Forums.

iOS tutorials, videos, and courses 

Apple provides great documentation, but it can be hard to follow along without seeing how to do something. Online text tutorials, video tutorials, and courses will give you a window into how an expert developer builds a feature or even an entire app. You’ll learn why you code it the way you do, and what to do when things don’t work like you expect.

App Coda

Simon Ng is the creator of App Coda, which has numerous in-depth tutorials for iOS. App Coda has been publishing weekly tutorials on iOS-related topics for the past six years, and it’s a great resource to follow. You can get the digital Beginning iOS 11 Programming with Swift book, where you’ll learn how to create apps for the iPhone X.

Design+Code

Meng To has created a beautiful interactive book, Design+Code, that includes code, exercises, and videos. As a foundation, you’ll learn design, typography, and color so that you can communicate with designers. Using the design background will allow you to take Sketch mockups and export resources directly to Xcode for use in your iOS apps. Download the Design+Code app for the full learning experience.

Hacking with Swift 


Paul Hudson is the prolific writer behind Hacking with Swift. He has published numerous books, video courses, and freely available articles on iOS, Swift, MacOS, Apple Watch, server-side Swift, and more.

Lambda School

Lambda School is flipping online college upside down with a freemium boot camp approach to education. Try out the free iOS Development 101 introduction, and apply to the 30-week iOS Development Computer Science program online. The program is being taught by some of the staff that created materials for Apple’s Everyone Can Code program.

Let’s Build that App

Brian Voong teaches iOS app development on YouTube. His Let’s Build that App (110k+ subscribers) walks you step-by-step through the process of building the UI and logic for a popular app. You will learn how to design and code the iPhone app UI from scratch, without having to use Xcode’s Interface Builder. In Brian’s online courses, you’ll also learn how to set up Core Data and power your app with a RESTful web service back end.

RayWenderlich.com

Ray Wenderlich has the most comprehensive website for iOS app development. You’ll find up-to-date tutorials and guides on every iOS topic (and many others). Start with Your First Swift + iOS 11 App course, or dig into different advanced topics that you can use in your own app (in-app purchases, networking, debugging, etc.). Ray’s team is publishing multiple articles each week. Browse the never-ending collection of free tutorials, up-to-date books, and video how-tos.

Stanford’s iOS course

Paul Hegarty, a former NeXT computer employee (who worked with Steve Jobs), now teaches at Stanford. You can take his Stanford college course, Developing iOS 11 Apps with Swift, through iTunes University on iOS or iTunes (Podcasts) for Mac. The course is freely available and has been updated regularly, but it requires that you have prior experience with C and object-oriented programming.

Udemy courses

Udemy has a large course offering and quality can be hit or miss. One instructor that you should checkout is Angela Yu from the London App Brewery. Angela teaches proven material from her in-person workshops in the online course, iOS 11 & Swift 4 – The Complete iOS App Development Bootcamp. Discover how to get started with Swift, iOS, design, Firebase, and even App Store marketing.

iOS development books

There are numerous books on iOS, and you should get several of these to keep as reference, or to look up a technique when you get stuck. All of the following books are up to date with iOS 11, and should be updated to iOS 12 in the Fall of 2018.

iOS Apprentice

Jump start your iOS 11 app development with the iOS Apprentice book from Ray Wenderlich. You’ll learn how to build apps from scratch and you will learn new aspects of the language and APIs. The book follows a tutorial format with step-by-step instructions that walk you through the process of creating various features in your app.

iOS 11 by Tutorials

Take a journey of new features in iOS 11 by Tutorials by Ray Wenderlich and learn how to integrate ARKit, Core ML, Vision, drag-and-drop, and more into your apps. You’ll dive deep into the APIs as you build functional iPhone apps from scratch in this intermediate-level book.

iOS 11 Programming Fundamentals with Swift

Matt Neuburg’s beginner-friendly iOS 11 Programming Fundamentals with Swift will introduce you to Swift and the Xcode development tools. You’ll also learn the basics of iOS and get an understanding of how iOS works.

Programming iOS 11

Matt Neuburg’s follow-on, intermediate Programming iOS 11 book goes much deeper into the iOS APIs and covers scroll views, table views, text, popovers, split views, and more. You’ll learn how to work with frameworks to control sound, video, maps, and sensors. The book has 1172 pages and updated source code on Github—you’ll be able to jump around between topics—using this book as both a guide and reference.

Closing thoughts

I’ll leave you with one last tip. Whenever I need to quickly learn an iOS topic, I follow the steps below. As you dig in, be sure to take notes on helpful links and code samples, and write down questions to follow up on later. 

  1. Read a programming guide (or the new Apple Developer Documentation articles)
  2. Watch all related WWDC videos (2012-2017)
  3. Play with sample code and review WWDC lecture slides
  4. Try the code in an Xcode playground or Xcode project
  5. Google search for tutorials using keywords (e.g. “swift number formatter tutorial”)

With so many great, freely available resources, it’s only going to be a matter of finding the time to learn iOS that will hold you back. If you’re having trouble getting started, make sure you can devote time each week, preferably every day, to discovering how to build iOS apps.

Copyright © 2018 IDG Communications, Inc.