If you’re wondering how you can become a professional iOS developer, here’s what I’d recommend you do, in this order. I speak from (a) my professional experience in 5 years as an iOS consultant and 8 years as a software developer and (b) as a hiring manager – I’ve hired several iOS developers over the last 3 years to handle overflow work that I’m too busy to do. These are the things I look for when hiring an iOS developer. The order here is important – each subsequent step builds on the previous – and in some cases, the earlier ones are a prerequisite to later ones (as in absolutely essential).
1. Learn software craftsmanship
There are lots of terms to describe the way software is built. I’m choosing software craftsmanship, but the term is irrelevant. You should know how to build software well – how to structure it well, how to test, how to debug, and how to use source control, at a bare minimum. If you don’t feel comfortable with these practices yet, you should learn them now, before moving on. I’d recommend reading The Pragmatic Programmer to get started.
2. Learn how to use source control
Source control is so important that I’m going to mention it twice. Yes, it’s part of software craftsmanship, and yes, it’s important enough to get its own section. If you’re going to be working with another iOS developer (and even if you’re not), you absolutely need to know how to use source control. It gives you the ability to make checkpoints, go back in time to a previous version of your code base, and explain why you’re making a given change. It’s likely that you’ll be using git, as so many companies are nowadays, but you can check the job description to see what they use. For git, you should know:
- how to initialize a repo
- how to clone a repo
- how to commit and push to a remote
- how to pull and merge changes from a remote
- how to check the status of your local repo
- how (and when) to create and merge branches
- how to create tags (you should do this every time you submit to the App Store – at a minimum)
These are the basics – there’s much more you can do with git, and you can (and should) learn more as you go. If you don’t already know git, you can start learning it at try.github.io.
3. Learn Swift
Perhaps this is a given, but if you want to do professional iOS development, you need to know Swift (knowing Objective-C as well would be even better). For a junior level position, you should at least know the syntax and a good deal of the Foundation framework (objects, collections, data types, networking, JSON). In addition to this, you need to know basic object-oriented concepts, like what an object is, what a class is, and how to write methods.
4. Learn iOS
Again, this is probably a given. If you want to be a professional iOS developer, you have to know iOS. This means you should have a good grasp of how to:
- build views (with Storyboards, xibs, or programmatically – bonus points for knowing all three)
- handle user interaction via various controls (buttons, switches, sliders, etc.)
- display data in a table view
- show alerts
- handle navigation and transition between views
- display images, labels, and text views
- integrate with REST APIs and parse JSON
You should also know about the view controller lifecycle and the application lifecycle.
I’ve expanded on this section in What skills would I need for a job as an iOS developer?, which focuses solely on what you should be able to do with iOS to land a job. And you can learn most of these skills with the resources listed here, so check them out, pick one, and get started.
5. Build an app
If you’ve actually built an app, you’ve proven that you know how to build an app. And if you know how to build an app, you’re much more valuable to a potential employer than someone who says they know Objective-C and iOS but hasn’t actually built anything. Prove you know what you’re doing by building a real app.
And since you should know source control by this point, you should use it while you build your own app. You’ll have a much better idea of what files should be ignored and which ones shouldn’t if you’ve actually used source control on an iOS project.
6. (Optional, but highly recommended) Ship your app to the App Store
I’m making this optional because for some employers, you may not need to submit an app to Apple – there may be a senior dev on the team who’s handling it or they may only be distributing the app internally. But since you may need to publish your future employer’s app to the App Store, you should know how the process works. And there’s no better way to learn than by doing it yourself. Even if there’s a senior developer on the team who’s responsible for submitting the app to Apple, there may be times when you need to login to iTunes Connect to take care of updating metadata, releasing an update, or a host of other things. Do this, and you’ll prove to your future employer that you can take an idea to the App Store.
7. Apply for jobs and show what you can do for them
If you want to do iOS professionally, you’ll need to apply for a job at some point. But before you do, think about this: why would a company want to hire you? Why do companies ever hire people, in general?
Guess what? They want to make money from you. They want to sell your work and bring in more money than they spend on you. Or, if they’re looking to cut costs, they want to save more money than they spend on you. Either way, they want to increase their profits by hiring you.
So your job is to convince your prospective client/employer that:
- you can get work done in a timely manner
- you can get work done within their budget
- you can help them reach their business goals (i.e. make more money)
Most companies won’t even ask you about this stuff. They might do a technical interview and a personality interview to see if you’re a good fit and can help them. But if you understand that they want to make money from your work and you can clearly communicate how you’ll be able to do that, you’re much more likely to get hired. Showing them your iOS work is one way you can do this – you’re proving to them that you can get things done. And on top of that, if you already have a relationship with someone at the comany and you can get a referred or hired by the person you know, it’s a whole lot easier to get the job. So be sure to focus on building relationships right now, as you continue to develop your skills and search for jobs.
Start learning Swift today with the 5-Part Guide to Getting Started with Swift.