The Verge reports that, as of January 2018, there are multi-billion active Apple devices in the world. With the number of iOS users growing steadily across the world, the future looks bright for iOS app developers. Apple and iOS devices continue to have a loyal customer base, helped in part by innovative new devices such as Apple TV and Apple Watch. In fact, the demand for qualified developers who can develop and maintain apps for iOS is expected to shoot through the roof owing to high adoption of iOS devices. There has never been a better time to become an iOS developer. If you are preparing to break into a career in iOS app development, look no further! We have created a list of top frequently-asked iOS interview questions that will help you ace your iOS job interview.
However, if you have already given an iOS interview, or have more questions, we encourage you to add them in the comments tab below. Our experts will answer them for you.
iOS Interview Questions
1. What is Cocoa and Cocoa Touch?
|1. Application development environments for OS X||1. Application development environments for iOS|
|2. Includes the Foundation and AppKit frameworks||2. Includes Foundation and UIKit frameworks|
|3. Used to refer any class/object which is based on the Objective-C runtime & inherits from the root class||3. Used to refer the application development using any programmatic interface|
More about it here.
2. Which JSON framework is supported by iOS?
- iOS supports SBJson framework.
- SBJson is a JSON parser and generator for Objective-C.
- It provides flexible APIs and additional control, making JSON handling easier.
3. What is the difference between atomic and nonatomic properties? Which is the default for synthesized properties?
Properties specified as atomic always return a fully initialized object. This also happens to be the default state for synthesized properties. But, if you have a property for which you know that retrieving an uninitialized value is not a risk (e.g. if all access to the property is already synchronized via other means), then setting it to nonatomic can give you better performance than atomic.
4. Differentiate ‘app ID’ from ‘bundle ID’. Explain why they are used.
An App ID is a two-part string used to identify one or more apps from a single development team. The string consists of a Team ID and a bundle ID search string, with a period (.) separating the two parts. The Team ID is supplied by Apple and is unique to a specific development team, while the bundle ID search string is supplied by the developer to match either the bundle ID of a single app or a set of bundle IDs for a group of apps.
The bundle ID defines each App and is specified in Xcode. A single Xcode project can have multiple targets and therefore output multiple apps. A common use case is an app that has both lite/free and pro/full versions or is branded multiple ways.
5. Which are the ways of achieving concurrency in iOS?
The three ways to achieve concurrency in iOS are:
- Dispatch queues
- Operation queues
6. Explain the different types of iOS Application States.
The different iOS application states are:
- Not running state: when the app has not been launched or was running but was terminated by the system.
- Inactive state: when the app is running in the foreground but is currently not receiving events. An app stays in this state briefly as it transitions to a different state. The only time it stays inactive is when the user locks the screen or the system prompts the user to respond to some event such as a phone call or SMS message.
- Active state: when the app is running in the foreground and is receiving events. This is the normal mode for foreground apps.
- Background state: when the app is in the background and executing code. Most apps enter this state briefly on their way to being suspended. However, an app that requests extra execution time can remain in this state for some time. Also, an app being launched directly into the background enters this state instead of the inactive state.
- Suspended state: A suspended app remains in memory but does not execute any code. When a low-memory condition occurs, the system may purge suspended apps without notice to make more space for the foreground app.
7. Which is the framework that is used to construct application’s user interface for iOS?
10. When would you say that an app is not in a running state?
11. When is an app said to be in active state?
12. Which are the app’s state transitions when it is launched?
15. What is SpriteKit and what is SceneKit?
SpriteKit is a framework for easy development of animated 2D objects.
SceneKit is a framework inherited from OS X that assists with 3D graphics rendering.
SpriteKit, SceneKit, and Metal are expected to power a new generation of mobile games that redefine what iOS devices’ powerful GPUs can offer.
16. What are iBeacons?
iBeacon.com defines iBeacon as Apple’s technology standard which allows Mobile Apps to listen for signals from beacons in the physical world and react accordingly. iBeacon technology allows Mobile Apps to understand their position on a micro-local scale, and deliver hyper-contextual content to users based on location. The underlying communication technology is Bluetooth Low Energy.
17. What is autorealease pool?
18. Differentiate between ‘assign’ and ‘retain’ keyword.
19. What are layer objects?
20. Outline the class hierarchy for a UIButton until NSObject.
UIButton inherits from UIControl, UIControl inherits from UIView, UIView inherits from UIResponder, UIResponder inherits from the root class NSObject.
Got a question for us? Mention them in the comment section and we will get back to you.