Tech Interview Questions for iOS Developers

While some managers ask code-oriented questions to assess a developer’s proficiency with iOS, others like to explore their knowledge of advanced algorithms first. So how do you know which type of test you’ll receive?

Interview Qs“Ask if you’ll be taking a computer-based exam,” suggests Eric Schweitzer, guide of the Dice iOS Talent Community. “If so, you should refresh your knowledge of algorithms and be ready to write some code.”

To help you prepare, we asked Schweitzer to share a few code-oriented interview questions for iOS developers, and the types of answers he’s looking for when he’s on the other side of the table.

What is the MVC software architecture pattern?

  • What Most People Say: MVC is the pattern all well-written applications use.
  • What You Should Say: The Model-View-Controller pattern separates the internal representation of data from its display. The model is the internal representation of the data, while the view is how the data is presented to the user. The controller mediates between the two and also handles user interaction.
  • Why You Should Say It: “Candidates sound evasive when they don’t explain what MVC is or how it’s used,” says Schweitzer. “An incomplete answer makes it seem like you don’t understand the purpose of MVC software architecture patterns.”

What is a delegate?

  • What Most People Say: Delegates are used in UITableView to get the data for the table.
  • What You Should Say: Delegates are Apple’s way of implementing call back methods. They allow a class to send information to a different class.
  • Why You Should Say It: “Again, a short answer doesn’t inspire confidence,” Schweitzer explains. “You need to show that you understand the purpose of delegates and how they fit into the architecture of the application without pontificating. The key is to supply just enough information to demonstrate your understanding of a concept or function, then get off the stage.”

What is the difference between a delegate and an NSNotification?

  • What Most People Say: They are different ways of accomplishing the same thing. They are completely different and are used in different ways.
  • What You Should Say: Delegates and NSNotifications can be used to accomplish nearly the same functionality. However, delegates are one-to-one while NSNotifications are one-to-many.
  • Why You Should Say It: Developers who don’t know the answer to a technical question often resort to double speak, which never works. Instead, demonstrate your experience with delegates and NSNotifications by explaining how they’re used and the advantages and disadvantages of each.

What is a block and how is it used?

  • What Most People Say: A block is a function.
  • What You Should Say: A block is a chunk of code that can be passed to a method. The code is executed based on what happens in the method. Apple is moving many of the iOS APIs toward blocks.
  • Why You Should Say It: First and foremost, “a block is not a function,” observes Schweitzer. “The second answer is not only accurate, it shows that you’re following the trends, which is critical for a developer.”

What’s the difference between a xib and a storyboard?

  • What Most People Say: They’re the same thing.
  • What You Should Say: Both are used in Xcode to layout screens (view controllers). A xib defines a single view controller screen, while a storyboard shows many view controllers and also shows the relationship between them. Apple is encouraging developers to use storyboards for all their applications.
  • Why You Should Say It: “The interviewer isn’t trying to trick you,” says Schweitzer. “Storyboards and xib files are similar but they’re not exactly the same. He wants you to differentiate the two and explain their advantages and disadvantages.”

What is CoreData?

  • What Most People Say: CoreData is Apple’s way of storing data on the disk.
  • What You Should Say: CoreData is an SQLite database API. By setting up CoreData properly, an application can store and retrieve the internal state of a class rapidly.
  • Why You Should Say It: Incorporating details into your answers demonstrates your understanding of the concept and inspires confidence.

Describe Waterfall and Agile methodologies.

  • What Most People Say: Waterfall is the older methodology that is not used in modern software development.
  • What You Should Say: Books have been written about this. Briefly, in Waterfall the requirements are defined without much or any interaction with the software development team. In Agile, there is continuous refining of requirements as development proceeds due to constant interaction between those defining the requirements and the people doing the development.
  • Why You Should Say It: Waterfall is older but it’s still used and the interviewer didn’t ask you to rate the two, Schweitzer says. You should explain the differences between the two methodologies, then invite an in-depth conversation by explaining when each is most effective and describing your experience with each one.

Your goal is to turn the interview into a conversation and build rapport. Says Schweitzer: “The manager is more inclined to hire you when he thinks: Hey, I can talk to this guy.”

12 Responses to “Tech Interview Questions for iOS Developers”

  1. Outsourced Sam

    These are actually pretty good generally questions. It’s better than those ones where the companies has a very targeted set in the SDK that the levarage and ask ridiculous questions about them.

    IMHO, it’s not that difficult to learn new things within the SDK.

  2. In my iOS interview I was asked questions that piggy backed on a small application that I was asked to develop before the face-to-face. Moral here, be prepared to discuss various solutions especially with a much larger dataset.

    Also, the first three questions in this article falls into the category of software design patterns. It is important to fully understand the Gang of Four design patterns that are associated with MVC, Delegates and NSNotification.

  3. Sergey Aniskin

    Some of “What You Should Say” are unprofessional. For example block – is unnamed function implemented as closure. CoreData – is ORM, it supports different data sources, unfortunately at the moment Apple implemented only SQLite wrapper, so CoreData not limited to SQL database only, etc

  4. Colin Wilcox

    I spend an hour asking technical mobile development questions. These questions are pretty trivial to be honest and would be asked at the first stage telephone interview. It would be assumed any candidate who passes this will give proper answers to all these questions and more to proceed. During the two stage interview they should expect to be grilled by a panel and answer around 40 questions correctly to be considered for a developer position, technical, design issues algorithms, and pretty much questions on anything they have written on the CV – not just their current role.

  5. Sagar D

    CoreData is NOT an SQLite database API. To be very specific, Core Data is an object graph and persistence framework. And its is not restricted to SQLite, there are other formats of persistent stores. An answer mentioning “SQLite database API” would not please the interviewer.