iOS Developer Path

Thulani Mtetwa
3 min readJun 19, 2023
Header beginners

Hardware: MacBook Pro or Mac Mini (value for money)

Software IDE: Xcode

(NB: I would recommend you have a test device iPhone, even a second iPhone 6 is fine in this case long as it supports the latest iOS version)

Swift Language: (NB: Just start using the Swift Language. You won’t have to handle much Obj-C unless working with legacy code).

Key things to focus on : (https://redblink.com/learn-ios-development/)

  1. Collection Types
  2. Closures
  3. Enumerations
  4. Classes and Structs (Important)
  5. Protocols
  6. Automatic reference counting (Important. Understand how retain cycles work )
  7. Optional Chaining
  8. Extensions
  9. Generics (Important)
  10. Access Control
  11. Control flow

(NB: As you work with tutorials you’ll come across a lot of these. So do not worry about the details very much as you’ll see how all these fit together.)

Code Organisation or Principles to Code:

As you know Swift is an Object Oriented Programming language so it’s important to understand the following concepts when coding

  1. OOP Principles (https://www.kodeco.com/599-object-oriented-programming-in-swift)
  2. SOLID Principles (https://www.kodeco.com/21503974-solid-principles-for-ios-apps)
  3. Protocol Orientated Programming (https://www.kodeco.com/6742901-protocol-oriented-programming-tutorial-in-swift-5-1-getting-started)

Also when writing code consider the following Design Patterns (Important)

Design patterns are typical solutions to common problems in software design. Each pattern is like a blueprint that you can customize to solve a particular design problem in your code. ~ Refactoring Guru

  1. Start here (https://www.kodeco.com/1941154-fundamental-ios-design-patterns)
  2. Move on here (https://www.kodeco.com/1941302-intermediate-ios-design-patterns)
  3. This is for if you are comfortable with the above (https://www.kodeco.com/1941458-advanced-ios-design-patterns)

You must understand and have competency in the following because it’s in every project you will work on. (Important)

  1. Networking: https://www.kodeco.com/28450876-beginning-networking-with-urlsession and https://www.kodeco.com/32317111-advanced-networking-with-urlsession
  2. Git (https://www.kodeco.com/books/git-apprentice)
  3. Dependency Injection (https://www.kodeco.com/14223279-dependency-injection-tutorial-for-ios-getting-started and https://medium.com/sahibinden-technology/dependency-injection-in-swift-11756a07a064)
  4. UIKit framework (https://www.kodeco.com/books/uikit-apprentice/)
  5. Unit testing using (https://www.vadimbulavin.com/tag/testing/) (VERY IMPORTANT)
  6. Unit testing using 3rd party Frameworks (NB: You can look into this once you understand testing using XCTest framework ) like Cuckoo or Mockingbird.
  7. Using 3rd party frameworks to Manage Dependency Injection (https://www.kodeco.com/17-swinject-tutorial-for-ios-getting-started and https://github.com/hmlongco/Factory)
  8. Cocoapods (NB: Also check out Carthage or Swift Package when you have time) (VERY IMPORTANT).

Side Note:

These are the things I have seen to be important when doing iOS Dev. Everything else you can learn as you go along. Also, remember you won’t maybe master this at the first attempt.

But what is important is that you understand when these things are needed. And you can always reference back to how it’s done.

Also when in the market looking for an iOS Role. Do not call yourself a Junior developer. Let the people assessing you make that call. That is if you doing this to enter the professional market for this.

It’s very important you have projects on your git profile people can access to see your work. This does not have to be complicated work. You can have stuff from the tutorials you go through. Just make sure you have typed out your work and not just copied and pasted. Also, reference the tutorials and give a brief summary of your learnings.

Also, try going through some clone projects to see how other people do or create certain projects. ~ My personal opinion

--

--

Thulani Mtetwa

I am an iOS App Developer. And worked on multiple apps in the finance and insurance industry.