What skills would I need for a job as an iOS developer?

Want a job as an iOS developer? Here are some of the skills you’ll need – or, rather, what you’ll need to be able to do with your skills – to land a job as an iOS developer. These are all specific to iOS and the Cocoa Touch frameworks – in addition to these, you’ll also need to know object-oriented principles, how to use source control, and your language of choice for doing iOS: Swift or Objective-C. I gave a high-level overview of this in How to become a professional iOS developer – this article is meant to expand on the Learn iOS section of that one.

So in order to get a job as an iOS developer, you should be able to create an iOS app from scratch that:

  • has a UI complete with images, labels, text views, buttons, pickers, and other controls – defined programmatically in code, in xibs, or in Storyboards (bonus points for knowing all three)
  • ensures views are where they should be on various screen sizes and orientations using Auto Layout
  • handles user interaction via buttons, switches, sliders, pickers, table views, and other controls
  • has multiple navigation types with tab bar controllers, navigation controllers, and page view controllers – and combinations of them
  • shows a modal view the user can dismiss
  • shows alerts and action sheets, and handles input from them
  • accepts user input from text views
  • dismisses the keyboard programmatically when appropriate
  • has a scroll view that scrolls smoothly, a scroll view that scrolls one page at a time, and a combination of the two. For example, you have a scroll view that scrolls horizontally one page at a time but scrolls smoothly vertically.
  • makes asynchronous network requests to send and receive data from a REST API
  • uses custom model objects that represent the base data types in your app
  • parses JSON and deserializes it into model objects
  • serializes model objects into JSON to send to a REST API
  • has a table view that shows a list of data from a network request
  • shows a web page in a web view
  • stores data locally in NSUserDefaults
  • concatenates, calculates, and manipulates strings, numbers, and dates to display them appropriately (hat tip to Adam for this point)

You should be able to talk about:

  • the Human Interface Guidelines and what makes a good UI
  • what controls are at your disposal, and when it makes sense to use them
  • using the debugger in Xcode to track down issues
  • the UIViewController lifecycle – the various methods that are called, when they’re called, and what you use them for
  • the application lifecycle, the methods that get called and when they get called, and what you’d do in them
  • the concept of delegation, a few examples of iOS APIs that use it – and you should be able to create and use your own delegate API

There are other frameworks and technologies you could learn, but don’t waste your time – knowing these things will be enough for you to do well in an interview for an entry level job as an iOS developer. Additionally, you should be able to learn quickly – so you can pick up those other frameworks and technologies as needed on the job.

And remember that these skills are platform-specific – you also need to know about your language of choice (Swift or Objective-C) as well as basic object-oriented principles and how to use source control.

Land your first job as an iOS developer by learning the skills you need with the free 5-Part Guide to Getting Started with Swift. You’ll learn how to make network requests to a REST API, parse JSON, build a table view, and build a foundation in the skills you need to become an iOS developer.