How to Become an iOS Developer in 2024 – For Absolute Beginners.

Hey, this is great, do you want to start a career as an iOS Developer?

Take a bow if you already made the decision.

If you’re still unsure about it maybe I can add some things to help you make a firm decision.

More than anything else this is a wonderful journey and it’s very rewarding..

First of all let me congratulate you by starting to read about it.

As many of us before jumping to desire, or to have the wants to become an iOS developer, first we absolute LOVE Apple products!

If this is not your case, there is nothing wrong with that, but I believe that you may be more open to find the bugs that will inevitable come along the way.

Being an Apple fan is easier to oversee this bugs that any platform has.

But if you are anything like me, and let me say like many of other technology users, not only geeks, because you don’t need to be a nerd to see that the iPhone is the best phone yet, or the Mac is a much better computer than a Windows based… and let me add that since the introduction of Apple Silicon this difference is now astonishing.

So ok, let’s get back to what we want to know here.

First there is a difference if you know how to code or you have developed something, at least some HTML/CSS or any other Programming Language before, because if you’re an absolute beginner in the matter, your path will be different.

I’ll focus on the latter group, the newbies, the absolute beginners, the ones who sees Apple as something bigger than them and want to be part of this ecosystem, let me tell you that you’re going to embarque in the journey of your life.

You may be thinking that I’m exaggerating, but I’m not, because this is not just wanting to be an iOS Dev but you are deciding that you will be a programmer, and this is in my opinion one of the best decisions that you can make in your life.

We say becoming an “iOS Developer”, but is not fully attached to iOS at all.

Indeed if you do your efforts to learn Swift, you’ll be able to make things, and to find jobs for that matter, for the iPhone Platform (iOS), the Apple Watch (watchOS), the iPad (iPadOS), AppleTV (tvOS), the Mac! (MacOS) and if this is not enough you’ll be able to make things for the new device Vision Pro (visionOS) and the whole new world of Space Computing!

What do you think about all this different scenarios where you can become a developer and overtime an expert on?

I think that this is absolutely amazing!

I believe that the time to become an iOS Developer, but overall a Swift Developer, had never been greater.

Off course, as everything, you’ll need to face a lot of things in this journey.

I mean you’ll face insecurities, low self-esteem, feelings of inferiority, the so called impostor syndrome and many other “problems”.

Is good for you to know this beforehand because you need to be prepared to face this challenges, and the best part is that this feelings, more or less, will never disappear.. because you always will find people extremely good at what they do and this, if you’re not careful, can diminish your own self view and augment your feelings of “I’m not good enough” that all have inside us.

The thing is to learn how to live with this and overtime understand that everybody is different, and everybody is living their life and you need as a first rule:

Never compare yourself to others, always compare how are you today from the you of yesterday.

In other words, keep the eye on the ball, the important thing is to keep improving everyday, step by step.. no matter what the other guys do or says.

As you can find in my story here in the blog, deciding to become a programmer wasn’t simple for me, because I feel so much deprived of knowledge and for the most part I was deprived of the confidence to become anything that I want it to be, specially a programmer, a developer, I never felt like I can become one because of many self limiting beliefs, don’t let this happen to you.

I will be using this space to let you know that you can learn anything that you need to learn to accomplish any goal that you set for yourself, if you are willing to work hard enough and long enough to achieve it.

So, the problem is not lacking knowledge, this is the best time in human history for your to acquire any knowledge that you want, even for free, but the problem is to lack the motivation and the enthusiasm to begin, and then to stay motivated to continue learning when things doesn’t go the way you like or when you find difficult problems along the way.

So one of the things that you must know is that this journey will change your life.

But I have to warn you, this journey is not easy, it took your entire life to become what you’re now, so in order to change the process is not easy. However I will try to put some inital steps for you to keep start digging and to keep digging into this fascinating world.

Are you ready?

I hope so, and if you are you can thank me later 😀

A Year From Now You’ll Wish You Had Started Today


Preparation.

What you will need?

I believe that after you made the decision to become a developer what is good for you is to write it down as a Goal, and also to add a Deadline after it.

Something like this:

I’m an iOS Developer by July 1st of 2024. (or the date that can make more sense to you but always use the present tense)

Write it where you can read it everyday, at least at the beginning.

This will enforce your confidence that this is possible for you and let you keep making the efforts every day.

After that Goal is written you need to make a Plan to achieve it.

A plan is simple a guide on what you’ll be doing “everyday” to move forward.

After reading this post you’ll have a pretty solid “to-do list” to follow so The Plan will allow you to know how many hours you’ll spend each day learning your new skill to meet the deadline.

Leave the deadline blank for now until you have a better understanding of all the things that you need to know.

A Journey of a thousand miles begin with a single step.


Materials

The one thing for now is the Swift Book and a place to take notes.

You will need to start reading sooner than later, and this is the Swift Book.

If you doesn’t do anything else but you start to read this book is the best way to start entering into this world.

Swift is the core thing that you must master along the way. If you know Swift you can figure out everything else or practice it later on, but one of your goals must be to have a great understanding of the Language, if not to be a Master.

Of course always is best to test what you are learning, this is not the exception, indeed in programming is a fundamental thing to test what you learn.

But the Swift Book is a wonderful reading for you to start with.

How to read it? Start from the beginning.. then move from subject to subject to have a good taste of all the things that you’ll learn in the journey.. but don’t try to understand everything right away. Don’t rush, remember that this is a journey, not a sprint. Indeed taste the whole thing out so you start to figure out the big picture, but always try to avoid forcing yourself to understand things just by reading.

Don’t rush, remember, this is a journey, not a sprint.

Open it, make a bookmark in your computer, in your phone, your tablet and in the phone of your love one also.. (just in case).


You WON’T need an Apple computer, at least not right away.

Let me tell you that in order to be a full Swift Developer you will need a Mac!

iOS Apps as well as Mac Apps, iPad and all Apple products run over Swift Programming Language and their User Interfaces are developed with SwiftUI. Back in the time this formula was Objective-C and UIKit. The two are still around. Objective-C is way less common these days and I will not encourage you to learn it, but you may need to understand UIKit sooner or later.. Anyway, is not needed at this stage.

The Mac runs Xcode and this is the IDE (Integrated Development Environment) to develop your Apps with Swift and SwiftUI, of course it’s developed by Apple.

To fully run Xcode you’ll need a Mac, and it make sense, if you want to do things for Apple you need to start making your mind about getting a Mac asap.

When you get the Mac you’ll spend all of your time on Xcode.

BUT, if you don’t have a Mac yet, you can still have a taste of the Swift Programming Language on-line.

Just by googling ‘swift compiler online’ you can pick any of the results and start throwing code at any of those online compilers.

One of the results is https://www.tutorialspoint.com/compile_swift_online.php. I found it pretty simple and straight forward, give it a try and see.

Other option is to run Swift over Linux. This is much more complex option and it requires that you first have access to a Linux machine. If you don’t have access to a linux box I will not encourage you to enter into all the hassle that represent installing a second operating system in your computer or installing an isolated Linux distro over an USB dongle, but again is too much of a hassle in my opinion and it doesn’t replace a Mac. But if you have access to a Linux box you can start playing with Swift.

Another much robust option is to access a Mac remotely.

Accessing another computer via internet is so much better these days thanks to the speeds that we manage than years back, and you can gain almost the full experience in what represent developing with Xcode.

Inside one of this remote Mac machines you can access to iPhone simulators and also inside Xcode SwiftUI come packed with preview which makes things a lot easier to develop User Interfaces.

But this last option requires an investment. Sometimes is better to invest $100 and realize that you won’t fit in the Apple world than go full blast to buy a Mac… but if you ask me and you want to be a Software Developer no matter which platform Mac is the Dev Tool of excellence.

MacStadium.com is the platform of choice for many to access a Mac remotely. I never tried it, but you can find your own.

Swift over Windows? I never tried it, you can read and find instructions on how to install it here: https://www.swift.org/install/windows/#installation-via-windows-package-manager

The ultimate advice.

Buy a Mac, a refurbished one, it doesn’t care… borrow one.. steal one (just kidding) or go to visit everyday your friend’s home that owns one to use it and try it out.. you won’t regret it.


You will need time and patience.

I said it before, this is not a race, is not a sprint, nobody is going to defeat you if you go slow, so, take a deep breath and keep reading and practicing.

Learning new stuff takes time.

Sometimes things doesn’t seem to make any sense one day, but the next day all is clear.

Sometimes nothing makes sense for many days, until it does, be patient and trust in the learning process.

If you are any anything like me I feel very stressed when things doesn’t make sense or nobody is telling me WHY things are the way they are.. but you’ll start to realize many things along the way. Indeed when things go wrong is the time when you learn the most.

Embrace the discomfort of not knowing what is going on.

A good advice is to keep track of your notes. When you see something new, don’t hesitate and make a note of it in your own words. If you can’t find any correlation with any other part, don’t worry, make that annotation also and keep going.

Another wonderful tool for me is to start a Mindmap. (https://www.mindmapping.com/mind-map)

Mindmaps are a great tool to see the big picture of things, and while you create your own Mindmaps this makes a better representation of the meanings inside your head.

I personally use Idea Sketch on my old iPad 2 (still with iOS 6, yes, in 2024 still use in it and for many things!) to make something very similar to Mindmaps.

The new Freeform from Apple is also great for this.

Give it a try.. but, one way or another, don’t stop taking notes that you can refer later on.


Start with the basics of Swift

While you have read sufficient you can start to test some of the topics that you may be more interested in but try to be focused on the basics.

How to know what the basics are?

Try to familiarize yourself with this first (from the Swift Book):

  • The basics
  • Basic Operators
  • Strings and Characters
  • Collection Types
  • Control Flow

Try to get a good grasp of this before moving on the chapters list.

When you start to find things not clear enough while reading, stop.

Write it down.

Then go to Playgrounds or your on-line code editor and make things work.

Remember not to copy and paste. Resolve today that while learning how to code you won’t be copy pasting and you promise to yourself that you’ll type out everything.

I’ll never copy/paste code while I’m learning.

Believe me, this practice alone can make a huge difference in your understanding.

After having understood, not mastered, but gained a nice understanding of those chapters continue with Functions, Closures and so on.

Remember to start making little tests to validate your understanding, never assume you fully understood something till you tested it out.


Learn the basics about Xcode.

Of course to go through this step you will need access to a real mac, physically or remotely.

Some things to start learning about Xcode.

  • How to organize files and folders (or groups)
  • Schemes and Targets
  • What is DerivedData
  • How to Archive and Distribute your app
  • How to deal with different Xcodes versions
  • Build against different Simulators
  • Basic usage of Git inside it

Understand that you’ll be living inside Xcode 98% (yes, totally arbitrary number) of your time, so start as soon as possible to have a good grasp of the overall system.


Learn about SwiftUI – Not UIKit, at least not for now.

This may be controversial, more for the old iOS gurús out there who learn the meat of iOS Developer soon after Steve Jobs announced the iPhone in 2007, but I don’t care, and you shouldn’t either.

Indeed you shouldn’t care what anybody says.

The modern way of building iOS Apps is with SwiftUI.

What is SwiftUI? Well is the declarative way of building user interfaces for Swift Apps.

Here is where you start to build what people actually see and interact with in the screens.

As you may imagine this is a crucial skill that you must master, of course, like everything else, with time.

Start to see how to structure the different elements of the UI.

How to build a button, how to build forms, how to leave spaces between the different elements and so on.

SwiftUI is very powerful and you can build very powerful UIs with it.

But, what is UIKit and why I recommend not to start learning about it?

Look, SwiftUI was announced in WWDC19. Since then all was only improving and being even more powerful in each yearly release, to the point that we can build complete Apps with it.

Before SwiftUI the way to build User Interfaces was with UIKIt.

And you can choose between using the Interface Builder or build your views programmatically.

As you can imagine there was a lot of debate about which way is better than the other but regardless of your choice UIKit is not intuitive at all and you must practice a lot just to make a simple list, aka TableView.

Nowadays with SwiftUI you just declare a List and you’re good to go, and yes, all programmatically. SwiftUI come packed with a great real time preview where you can also make changes, but the meat of the UI is written programmatically, and IMO this is great.

In many ways UIKIt its much more mature than SwiftUI and many teams out there keep using it.. but as everything, you keep attached to the “old good stuff” and is hard to make changes.

The reality is that with SwiftUI you will spend a fraction of the time to build what you want and keep improving it.

So, start with SwiftUI and start to build things sooner than later.

Then if you find a cool thing to build but it requires knowledge in UIKit go and learn it.

Always the best source of knowledge is from the creator itself.

SwiftUI → https://developer.apple.com/documentation/swiftui

UIKit → https://developer.apple.com/documentation/uikit


Learn GIT

What is GIT?

Tracking your source code changes are important part of your daily activities.

Imagine you spent all day coding and trying out things.. then for some reason the last changes are not there, or you deleted accidentally and you realize of it a few days later. Nothing can be more demoralizing than being your own problem.

To avoid this kind of things, and much more advanced scenarios, Linus Torvalds created GIT.

Get to know the basics of it to stay on top of your changes and have understanding of this topics.

  • What a repository is
  • How to manage different branches
  • How to commit your changes
  • How to PUSH – PULL – MERGE.

All this can be done inside Xcode, but sometimes Xcode is not good at it.

There is a lot of software out there to manage your GIT.

  • GitKraken
  • Tower
  • SourceTree
  • Terminal

No matter what is your preferred tool learn the basics of GIT, is not essential for iOS but to become a developer, for sure.


Conclusion

Now that you know where to start and how many things you need to start learning is when you can fill your Goal’s Deadline.

After this you will have a better Plan to follow and, depending on your own schedule, how many hours and how many days on the week you will be learning this new skill.

Remember to be patient, allow time to digest the new information that you’re putting in your head and don’t try to understand everything in the first attempt.

Many times you’ll need to re-read what you just read, and that’s ok, is like watching a movie for the 2nd time, you’ll see things in a different way, and you’ll see things that didn’t appear the first time.

Most of all keep on going, never give up, this is just the beginning!

The real fun is about to start but enjoy the journey.

Hope you find this guide useful!

Let’s connect on LinkedIn → www.linkedin.com/in/putallaz

Thanks for reading and have a great journey!! 🥸 ✈️