← All posts

Guidelines, Roadmap and Resources for beginner to advanced iOS app development using Swift

By 2021 the mobile app market revenue is expected to be $693 billion. Now would be as good of a time as any to get into developing apps by yourself.

With the increasing number of things we can do from our mobile devices the job market for app developers is growing rapidly and will continue to grow in the foreseeable future. The ongoing Covid-19 pandemic has further boomed the market as people are doing more and more things from their homes. Besides, you wouldn’t wanna be depended on someone else when you finally have that billion dollar idea now, would you? 😆

Things you will need:#

  • Any Mac running the latest MacOS
  • iPhone/iPad to test your apps (You can do it on simulator but you will need a device for features like camera)
  • Xcode (Download it for free from Mac AppStore)

Tutorials that I recommend:#

For starting out:#

  • The Swift Programming Language by Apple (Link) — This is the official book by Apple and is a must read resource for anyone starting with Swift. You don’t need a prior programming experience. You can read this and make Swift your first programming language.
  • Stanford CS193P by Paul Hegarty (Link) — This is an amazing resource to learn about quite a lot of Swift and XCode. You will need prior experience in programming in some language to be able to follow along properly.
  • iOS & Swift -The Complete iOS App Development Bootcamp by Dr. Angela Yu ([Link](http://iOS & Swift - The Complete iOS App Development Bootcamp)) — This course is designed to take you from the very beginner to a basic iOS Developer. It will teach you everything from the basics of Swift, Storyboards, SwiftUI, CoreData, Firebase, In-App Purchases and much more. Through this course you will learn all the basic stuff and get a taste of the more advanced stuff.

For intermediate level:#

After going through the 3 courses above you should be capable enough to be able to make most of the small scale apps. Now what can be the next step? There is no set tutorial that will take you from a beginner to an intermediate. There are a lot of things in iOS Development that can be considered as intermediate/advanced and it would be pretty impossible to make a tutorial series for that. Instead what I want you to do is think of a fairly big app that you wanna build. It can be a clone of another app or your own idea.

For example: Lets say you wanna build Twitter, start by building all the basic features and UI that you know how to build and complete a basic skeleton of the app. Now focus on individual features like: How to make twitter like animation or How to make twitter sidebar or How to make twitter splash screen. Google these question and try finding the solutions to them and code them. Alternatively if you don’t wanna make a whole app you can take advanced features from multiple apps and just practice coding them.

At this point you should also start looking into Unit testing and UI testing for your apps. Testing is very necessary and whichever company you apply for a job will require that you know it.

That being said below are some learning resources you can use:

  • iOS Unit Testing and UI Testing by Ray Wenderlich (Link)
  • Ray Wenderlich Tutorials (Link) — They have a lot of articles on a variety of topics ranging from beginner to advance. They are very active and keep on adding new articles.
  • Sean Allen on YouTube (Link) — One of the best iOS Development YouTuber.
  • Lets Build That App (Link) — He has many tutorials on intermediate and advanced topics.
  • Brian Advent (Link) — Good resource for learning animations in Swift.

For advance Level:#

Now that you are done with intermediate level you should be able to build almost any app you desire. Advance Level according to me would be to improve your app. When I say improve I mean improving the performance of the app so that it can scale to a large number of users. Making a twitter or facebook clone is very easy. But making a twitter clone that will work when there are a million users, now thats something I would consider advanced level. So, how would you go about it? You can learn better complicated architectures like Clean Architecture, add multi-threading to your app, modularise your app for scaleability, add concurrency, make CI-CD pipelines, etc.

The articles below list a lot of resources for advanced iOS development:

Roadmap to help you dive deep into Swift:#

Roadmap for Swift Language (Link)

Roadmap for iOS App Development:#

iOS App Development Roadmap (Link)

Follow Latest Swift and iOS News and Developments:#

This is my first time writing an article. Any suggestions would be helpful.

Follow me on twitter to know me

Reach out on LinkedIn