IOS Developer
100+ IOS Developer Interview Questions and Answers
Q1. 1 - MVC PATTERN 2- CLOUSERS & it's type 3- Google SDK like Google maps 3- How u manage the constraints of any label , stick at every corner & center of view controller, when getting data from json.
Questions related to iOS development, including MVC pattern, closures, Google SDK, and managing constraints for labels.
MVC pattern is a design pattern used in iOS development to separate the application logic into three components: model, view, and controller.
Closures are self-contained blocks of functionality that can be passed around and used in code. Types include escaping and non-escaping closures.
Google SDKs like Google Maps provide pre-built functionality for developers...read more
Q2. What’s difference between class and structure
Classes and structures are both used to define custom data types, but they have some key differences.
Classes are reference types, while structures are value types.
Classes support inheritance, while structures do not.
Classes have deinitializers, while structures do not.
Classes have reference counting for memory management, while structures do not.
Classes can have optional property types, while structures cannot.
IOS Developer Interview Questions and Answers for Freshers
Q3. What is optional, difference between struct and class?
Optional is a type in Swift that can hold a value or be nil. Struct and class are both used to define custom data types.
Optional is denoted by a question mark (?) and is used to handle nil values.
Structs are value types and are passed by value, while classes are reference types and are passed by reference.
Structs have a default memberwise initializer, while classes do not.
Classes can inherit from other classes, while structs cannot.
Examples of optional usage include declaring...read more
Q4. How to upload/download files or fetch requests for API?
To upload/download files or fetch requests for API in iOS, you can use URLSession and its related classes.
Use URLSession to create a URLSessionDataTask for making API requests.
For file upload, use URLSessionUploadTask and provide the file URL.
For file download, use URLSessionDownloadTask and specify the destination URL.
Handle the response and errors using completion handlers.
Example: URLSession.shared.dataTask(with: url) { (data, response, error) in ... }
Q5. What is the difference between frame and bounds?
The frame represents the view's position and size in its superview's coordinate system, while the bounds represents the view's position and size in its own coordinate system.
Frame is relative to the superview, bounds is relative to the view itself
Frame includes any transformations applied to the view, bounds does not
Frame's origin is the top-left corner of the view, bounds' origin is always (0,0)
Q6. How to integrate Push Notification in IOS?
To integrate Push Notification in iOS, you need to register for remote notifications, handle the registration token, and implement the necessary delegate methods.
Register for remote notifications using the UIApplication.shared.registerForRemoteNotifications() method.
Implement the AppDelegate's didRegisterForRemoteNotificationsWithDeviceToken method to handle the registration token.
Implement the AppDelegate's didReceiveRemoteNotification method to handle incoming notifications...read more
Share interview questions and help millions of jobseekers 🌟
Q7. What is the difference between swift & objective c?
Swift is a modern programming language while Objective-C is an older language used for iOS development.
Swift is easier to read and write than Objective-C.
Swift is faster than Objective-C.
Objective-C is still used in legacy codebases.
Swift has a simpler syntax and is more concise.
Swift has better memory management than Objective-C.
Q8. What’s retain cycle how you can avoid
Retain cycle is a memory management issue where objects reference each other and cannot be released. It can be avoided by using weak or unowned references.
Retain cycle occurs when two or more objects hold strong references to each other.
To avoid retain cycle, use weak or unowned references instead of strong references.
Weak references do not increase the reference count of an object and automatically become nil when the object is deallocated.
Unowned references are similar to w...read more
IOS Developer Jobs
Q9. What is closure? Life cycle of escaping closure?
A closure is a self-contained block of code that can be passed around and used in your code. An escaping closure is a closure that is called after the function it was passed to has returned.
Closure is a block of code that can be passed around and used in your code.
Escaping closure is called after the function it was passed to has returned.
Example: Using a completion handler in a network request to handle the response after the request has finished.
Q10. What's the difference between reference types and value types?
Reference types store a reference to the actual data in memory, while value types store the actual data directly.
Reference types are stored on the heap and passed by reference, while value types are stored on the stack and passed by value.
Changing the value of a reference type will affect all references to that object, while changing the value of a value type will not affect other instances.
Examples of reference types in iOS development include classes, while examples of valu...read more
Q11. what is the bridge between swiftui and uikit
The bridge between SwiftUI and UIKit is represented by the UIViewRepresentable and UIViewControllerRepresentable protocols.
UIViewRepresentable and UIViewControllerRepresentable protocols allow SwiftUI views to interact with UIKit views and controllers respectively.
UIViewRepresentable is used to wrap a UIKit view and make it available to SwiftUI.
UIViewControllerRepresentable is used to wrap a UIKit view controller and make it available to SwiftUI.
These protocols enable develop...read more
Q12. How to create a perticular mobile screen
To create a particular mobile screen, you need to design the layout using Interface Builder or programmatically in Swift.
Design the UI layout using Interface Builder in Xcode
Add necessary UI elements like labels, buttons, text fields, etc.
Customize the appearance using constraints, auto layout, and size classes
Implement functionality using Swift code to handle user interactions and data processing
Q13. what are Access Controls/modifiers? public vs open?
Access controls/modifiers determine the visibility and accessibility of classes, methods, and properties in object-oriented programming.
public access control allows a class, method, or property to be accessed from anywhere in the code
open access control allows a class to be subclassed outside of the module where it is defined
public is commonly used in Swift for most cases, while open is used when you want to allow subclassing from external modules
Q14. What is retain , weak, strong, atomic etc in Objective C
Retain, weak, strong, atomic are property attributes in Objective-C for memory management and thread safety.
Retain: Increases the reference count of an object.
Weak: Does not increase the reference count, used to avoid retain cycles.
Strong: Increases the reference count and keeps the object in memory until all references are removed.
Atomic: Guarantees that the value is always fully retrieved or set in a multi-threaded environment.
Q15. What is the difference between MVC and MVP?
MVC focuses on separation of concerns, while MVP focuses on the interaction between components.
MVC stands for Model-View-Controller, where the controller handles user input, the model manages the data, and the view displays the data.
MVP stands for Model-View-Presenter, where the presenter acts as an intermediary between the model and the view, handling user input and updating the view.
In MVC, the view has direct access to the model, while in MVP, the presenter mediates the co...read more
Q16. What is the race condition and data race?
Race condition occurs when multiple threads access shared data and try to change it at the same time. Data race is a type of race condition where two or more threads access shared data and at least one of them modifies it.
Race condition occurs when multiple threads access shared data and try to change it at the same time.
Data race is a type of race condition where two or more threads access shared data and at least one of them modifies it.
Race conditions can lead to unpredict...read more
Q17. What types of property wrappers do you know?
Property wrappers in Swift are used to add extra functionality to properties.
Some types of property wrappers include @State, @Binding, @ObservedObject, @EnvironmentObject, @Published, @FetchRequest, @NSManaged, etc.
Property wrappers help in managing the state of UI components, data flow, and data persistence in iOS apps.
They provide a convenient way to encapsulate common behavior and logic for properties.
Q18. How you use GIT, How to manage conflicts?
I use GIT for version control and manage conflicts by resolving them through communication and collaboration.
Regularly commit changes to keep track of progress
Pull latest changes before making any updates to avoid conflicts
Communicate with team members to resolve conflicts efficiently
Use tools like Git merge or Git rebase to resolve conflicts
Document resolution process for future reference
Q19. Difference between GCD and operation Queues
GCD and Operation Queues are both used for concurrent programming in iOS, but differ in their approach.
GCD is a C-based API that uses a thread pool model for concurrency.
Operation Queues are built on top of GCD and provide a higher-level abstraction for concurrency.
GCD is best for simple, lightweight tasks, while Operation Queues are better for more complex tasks with dependencies.
GCD uses blocks for task execution, while Operation Queues use Operation objects.
GCD has a lower...read more
Q20. Explain the Life cycle of iOS applications
The life cycle of iOS applications refers to the stages an app goes through from launch to termination.
The app is launched by the user or system
The app enters the foreground and becomes active
The app can be sent to the background or suspended
The app can be terminated by the user or system
The app can be resumed from the background or suspended state
The app can receive memory warnings and handle them appropriately
Q21. Explain the life cycle of UIviewController
The UIViewController life cycle consists of several stages that occur when the view controller is loaded and unloaded.
viewDidLoad() - called when the view controller's view is loaded into memory
viewWillAppear() - called just before the view appears on the screen
viewDidAppear() - called just after the view appears on the screen
viewWillDisappear() - called just before the view disappears from the screen
viewDidDisappear() - called just after the view disappears from the screen
de...read more
Q22. 1.Difference between class and struct?
Classes are reference types while structs are value types.
Classes are passed by reference while structs are passed by value.
Classes support inheritance while structs do not.
Classes have a default initializer while structs do not.
Classes can be deinitialized while structs cannot.
Examples of classes include UIView and UIViewController while examples of structs include CGRect and CGPoint.
Q23. What are delegates, notification center in iOS?
Delegates and notification center are key components in iOS development for communication between objects and broadcasting events.
Delegates are used for one-to-one communication between objects, allowing one object to act on behalf of another.
Notification center is used for broadcasting events to multiple objects, allowing for loosely coupled communication.
Delegates are commonly used in UITableView and UICollectionView to handle data and user interactions.
Notification center ...read more
Q24. two sums from leetcode, NSOperation vs GCD, View life cycle, tuple
The interview question covers topics like solving two sum problems, NSOperation vs GCD, view life cycle, and tuples.
Two sum problems involve finding two numbers in an array that add up to a specific target. Example: [2, 7, 11, 15], target = 9
NSOperation and GCD are both used for concurrent programming in iOS. NSOperation provides more control and features, while GCD is lower level and more lightweight.
View life cycle in iOS involves methods like viewDidLoad, viewWillAppear, v...read more
Q25. Linked list sum in reverse order (Leetcode #2. Add two numbers)
Add two numbers represented by linked lists in reverse order.
Traverse both linked lists simultaneously, adding corresponding nodes and carrying over the sum if necessary.
Handle cases where one linked list is longer than the other.
Create a dummy head node to simplify the code.
Consider edge cases like carry over at the end of the addition.
Q26. What are the types of access controls in iOS
Types of access controls in iOS include public, internal, private, and fileprivate.
Public: Accessible from anywhere, both within the module and outside.
Internal: Accessible from anywhere within the module.
Private: Accessible only within the defining type.
Fileprivate: Accessible only within the same file.
Q27. How can you create dynamic UI like amazon?
Dynamic UI like Amazon can be created using a combination of responsive design, data-driven content, and user personalization.
Utilize responsive design principles to ensure the UI adapts to different screen sizes and devices.
Implement data-driven content to display relevant information based on user preferences and behavior.
Use user personalization techniques such as recommendations, personalized product suggestions, and targeted promotions.
Incorporate interactive elements li...read more
Q28. New features added in Swift5 comparing Swift 4?
Swift 5 introduced ABI stability, improved performance, and new language features.
ABI stability ensures compatibility between future Swift versions
Improved performance with faster build times and reduced app size
New language features include Result type, Raw strings, and Property wrappers
Q29. Do sorting without higher order functions, Remote notifications
Sorting without higher order functions and remote notifications
Implement sorting algorithm like bubble sort, selection sort, or insertion sort without using built-in sort functions
For remote notifications, use Apple Push Notification Service (APNs) to send notifications to users' devices
Q30. How ARC mechanism works in Swift?
ARC (Automatic Reference Counting) is a memory management mechanism in Swift that automatically manages memory by keeping track of references to objects.
ARC automatically deallocates objects when they are no longer referenced
Retain cycles can occur if two objects hold strong references to each other
Weak and unowned references are used to prevent retain cycles
Q31. What frameworks do you use in projects?
I primarily use UIKit and SwiftUI frameworks for iOS development projects.
Primary frameworks: UIKit, SwiftUI
Additional frameworks: Core Data, Core Animation
Examples: UIKit for building user interfaces, SwiftUI for declarative UI design
Q32. Write code to get distinct members in array with same sequence
Use a Set to get distinct members in array while maintaining sequence.
Iterate through the array and add each element to a Set to automatically remove duplicates.
Create a new array by iterating through the Set to maintain the original sequence.
Q33. make api flow and create with help of design pattern for ui and ux testing
The answer to the question is provided below.
To create an API flow, start by identifying the endpoints and their functionalities.
Design the UI and UX testing by using appropriate design patterns like MVC or MVVM.
Implement the API calls and handle the responses using networking libraries like Alamofire.
Use XCTest or UI Testing frameworks for automated UI and UX testing.
Mock the API responses for testing purposes using tools like OHHTTPStubs or Swifter.
Ensure proper error handl...read more
Q34. What is difference between class and struct?
Classes are reference types, while structs are value types in Swift.
Classes are reference types, meaning they are passed by reference, while structs are value types, passed by value.
Classes support inheritance, while structs do not.
Classes have deinitializers, while structs do not.
Classes can have reference counting for memory management, while structs do not.
Example: class Person {} vs struct Point {}
Q35. What is ARC in Swift?
ARC stands for Automatic Reference Counting. It is a memory management system used in Swift to automatically manage memory allocation and deallocation.
ARC automatically tracks and manages the memory used by objects in Swift.
It keeps track of how many references to an object exist and deallocates the object when there are no more references to it.
ARC eliminates the need for manual memory management, reducing the risk of memory leaks and crashes.
Developers don't need to explici...read more
Q36. What are types of memory management in iOS
Types of memory management in iOS include Automatic Reference Counting (ARC) and Manual Reference Counting (MRC).
Automatic Reference Counting (ARC) - manages memory automatically by keeping track of object references.
Manual Reference Counting (MRC) - requires developers to manually manage memory by retaining and releasing objects.
ARC is the default memory management system in iOS, while MRC is used in older codebases or when developers need more control over memory management...read more
Q37. What’s opinion binding
Opinion binding is a legal doctrine that requires judges to follow the decisions of higher courts in similar cases.
Opinion binding is also known as stare decisis.
It helps to ensure consistency and predictability in the legal system.
For example, if a higher court has already ruled that a certain law is unconstitutional, lower courts must follow that ruling in similar cases.
Opinion binding can be controversial, as it can prevent judges from correcting past mistakes or adapting ...read more
Q38. What's the difference between Class and Struct
Classes are reference types, while structs are value types in Swift.
Classes are reference types, meaning they are passed by reference, while structs are value types, passed by value.
Classes support inheritance, while structs do not.
Classes have deinitializers, while structs do not.
Classes can have reference counting for memory management, while structs do not.
Example: Class - Person, Struct - Point
Q39. What is the app life cycle in iOS?
The app life cycle in iOS refers to the sequence of events that occur from the time an app is launched to when it is terminated.
The app is launched by the user or system.
The app enters the foreground and becomes active.
The app can enter the background when the user switches to another app or the device locks.
The app can be terminated by the user or system.
The app can also be suspended, where it remains in memory but does not execute code.
Examples: launching an app, switching ...read more
Q40. What is multi threading?
Multi threading is the ability of a CPU to execute multiple threads concurrently, allowing for improved performance and responsiveness in applications.
Allows for parallel execution of tasks, improving performance
Enables applications to remain responsive while performing intensive tasks
Can lead to synchronization issues if not managed properly
Q41. How to identify memory leaks in the entire project
Use Instruments tool to identify memory leaks in iOS projects
Use Instruments tool provided by Xcode to run the app and analyze memory usage
Look for memory leaks in the Allocations and Leaks instruments
Check for any objects that are not being deallocated properly, causing memory leaks
Q42. what is mvvm architecture in ios
MVVM is a design pattern that separates UI code from business logic and data models.
MVVM stands for Model-View-ViewModel
Model represents the data and business logic
View displays the UI and user interactions
ViewModel acts as a mediator between Model and View
ViewModel exposes data and commands to View
MVVM helps in testability, maintainability and scalability of code
Q43. Steps in adding collection view in Swift.
Steps to add collection view in Swift.
Create a UICollectionView instance
Set the delegate and data source of the collection view
Implement the required methods of UICollectionViewDataSource and UICollectionViewDelegate protocols
Register the cell class or nib file for the collection view
Return the number of items and configure the cell in the data source methods
Implement any additional delegate methods as needed
Q44. types of init and their behavior
There are designated initializers in Swift that have specific behaviors, such as convenience init and required init.
Designated initializers are primary initializers for a class and must call a designated initializer from its superclass.
Convenience initializers are secondary initializers that must call another initializer in the same class.
Required initializers must be implemented by all subclasses of a class.
Q45. How will you solve the challanges
I will solve the challenges by analyzing the problem, researching possible solutions, and implementing the best approach.
Analyze the problem thoroughly
Research possible solutions
Implement the best approach
Collaborate with team members if necessary
Q46. Code snippets for optional binding, find error ?
Optional binding in Swift helps to safely unwrap optionals and check for nil values.
Use if let or guard let to safely unwrap optionals and bind the value to a new constant or variable.
Check for nil values before using the unwrapped value to avoid runtime errors.
Example: if let name = optionalName { print(name) }
Example: guard let age = optionalAge else { return }
Q47. what is tupple and what is optional?
A tuple is a data structure that contains a sequence of elements, while an optional is a type that represents either a wrapped value or nil.
Tuples are used to group multiple values together in a single compound value.
Optionals are used in Swift to handle the absence of a value.
Tuples can contain values of different types, while optionals can only contain one value or nil.
Example of a tuple: (1, 'apple', true)
Example of an optional: var name: String? = 'John'
Q48. What is URLSession, Explain with code
URLSession is a class in iOS that allows you to make network requests and handle responses.
URLSession is used to create tasks for fetching data from the internet.
It supports various types of tasks such as data tasks, download tasks, and upload tasks.
You can configure URLSession with URLSessionConfiguration to customize its behavior.
Example: URLSession.shared.dataTask(with: url) { (data, response, error) in }
Q49. Difference Between Dispatch Queue and OperationalQueue
Dispatch Queue is a high-level API for managing concurrent operations, while OperationQueue is built on top of Dispatch Queue and adds additional features for managing operation objects.
Dispatch Queue is a lightweight way to execute tasks serially or concurrently, while OperationQueue is used to manage operation objects that represent tasks.
OperationQueue allows for dependencies between operations, while Dispatch Queue does not have built-in support for dependencies.
Dispatch ...read more
Q50. explain mvc and tell difference between mvc and mvvm
MVC is a design pattern that separates an application into three main components: Model, View, and Controller. MVVM is a variation of MVC with an added ViewModel layer.
MVC stands for Model-View-Controller, where Model represents the data, View represents the UI, and Controller acts as an intermediary between Model and View.
MVVM stands for Model-View-ViewModel, which adds a ViewModel layer between the View and Model. ViewModel exposes data and methods to the View.
In MVC, the V...read more
Interview Questions of Similar Designations
Top Interview Questions for IOS Developer Related Skills
Interview experiences of popular companies
Calculate your in-hand salary
Confused about how your in-hand salary is calculated? Enter your annual salary (CTC) and get your in-hand salary
Reviews
Interviews
Salaries
Users/Month