Tech Interview Questions for iOS Developers

Dice Interview Qs Icon

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.”

Comments

10 Responses to “Tech Interview Questions for iOS Developers”

November 14, 2013 at 4:15 pm, jrock said:

I’ve been on a number of iOS interviews and have never discussed anything involving Interface Buidler, xib’s or Storyboards. I’ve also never been asked about methodologies.

Reply

November 15, 2013 at 11:39 am, Outsourced Sam said:

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.

Reply

November 18, 2013 at 12:24 pm, Jaminyah said:

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.

Reply

December 05, 2013 at 10:25 pm, siva said:

Expecting more questions and answer…
Thanks for above questions and answers with clear details…

Reply

January 12, 2014 at 5:28 pm, Ian Stallings said:

CoreData is actually an object graph and it can use any database backend to achieve this, it just happens to use SQLite, they make this very clear in the documentation.

Reply

February 20, 2014 at 9:35 am, Brian Beckerle said:

Isn’t a block more of Apple’s way of implementing callback methods than a delegate? Am I misunderstanding?

Reply

August 15, 2014 at 10:40 am, Mayur Soni said:

Thanks for the detail explanation. Really helpful. Good luck

Reply

September 03, 2014 at 4:17 am, Sergey Aniskin said:

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

Reply

November 07, 2014 at 7:01 am, Sumita Banerjee said:

Please upload more questions with answers with explanationa as well as examples

Reply

December 15, 2014 at 10:52 pm, Colin Wilcox said:

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.

Reply

Post a Comment

Your email address will not be published.