Think like a Carpenter, act like an iOS Developer

Yohannes Haile
Nerd For Tech
Published in
4 min readSep 17, 2022

Before everything, I really want to apologize for not acting as I promised on LinkedIn. What did I promise you guys? ‘If I wrote an article about iOS Development anytime, the first one would be titled ‘Table View here, Table View there’.’ As you can see, I have come up with another cool title for my first blog post on iOS Development.

This article would 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 became 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 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 nonterminating 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 lot 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 stalk 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 me 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)

Settings app on iOS 13 Pro Max simulator

When learning UIKit, you would soon realize that every app on 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.

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 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/

--

--