Preparing for a technical iOS job interview
with over 200 questions & answers
About this book
Having been a freelance iOS developer for over 10 years, I participated in quite a few hiring interviews for various projects and have also been in a position of leading the technical interviews myself.
With this book, I'd like to give you a guide for technical iOS questions you might be asked in such an interview for an iOS hiring position.
This book can also be used to get an overview on different iOS development topics. It can be an inspiration for deepening and expanding your knowledge on your iOS journey.
It provides over 200 technical questions & answers on various iOS topics, covering Swift & Objective-C, SwiftUI & UIKit, Combine, HTTP Networking, Core Data, Concurrency with async/await, Security, Automated Testing and more.
Content
Each chapter starts with a questions overview that allows you to check your knowledge without seeing the answers. All questions are numerated so you can quickly find the answer if needed. The following topics are covered:
Swift
Being the main programming language for the iOS platform, a deep knowledge in Swift is expected from an iOS developer. This chapter provides questions and answers on Swift and general programming language concepts.
Objective-C
Objective-C is becoming more and more obsolete after Swift was released in 2014. However, with existing apps written in Objective-C still out there, knowledge on Objective-C may be required for an iOS position. This chapter provides questions and answers on Objective-C basics and the interoperability between Swift and Objective-C.
Xcode
Being the main iOS development tool, a confident usage of Xcode is expected from an iOS developer. This chapter provides questions and answers on working and debugging with Xcode.
SwiftUI
Since 2019, SwiftUI is Apple's main framework for building user interfaces for iOS. This chapter provides questions and answers on the main aspects of SwiftUI.
UIKit
With SwiftUI slowly pushing UIKit into the background, UIKit is still part of many existing iOS applications. A deep knowledge of UIKit may be required for an iOS position. This chapter provides questions and answers around key aspects of UIKit.
Combine
With the release of Combine at WWDC 2019, Apple introduced a native way to write functional reactive code. This chapter provides questions and answers on Combine and on functional reactive programming concepts in general.
Server Communication
Server communication is part of almost every iOS application. This chapter provides questions and answers on general computer networking concepts and on specific iOS networking topics.
Concurrency
Apple introduced Swift's async/await syntax during WWDC21, allowing us to write asynchronous code in a shorter and safer way. This chapter focuses on this concurrency model with async/await. It also provides questions and answers on more low-level technologies like Grand Central Dispatch and Operations. Since they were used in iOS applications before async/await, knowledge around these technologies may be required for an iOS position.
Persisting Data
Persisting pieces of data is required in many applications. For different scenarios, Apple offers different ways to store data. This chapter contains questions and answers on the iOS File System, UserDefaults, Keychain and the Core Data framework.
Security
Many applications need to manage some kind of sensitive user data. To ensure a high level of security, Apple provides different technologies to be used by developers. This chapter provides questions and answers on specific security-related iOS technologies such as keychain or shared web credentials, as well as general cryptography concepts.
Automated Testing
Testing is an important part in every software development process. Apple offers tools to write unit, UI and performance tests for iOS applications. This chapter provides questions and answers on general testing concepts and specific iOS testing tools.