Think like a Carpenter, Act like an iOS Developer

By Yohannes Haile

Career

5 minutes read

|

May 25, 2026

Read on medium.com

Originally posted on Sep 17, 2022

Think like a Carpenter, Act like an iOS Developer

This article will cover the basic things you need to be familiar with to build apps for iPhones or iPads, and I will point out some free and paid resources you can look up to learn iOS Development. I am writing this piece based on my experience in learning the technology and working with a magnificent team on iOS apps, and therefore, you can use this as a starting point to guide your endeavor in learning iOS Development. With that being said, let’s cut to the chase.

Is Taylor Swift a good singer? Hmmm, all I know is Swift Programming Language…

Ok, you gotta give me applause for that subtitle. LOL

“People gonna hate, hate hate hate…” playing in the background thread.

Apple used to use Objective-C for the development of apps for iOS and macOS, but since 2014, Swift has been the primary language for app development. After almost 8 years of growing strong and mature, now it is worth starting your iOS Developer journey by learning the language.

Swift is an object-oriented programming language with some functional programming flavors to it. For someone with a coding background in C++ and Java, the strange concepts would be Optionals, Closures, and the very fact that you can skip writing semicolons when you end your statements. Otherwise, it is a very easy and understandable language with ridiculously simple syntax to be familiar with.

The non-terminating debate with your manager about what to use for your UI

The mainstream media (pop culture) idolizes the newer approach to building UI for iOS apps, SwiftUI. SwiftUI is a declarative framework to build UI components/views for your iOS apps. The most sought-after pros of using SwiftUI are its state management and avoidance of the hustle to give constraints for the views on your screen. Yeah, these are cool benefits to have as an iOS Developer, but who cares?

No one cares. The reason is that SwiftUI has a long way to mature, and it still has dependencies on UIKit, so it is wise to learn UIKit first and shift to SwiftUI when the market abandons UIKit. If you’re looking for iOS Developer positions at older or larger companies, you can see their stack is UIKit (if not Objective C).

Get your rulers, we are about to measure the distance of the iPhone 13 Pro Max

In a video about the challenges in learning iOS Development, the one thing that has been repeatedly pointed out by iOS Devs is the AutoLayout issue everybody faces in designing a View Controller in a storyboard to make it look fine on every iPhone version, despite screen sizes. Trust me, this is still a riddle for m,e and I spent the last eleven months learning iOS Development. What you would get as a solution gradually is using Views such as Stalk View, Table View, and Collection View. Here comes the reason I used the Carpenter analogy in the title of this article.

Almost every iOS App has some sort of Table inside its screen (the dining table, the living room table, the coffee table, and so on)

Press enter or click to view image in full size


Settings app on iOS 13 Pro Max simulator

When learning UIKit, you would soon realize that every app on the App Store could somehow be built by using the View Controller type Table View Controller or the View called Table View. 70–80% part of an iOS app can be built using this view. Therefore, I advise you to take time and learn the basics of creating a Table View, conforming to its delegate and data source, dividing it into sections, and populating it with cells both dynamically and statically. The next thing you know is that you can’t help but notice tables in every app you use.

Press enter or click to view image in full size


Reminders app on iOS 13 Pro Max simulator

Not to be a downer, but it is not all

Sorry to tell you this, but after learning these concepts and getting good at them, you need to explore the way we navigate through screens (view controllers) in an app, Tab Bars, how we refactor storyboards, Core Data, URLSession, and many more. I don’t mean to discourage your progress, and I know that it takes time and commitment to be good at these things, so take your time.

Paid resources to get you started in learning iOS Development

https://www.raywenderlich.com/ios/paths

https://www.udemy.com/course/ios-12-app-development-bootcamp/ https://www.letsbuildthatapp.com/