- Core OS ( or Application) Layer: Core OS Layer sits directly on top of the device hardware and is the bottom layer of the iPhone OS stack. In addition to basic operating system services, such as memory management, handling of file systems, and threads, this layer provides low-level networking, access to external accessories, etc.
- Service Layer: Its purpose is to design the services that upper layers or users demand. Among its other essential features are block objects, Grand Central Dispatch, in-app purchases, and iCloud storage. The service layer has been strengthened by the addition of ARC Automatic Reference Counting.
- Media Layer: It handles media like video, audio, graphics, etc. The media layer will allow us to use all graphics, video, and audio technology of the system.
- Cocoa Touch Layer: It is also known as the application layer. This is the place where frameworks are created when applications are built. In addition, it functions as the interface for iOS users to work with the operating system. This includes touch and motion capabilities.
iOS Interview Questions and Answers
Freshers / Beginner level questions & answers
Ques 1. What is iOS?
iOS stands for "iPhone Operating System".
It is the operating system for Apple devices, and it is considered the second most popular mobile operating system globally after Android.
This operating system powers many of Apple's products including the iPhone, iPad, and iPod. iOS is widely praised for its intuitive and user-friendly interface.
Ques 2. What are the features of the iOS Platform?
- The iPhone offers multitasking capabilities. On an iOS device, you can easily switch between apps using the multitasking feature or a multi-finger gesture.
- iOS helps you easily integrate social network interactions with your app by displaying an activity stream and sharing content.
- Apple's iCloud service allows users to store data on the Internet. It offers a high level of encryption and a backup option to ensure the user does not lose data.
- Apple's in-app purchases are available on all platforms, offering users additional services and materials including digital items (iOS, iPad, macOS), subscriptions, and premium content.
- You can see all of your app alerts in the Notification Center in iOS. However, the notification settings can be modified.
- iOS is a closed system. The source code of Apple's apps isn't available for developers, and iPhone and iPad owners can't modify the code on their devices. This makes iOS-powered devices harder to hack.
Ques 3. Explain the Architecture of iOS.
iOS operates in a Layered structure.
iOS Architecture is comprised of four layers, each of which offers a programming framework for creating applications that operate on top of the hardware. Communication will be enhanced by the layers between the Application Layer and the Hardware Layer. A lower-level layer provides the services that all applications require, while an upper-level layer (or high-level layer) provides graphics and interface-related services.
Ques 4. What do you mean by property in iOS?
Properties are basically values that are associated with a class, struct, or enum. They can be thought of as "sub-variables," i.e., parts of another object.
Example:
struct Building {
var name: String = ""
}
var apartment = Building()
apartment.name = "Prestige"
In the above code, we created a structure called Building. One of its properties is called name, a String whose initial value is empty.
Ques 5. Define the classification of Properties in iOS.
Stored Properties: This type of property can be used to store constant or variable values as instances and is usually provided by classes and structures.
class Programmer {
var progName: String
let progLanguage: String
var totalExperience = 0
var secondLanguage: String?
}
Computed properties: These properties can be used to calculate values instead of storing them and are usually provided by classes, enumerations, and structures.
struct Angle {
var degrees: Double = 0
var rads: Double {
get {
return degrees * .pi / 180
}
set(newRads) {
degrees = newRads * 180 / .pi
}
}
}
Ques 6. Tell the difference between atomic and nonatomic properties in iOS.
Atomic Property: It is the default property and ensures a valid value will be returned from the getter or set by the setter. This ensures that only one thread can access the getter/setter of a given property at a time and that all other threads must wait until the first thread releases the getter/setter. Despite being thread-safe, it is not fast, since it ensures that the process is completely completed.
Non-Atomic Property: With non-atomic properties, multiple threads can access the getter/setter method of a given property at the same time, so the potential for inconsistency between values exists. They come with enhanced access, but no guarantee of the return value.
Ques 7. What are different types of iOS Application States?
Ques 8. What is an iOS developer and what are his responsibilities?
Ques 9. Tell the differences between Android and iOS.
Android: It is the mobile operating system for Android devices offered by Google LLC (limited liability company) and is focused on touchscreen mobile devices like smartphones and tablets. Several programming languages were used in its development, including C, Java, C++, and others.
iOS: It is the operating system for Apple devices offered by Apple incorporation and it is considered the second most popular mobile operating system globally after Android. It is primarily designed for Apple mobile devices like the iPhone, iPod Touch, etc. Several programming languages were used in its development, including Objective-C, Swift, C++, and others.
For more differences, please check here.
Ques 10. What are the programming languages used for iOS development?
Programming languages used for iOS development are:
- HTML5
- .NET
- C
- Swift
- Javascript
- Objective-C
Ques 11. Explain the object.
Objects are mainly the variables that are of class types. It can be a function, method, data structure, or variable.
Ques 12. Which framework is used to construct the application’s user interface?
UIKIT framework. It renders drawing models, windows, event handling, and views.
Ques 13. When is the category used?
It is used to add a set of related methods and to add additional methods in the Cocoa framework.
Ques 14. What is Operator Overloading?
The process of adding new operators and changing existing ones to do various things is known as operator overloading.
+, *, and / symbols are known as operators.
Ques 15. What are UI Elements in iOS?
The visual elements that we can see in our applications are known as UI elements. Some of these components, such as buttons and text fields, respond to user interactions, while others, such as images and labels, provide information.
Ques 16. What is Objective-C?
Objective-C is the primary programming language for writing applications for OS X and iOS. It’s an object-oriented programming language with a dynamic runtime that’s a superset of the C programming language. Objective-C takes C’s syntax, primitive types, and flow control statements and adds class and process definition syntax.
Ques 17. List class hierarchy of a UIButton until NSObject.
NSObject -> UIResponder -> UIView -> UIControl -> UIButton.
Ques 18. What is MVC? Tell about its implementation in iOS.
MVC (Model View Controller) is a design pattern that defines how logic will be separated when the user interface is implemented. In iOS, UIView is the base class provided by Apple for all views, and UIViewController is provided to support the Controller, which listens to events in a View and updates it when data changes.
Intermediate / 1 to 5 years experienced level questions & answers
Ques 19. What are the methods to achieve concurrency in iOS?
The methods to achieve concurrency are:
- Dispatch queues
- Threads
- Operation Queues
Ques 20. Define Cocoa/Cocoa touch.
It is used for building software codes to run on iOS for the iPad and iPhone. Cocoa Touch is written in the objective-C language and has a different set of graphical control elements to Cocoa.
Ques 21. What is iBeacon?
iBeacon enables mobile apps to listen to signals from beacons in the physical world and respond accordingly. It comprises two parts: a broadcaster and a receiver.
Ques 22. What is Method Swizzling?
The process of changing the implementation of an existing domain, Method Swizzling, enables you to write that code that can be executed before or after the original method.
Ques 23. What is the difference between Viewdidload and Viewdidappear?
Viewdidload:
- It is called when it is loaded into memory.
- Data can be loaded in Viewdidload if it is fairly static and likely to change.
Viewdidappear:
- It is called when the view is visible and presented on the device.
- You can perform any layout functions or draw in the UI.
Ques 24. Which JSON framework is supported by iOS (iPhone OS)?
- SBJson framework is supported by iOS. It is a JSON parser and generator for Objective-C (Objective-C is the primary programming language we use when writing software for OS X and iOS. It is a superset of the C programming language and provides object-oriented capabilities and a dynamic runtime).
- SBJson provides flexible APIs and additional control that makes JSON handling easy.
Ques 25. What is the difference between Synchronous & Asynchronous tasks?
- Synchronous can also be defined as In order. When you perform the synchronous operation, all that follows must wait for the operation to complete before proceeding.
- In contrast, “asynchronous” can also be defined as “out of order.” When you do something asynchronously, you can run the following code right away, and the asynchronous process will happen someday. It could be run on a separate thread from the rest of the code. It could easily be rescheduled on the same thread at a later date and you can notify you when it is done.
Ques 26. What are the different ways to specify the layout of elements in UIView?
Here are a few common ways to specify the layout of elements in UIView:
- Using InterfaceBuilder, we can add a XIB file to our project, layout elements within it, and then load XIB in our application code (either automatically, based on naming conventions, or manually). Also, using InterfaceBuilder, we can create a storyboard for our application.
- We can write our own code to use NSLayoutConstraints and have elements in a view arranged by Auto Layout.
- We can create CGRects describing the exact coordinates for each element and pass them to UIView’s (id)initWithFrame:(CGRect)frame method.
Ques 27. Explain a singleton class.
When only one instance of a class is created in the application, that class is called a singleton class.
Ques 28. Differentiate between a frame and a bound.
A UIView’s bounds are a rectangle with a size (width, height) and position (x,y) relative to its own coordinate system (0,0).
A UIView’s frame is a rectangle with a scale (width, height) and position (x,y) relative to the superview it is located within.
Ques 29. How to Prioritize Usability in Design?
To prioritize usability, the design process has broken down into 4 steps:
- Consider the user’s perspective when designing the user experience.
- Users, not demographics, are what you should focus on.
- Consider all of the scenarios in which an app might be useful when promoting it.
- Even after the app has been released, continue to improve its functionality.
Ques 30. What is meant by Enumerations or Enum?
A class type containing a group of related items under the same umbrella, but it is impossible to create an instance of it.
Ques 31. What is the lazy property in swift?
When the property is called for the first time, an initial value of the lazy stored properties is calculated. In many situations, lazy properties come handy to developers.
Ques 32. What is the difference between 'bundle ID' and 'app ID'?
The bundle ID is specified in Xcode, and it defines each App. A single project can have multiple targets and can output multiple apps. Use: it is branded multiple ways and has both free/lite and full/pro versions.
App ID is used to identify one or more apps from a single development team. It is a two-part string with a period(.) separating Team ID and bundle IF search string. The bundle ID search string is supplied by the developer, while Apple supplies the Team ID.
Ques 33. When an app is launched, what are its state transitions like?
Before launch, an app is not said to be running. After a brief transition through the inactive state, it moves to the background or the active state when it is launched.
Ques 34. What are the essential certificates for issuing and developing apps, either Android or iOS?
The certificate types are:
- Development Certificate
- Distribution Certificate
- Development and Distributing Certificates
Ques 35. What is ‘assign’ in iOS?
In iOS, ‘assign’ is used to create an orientation from one object to the other without raising the retain count of the source object.
Ques 36. Why is 'reuseIdentifier' used in iOS?
The ‘reuseIdentifier’ is used to group all the similar rows from UITableView.
Ques 37. How can you reduce the size of the App?
The three different methods to reduce app size are:
- Bit code
- On-demand Resource
- App Slicing
Ques 38. What is meant by the ‘defer’ keyword?
The 'defer' keyword provides a block of code executed in cases when execution leaves the current scope.
Experienced / Expert level questions & answers
Ques 39. What does KVO stand for?
KVO means key-value observing, which enables a controller to observe changes to property value.
Ques 40. Which is the application thread from where UIKit classes should be used?
Unless it’s stated, use UIKit classes only from your application’s main thread or main dispatch queue. This restriction applies in particular to classes derived from UIResponder or that require modifying the user interface of your app in some way.
Ques 41. What is TVMLKit?
TVMLKit serves as a bridge between TVML, JavaScript, and your native tvOS software. You can test TVMLKit JS and TVML files from inside your tvOS app using the TVMLKit framework. The JavaScript environment can be used to build TVML objects, styles, views, and view controllers.
Ques 42. What is Swift?
Swift is a modern programming language created by Apple for iOS, OS X, watchOS, and tvOS apps that combines the best of C and Objective-C, but without the C compatibility issues. Swift follows secure programming patterns while also incorporating modern features to make programming simpler, more versatile, and enjoyable. Swift is welcoming to novice programmers and feels familiar with Objective-C developers.
Ques 43. What is an NSError in Swift?
The NSError class is a Cocoa class. The knowledge about an error condition is encapsulated in an extendable, object-oriented manner by an NSError object. It includes a predefined error domain, a domain-specific error code, and a user details dictionary with application-specific data.
Ques 44. What is the difference between KVC and KVO?
- KVC (Key-Value Coding) is a method for accessing an object’s properties using strings at runtime rather than needing to know the property names statically at development time.
- KVO (Key-Value Observing) allows a controller or class to monitor changes in a property value. In KVO, an object may request to be informed of any adjustments to a particular property, and the observer is automatically notified if that property’s value changes.
Ques 45. What is the difference between retain and assign?
Retain creates a reference from one object to another and increases the retain count of the source object.
Assign creates a reference from one object to another without increasing the source’s retain count.
Ques 46. What is Dynamic Dispatch?
At runtime, Dynamic Dispatch determines which implementation of a polymorphic procedure, such as a method or a function, to call. This means that when we want to call our methods, such as object methods, we must use this syntax. Swift, on the other hand, does not use dynamic dispatch by default.
Ques 47. What is GCD?
The GCD stands for Grand Central Dispatch. It is a low-level API that allows you to manage multiple concurrent operations. It will assist you in increasing the responsiveness of your app by deferring computationally intensive tasks to the context. It’s a simpler concurrency model than locks and threads to deal with.
Ques 48. What are the advantages of the Realm framework?
- To handle all of the work, only a small amount of code is needed.
- Available in both Object C and Swift.
- SQLite and Core Data have slower performance.
- Database files can be shared easily between iOS and Android devices.
- There is no fee, no charge.
- There is no limit to the data amount that can be stored.
- Regardless of huge data sets or massive storage, consistent speed and consistency
Ques 49. What is SpriteKit and what is SceneKit?
SpriteKit is a platform for creating animated 2D objects quickly and easily.
SceneKit is a platform for 3D graphics rendering that was inherited from OS X.
SpriteKit, SceneKit, and Metal are expected to boost a new generation of mobile games that push the boundaries of what the powerful GPUs in iOS devices can do.
Ques 50. What are the three significant benefits of guard statement?
The benefits are:
- There are no nested if let statements
- An early exit out of the function using return or using break
- Guard statement safely unwrap optionals.
Ques 51. What is the use of application:willFinishLaunchingWithOptions and application:didFinishLaunchingWithOptions?
Both of these methods are present in AppDelegate.swift file and are used to add functionality to the App when the App is going to be launched.
Ques 52. What is a Responder chain?
A ResponderChain is a hierarchy of objects that have the chance of responding to the received events.
Most helpful rated by users:
- What does KVO stand for?
- Which is the application thread from where UIKit classes should be used?
- What is iOS?
Related differences
Related interview subjects
Mobile Computing interview questions and answers - Total 20 questions |
Xamarin interview questions and answers - Total 31 questions |
iOS interview questions and answers - Total 52 questions |
Ionic interview questions and answers - Total 32 questions |
Android interview questions and answers - Total 14 questions |