So you want to take a piece of the mobile pie and become a professional iOS developer, the hottest tech thing around right now? Good decision.
Mobile app development is hot, indisputably, and probably will be for a few incoming years. There are hundreds of unfulfilled iOS developer job positions, wherever you are located.
Companies are looking for every levels of programmers — interns, juniors, mids, seniors, experts.
In this article I will highlight some of the core fundamental things you should do in order to become a professional iOS developer.
Basic CS Knowledge
Being a computer science PhD is NOT a requirement for getting into mobile application development. This falls into the “definitely helps” category. However, a grasp of at least the basic data structures and algorithms will definitely prevent the novice iOS developer from coding themselves into a corner.
So, for the novice programmer, taking the bestselling mobile app development course on Udemy is a great place to get started; they’re easy to follow and actually pretty interesting to use for learning iOS app development.
Swift or Objective-C?
As a buddy professional iOS developer you should be able to write in at least one of these languages without having to look up syntax very often. API is a different story, especially in iOS; frameworks are updated yearly and methods are frequently deprecated.
It’s not unusual to work with the Apple Documentation up in a Safari tab most of the time.
There’s just too damn much to try to memorize. In order to become a professional iOS developer, just like an Android Developer, you need to get yourself to a point where you can write classes, structs, loops, functions (class and instance), assign variables and evaluate expressions without help.
Right now it’s still acceptable to be hired as a mobile app developer while only knowing Objective-C. Swift is pretty new and unless you’re applying to work for a company that has a lot of project turnover, you’ll most likely be writing in Objective-C anyway.
That said, there are plenty of companies taking the plunge to Swift and it will not be too hard to find an iOS developer job if it’s the only language you know.
The important thing is to be fairly proficient in whatever technology you choose, and at least get familiar enough with the other skills so that you can read the code.
Frameworks and API
As an entry level mobile app developer its NOT necessary that you memorize all of the iOS API’s, but you should have a good idea of where to go.
- UIKit (UITableView, UIButton, UINavigationController, GestureRecognizers)
- Interface Builder (Storyboards, Segues, and the odd .xib)
- Foundation Types (NSArray, NSDictionary, NSString) and their Swift counterparts (Array, Dictionary and String), HTTP API (NSURLSession, Basic REST API concepts, JSON Parsing with NSJSONSerialization)
- Grand Central Dispatch (GCD, NSOperationQueue)
- Persistence (NSCoding, NSUserDefaults, CoreData)
- Memory Management (what Retain Cycles are and ARC fundamentals)
Patterns are important; they make development easier and they make your code cleaner.
Make sure you understand these basic patterns, they’re used A LOT in the iOS Frameworks and it is not likely that you’ll be able to do much without knowing them (there are many more, but you can learn those as you go).
- Delegation (This is sort of the workhorse of most iOS API’s, you should DEFINITELY understand this.)
- Model View Controller (It’s an important pattern that can help improve your code if you take the time to implement it properly. Also, it’s pretty much guaranteed to be on any iOS job interviewer’s question list.)
- Subclassing (Almost all user interface code will be a subclass of something.)
- Singleton (This one can definitely be abused… use sparingly.)
Familiarity with the Environment
This might seem obvious, but if you don’t have a Mac, get one!
If you don’t have an iOS device, get one!
It’s going to be really hard to develop for a device you haven’t used or are not familiar with. Likewise, it’s gonna be hard to code without a Mac to code on.
It is quite possible to get by with the lower end devices at the start though.
Usually UX and UI is taken care of by a designer, but if you want to become a professional iOS developer you should understand the Apple Human Interface Guidelines.
You should probably know the difference between mockups and wireframes and how to use both in your development process.
You should be familiar with a few of the common development tools.
- Xcode (Of course.)
- Git Source Control. Some companies might use Subversion or Mercurial, but git should be enough to get you in a door somewhere. Get started by creating a GitHub account.
- JIRA or Bugzilla. Most likely JIRA. Again, you don’t need to be a pro with this, but you should probably at least play with it enough to not be scared the first time you see it.
- CocoaPods. This is a tool you’ll use to manage dependencies and third-party code. I haven’t heard of a company that isn’t using this.
Having an opinion about iOS or Swift, or even a specific API is a great way for interviewers to understand how deep your knowledge about a topic goes.
It also allows you to demonstrate your passion. If you’re having an interview and you are asked, “So, what do you think of Swift?” saying, “It’s alright, I guess.” is not such an interesting answer.
You should tell them what you think of optionals and how you like using a specific feature.
There aren’t many wrong answers here; the important thing is to have something a little interesting or intuitive to say.
Actions speak louder than words. If you really want to become a professional iOS developer and finally nail that interview, put together a couple of simple apps, or even better, launch them on the AppStore.
Showing an ability to complete a project on your own speaks volumes. I cannot recommend this enough.
GitHub is nice too, but if you go this route, try to make your code easy for the interviewers to compile if they want to test it out.
I have written another article on how to build a portfolio of software projects that will help you get noticed.
If you need more iOS User Experience design tips check my other post on iOS Design Themes concepts for app designers as published by Apple Inc.
The most important thing to keep in mind is to JUST DO IT!
Right now professional iOS developers are in high demand and if you can get yourself to a decent skill level, you won’t be without work for a while. It’s a rewarding job that allows you to practice both engineering skills and creativity.
Have you already started preparing yourself to become a professional iOS developer?
What has been your experience and what tools do you use?
Please share your thoughts in the comments below.