What should I focus on for an iOS and Swift interview?

Which topics appeared most in these interviews?

UIKit and Kotlin Multiplatform each appeared in 10 of 34 interviews. Swift fundamentals, architecture and data, and platform services each appeared in 9 of 34 interviews. Your checks should cover both Swift code and how an app works.

For UIKit, can you name the data source and delegate methods used by UITableView and UICollectionView and explain each method’s job? For platform services, can you explain how push notifications work and how you would add them to an app?

Which Swift basics should I be able to explain?

The most asked question was about higher-order functions, appearing in 4 of 34 interviews. Can you explain what the term means, rather than only name functions?

Then check whether you can answer these questions:

  • How do structs and classes differ, and when would you choose each?
  • How do you detect an ARC retain cycle?
  • How do you break a retain cycle using weak or unowned references?

Use the Swift fundamentals questions to check your understanding of optionals, protocols, collections, access control, and value semantics too.

Can I explain state ownership and asynchronous work?

For SwiftUI, can you compare List and LazyVStack in behavior, performance, and optimization? Can you explain how the state wrappers differ and how you manage view model ownership and lifecycle?

For concurrency, can you explain how you would handle issues when integrating legacy Objective-C libraries or callback-based code? Check the questions on tasks, actors, cancellation, and Sendable, as well as Combine publishers and streams. Do not stop at explaining async/await.

Can I explain shared code and app structure?

Kotlin Multiplatform questions covered native versus cross-platform development, migration, and working with Android teams. Can you say which code you would share and which code you would keep specific to each platform? Can you explain how shared code works with Swift?

For app architecture, can you compare MVC, MVVM, and VIPER, then explain the role of coordinators? Also check whether you can describe data flow, dependency injection, networking, error handling, and persistence.

What should I be ready to build and deliver?

Coding tasks appeared in 3 of 34 interviews. Try these tasks from the interviews:

  • Write a Singleton class in Swift.
  • Implement a UIProgressView in a view controller with controls for user interaction.
  • Create an Xcode project that fetches data from a URL and displays it in a list.

Beyond writing code, can you outline a testing plan that checks an app against its requirements? Can you explain how you would investigate memory use or scrolling performance? For release work, check whether you can describe signing, provisioning, and App Store submission.

Who gets asked iOS and Swift

Mobile developer30 interviews
Frontend developer1 interviews
AI engineer1 interviews

The 20 most asked iOS and Swift questions

Counted by interview, not by mention: a question asked twice in one conversation counts once.

  1. What do you mean by higher-order functions?

    Asked in 4 of 34 interviews · last asked Aug 17 · Concept · Mid-level

    Show answer

    A higher-order function takes a function as an argument, returns a function, or both. In Swift, closures can serve as these functions. Examples include map, filter, and reduce, which help transform, select, or combine values without writing explicit loops.

    • On arrays, map applies a transformation to each element and returns an array of results.
    • On arrays, filter returns an array of elements that pass a test.
    • reduce combines elements into one result, starting from an initial value.
    • A function that returns another function is also a higher-order function.
    Code
    let numbers = [1, 2, 3, 4]
    let doubled = numbers.map { $0 * 2 } // [2, 4, 6, 8]
    let even = numbers.filter { $0 % 2 == 0 } // [2, 4]
    let sum = numbers.reduce(0) { $0 + $1 } // 10

    What the interviewer checks: The interviewer checks whether you understand functions as values and can explain common Swift collection operations.

    Other ways it was asked
    • “What are some examples of higher-order functions?”
    • “Can you explain what a higher-order function is?”
    • “What is a higher-order function, and what is it used for?”
  2. Which data source and delegate methods do UITableView and UICollectionView use, and what are their responsibilities?

    Asked in 3 of 34 interviews · last asked Aug 19 · Concept · Mid-level

    Show answer

    The data source provides counts and cells. The delegate handles user actions and display behavior. With standard data sources, row or item counts and cell methods are required; section counts are optional and default to one. Delegate methods are optional.

    • UITableViewDataSource: tableView(_:numberOfRowsInSection:) returns the row count; tableView(_:cellForRowAt:) returns a configured cell.
    • UICollectionViewDataSource: collectionView(_:numberOfItemsInSection:) returns the item count; collectionView(_:cellForItemAt:) returns a configured cell.
    • Selection: tableView(_:didSelectRowAt:) and collectionView(_:didSelectItemAt:) handle taps on rows and items.
    • Sizing: tableView(_:heightForRowAt:) sets row heights; UICollectionViewDelegateFlowLayout’s collectionView(_:layout:sizeForItemAt:) sets item sizes when using flow layout.

    What the interviewer checks: The interviewer checks whether you separate supplying content from handling interactions and know the main UIKit callbacks.

    Other ways it was asked
    • “What role do delegates play in UITableView, and what are the main delegate methods?”
    • “Which methods do you need to implement to populate a dynamic UITableView?”
    • “Why are a collection view's delegate and data source important, and what responsibilities do they handle?”
  3. How do you detect and break ARC retain cycles using weak or unowned references?

    Asked in 2 of 34 interviews · last asked Aug 17 · Concept · Mid-level

    Show answer

    ARC leaks objects when strong references form a cycle, so their reference counts never reach zero. I find cycles with Xcode’s Memory Graph or Instruments, and check whether deinit runs. I break the cycle by making one reference weak or unowned. I use unowned only when the referenced object is guaranteed to outlive the reference.

    • weak references are optional and automatically become nil when the object is freed.
    • Normal unowned references crash if accessed after the object is freed; prefer weak when lifetimes are uncertain.
    • Use [weak self] when an object retains a closure that would otherwise strongly capture it.
    • Class-bound delegate references are usually weak to avoid cycles with their owners.

    What the interviewer checks: The interviewer checks whether you can find ownership cycles and choose weak or unowned safely.

    Other ways it was asked
    • “In Swift, explain how ARC can still lead to memory leaks via strong reference cycles and how you typically detect and break them in production apps.”
    • “How do you break a retain cycle between two classes?”
    • “Does an unowned reference help break a retain cycle?”
  4. How do structs and classes differ in Swift, and when would you choose each?

    Asked in 2 of 34 interviews · last asked Aug 12 · Concept · Senior

    Show answer

    Structs are value types: assigning or passing one gives an independent value. Classes are reference types: multiple references can share one instance, so changes can be visible through all of them. I prefer structs for data that should stay independent. I choose classes when I need shared mutable state, object identity, or inheritance.

    • Structs do not support inheritance; classes do. Both can have methods and conform to protocols.
    • A struct stored with let cannot be changed; a class stored with let can still have mutable properties.
    • Copying a struct does not copy instances referenced by its class properties.
    • Class instances use ARC; strong reference cycles can cause memory leaks.

    What the interviewer checks: The interviewer checks whether you can choose value or reference semantics and predict how shared state changes.

    Other ways it was asked
    • “In Swift, what is the difference between a struct and a class?”
    • “In Swift, what is the difference between a struct and a class, and why might you prefer a struct?”
    • “When would you choose a struct over a class in Swift, and how do value semantics affect state changes when that type is passed around your app?”
  5. How do List and LazyVStack compare in behavior, performance, and optimization?

    Asked in 2 of 34 interviews · last asked Aug 19 · Concept · Mid-level

    Show answer

    List is a scrolling container with built-in support for selection, swipe actions, and deletion. LazyVStack creates rows as needed and requires a ScrollView to scroll, giving more layout control. List often handles large lists better, but performance depends on row content and the OS version.

    • Both load content lazily; neither guarantees smooth scrolling with expensive rows.
    • List uses system-managed row reuse, but implementation details vary by OS version.
    • LazyVStack does not provide the same reuse behavior or built-in list interactions.
    • Use stable row IDs, keep row work light, and measure scrolling performance on real devices.

    What the interviewer checks: The interviewer checks whether you understand the behavior differences and can measure performance instead of assuming lazy means fast.

    Other ways it was asked
    • “What is the difference between List and LazyVStack in SwiftUI?”
    • “What is the difference between List and LazyVStack?”
    • “How do List and LazyVStack inside a ScrollView compare in terms of performance and optimization?”
  6. How do SwiftUI state wrappers differ, and how do you manage view model ownership and lifecycle?

    Asked in 2 of 34 interviews · last asked Aug 19 · Concept · Senior

    Show answer

    @State stores local view state. For ObservableObject models, @StateObject creates and keeps the view's model, while @ObservedObject observes a model owned elsewhere. @EnvironmentObject reads an ObservableObject supplied by an ancestor. Creating these models in body or directly in an @ObservedObject property initializer can recreate them during view updates.

    • @State and @StateObject storage lasts while the view keeps the same identity, not just the same struct instance.
    • @Binding lets a child read and change state owned elsewhere.
    • @EnvironmentObject must be supplied by an ancestor; missing it causes a runtime crash.
    • On iOS 17+, use @State to own @Observable models and @Bindable when bindings are needed.

    What the interviewer checks: The interviewer checks whether you separate ownership from observation and prevent model resets during view updates.

    Other ways it was asked
    • “In SwiftUI, how do you decide between @State, @StateObject, @ObservedObject, and @EnvironmentObject, and what lifecycle bug do you watch for when creating view models?”
    • “What are the main ways to manage state in SwiftUI?”
    • “What is the difference between @EnvironmentObject and @StateObject?”
  7. How do you handle Swift concurrency issues when integrating legacy Objective-C libraries or callback-based code?

    Asked in 2 of 34 interviews · last asked Oct 23 · Scenario · Senior

    Show answer

    I wrap callbacks with checked continuations and protect shared legacy state with an actor or serial queue. I use MainActor for UI work and respect the library’s required thread or queue. I pass Sendable data across isolation boundaries. In Swift 6, I fix isolation issues instead of hiding them with unsafe annotations.

    • Resume each continuation exactly once, including error paths; connect cancellation explicitly if the library supports it.
    • An actor serializes access but does not guarantee a specific thread.
    • Convert mutable Objective-C objects into Sendable snapshots before crossing isolation boundaries.
    • @preconcurrency can reduce compiler diagnostics; @unchecked Sendable requires you to guarantee thread safety.

    What the interviewer checks: The interviewer checks whether you can bridge legacy code without hiding data races or breaking thread requirements.

    Other ways it was asked
    • “How would you work with legacy libraries in Swift 6 when they cause errors related to Sendable, isolation, or calls from the wrong thread?”
    • “What is your approach to Swift concurrency or threading issues in a codebase that still has older Objective-C or callback-based code?”
  8. How do push notifications work, and how do you implement them in a mobile app?

    Asked in 2 of 34 interviews · last asked Sep 30 · Scenario · Mid-level

    Show answer

    On iOS, push notifications are messages a server sends through Apple Push Notification service (APNs). I request permission for alerts, sounds, and badges, then register with APNs to get a device token. I send that token to my backend, which uses it to send pushes. I handle foreground notifications and notification taps through UNUserNotificationCenterDelegate.

    • Update the backend whenever the device token changes; do not treat it as a permanent identifier.
    • Keep APNs credentials on the server, never in the app.
    • Push delivery is not guaranteed; fetch current data from the server when needed.
    • Silent pushes need the remote notifications background mode; iOS may delay or skip them.

    What the interviewer checks: The interviewer checks whether you understand the delivery flow, client setup, server responsibilities, and iOS limits.

    Other ways it was asked
    • “How would you handle push notifications in a mobile app?”
    • “How do push notifications work?”
  9. How do you plan testing to verify an iOS app works correctly and meets its requirements?

    Asked in 2 of 34 interviews · last asked Oct 20 · Scenario · Mid-level

    Show answer

    I turn each requirement into test cases with clear expected results, starting with the highest-risk features. I use unit tests for logic, integration tests for connected parts, and UI tests for key user flows. I also test on real devices across supported iOS versions, including failures, accessibility, and performance. I track bugs and rerun relevant tests before release.

    • Link requirements and acceptance criteria to tests, including error cases.
    • Automate stable tests and run them in continuous integration.
    • Cover supported devices, permissions, poor networks, and background transitions.
    • Use manual testing for usability and unexpected behavior; agree on release criteria.

    What the interviewer checks: The interviewer checks whether you can build a risk-based test plan that covers requirements and real iOS conditions.

    Other ways it was asked
    • “How would you plan testing an iOS application?”
    • “How do you verify that an iOS product works correctly and meets its requirements?”
  10. How do you prepare and publish mobile apps to the Apple App Store and Google Play Store?

    Asked in 2 of 34 interviews · last asked Oct 20 · Tooling · Mid-level

    Show answer

    I test the app, check store policies, and prepare signed release builds using developer accounts. I upload the iOS build to App Store Connect and the Android App Bundle to Google Play Console. I complete store listings, privacy details, and review instructions, then submit for review. After approval, I release the app and monitor crashes.

    • Set app identifiers, versions, signing credentials, and permissions correctly; meet current SDK and target API requirements.
    • Test release builds on real devices, using TestFlight and Google Play testing tracks before production.
    • Provide screenshots, descriptions, age ratings, privacy policies, Apple privacy disclosures, and Google Play Data safety details.
    • Provide reviewer login details when needed, meet account-specific testing requirements, and use gradual releases where available.

    What the interviewer checks: The interviewer checks whether you understand release preparation, signing, store requirements, review, and monitoring after release.

    Other ways it was asked
    • “How do you publish a mobile application to the Google Play Store and Apple App Store?”
    • “How do you prepare and submit an iOS app for App Store review?”
  11. How do you handle urgent App Store releases, and when can you request an expedited review?

    Asked in 2 of 34 interviews · last asked Oct 23 · Tooling · Mid-level

    Show answer

    For an urgent release, I test a small, focused update and submit it to App Review. I request an expedited review through Apple’s form for exceptional cases, such as a critical bug fix or a time-sensitive event. I explain the impact and urgency. Approval and same-day release are not guaranteed, so I prepare a safe fallback.

    • For a critical bug, include steps to reproduce it in the current version and explain the user impact.
    • For an event, explain the app’s connection to it and give the event date.
    • If possible, reduce harm with a server-side fix or by disabling the affected feature.

    What the interviewer checks: The interviewer checks whether you know when expedited review is appropriate and can manage urgency without promising Apple’s timing.

    Other ways it was asked
    • “When and how can you request an expedited App Store review?”
    • “How do you handle App Store review delays when you need a critical fix out today?”
  12. How do you divide shared and platform-specific responsibilities in a Kotlin Multiplatform app?

    Asked in 2 of 34 interviews · last asked May 18 · Design · Mid-level

    Show answer

    I share business rules, data models, networking, and repository logic in common Kotlin code. I keep platform APIs and app lifecycle handling in Android and iOS code. UI can stay native, using SwiftUI or UIKit on iOS, or be shared with Compose Multiplatform. Shared code accesses platform services through interfaces or expect/actual declarations.

    • Share logic that should behave the same on both platforms.
    • Keep permissions, notifications, and platform API calls in platform-specific code.
    • Choose native or shared UI based on product and team needs.
    • Use interfaces or expect/actual to connect shared logic to platform implementations.

    What the interviewer checks: The interviewer checks whether you can reuse logic while keeping platform behavior and integration needs separate.

    Other ways it was asked
    • “How do you divide work between Android and iOS in a Kotlin Multiplatform project?”
    • “What responsibilities or functionality typically remain in the iOS-specific code of a Kotlin Multiplatform app?”
  13. When would you use weak versus unowned references, and what can go wrong? Give an example.

    Asked once · last asked Jul 20 · Concept · Senior

    Show answer

    Use `weak` when the referenced object may be released first; the reference becomes `nil`. Use `unowned` only when that object must still exist whenever the reference is used. Accessing an `unowned` reference after its object is released causes a runtime crash. For a delegate that may disappear before its sender, I use `weak`.

    • Neither reference keeps the object alive; both can break strong reference cycles.
    • Weak references must be optional variables because ARC sets them to nil.
    • Another object must strongly own a weak delegate, or it may disappear too soon.
    • Use unowned only with a clear lifetime guarantee, not just to avoid optional handling.
    Code
    protocol SenderDelegate: AnyObject {
        func didFinish()
    }
    final class Sender {
        weak var delegate: SenderDelegate?
        func finish() {
            delegate?.didFinish() // Safe if the delegate is gone.
        }
    }

    What the interviewer checks: The interviewer checks whether you understand object lifetimes and can prevent both retain cycles and invalid reference access.

    Other ways it was asked
    • “How do you decide between weak and unowned for a reference, for example in delegates, closures, or parent-child relationships, and what failure modes are you guarding against?”
    • “Pick one concrete example, such as a delegate, closure, or parent-child relationship, and walk me through when you'd use weak versus unowned there, and why.”
  14. Why is it important to use access control in Swift, and how can it affect your code's structure?

    Asked once · last asked Jul 29 · Concept · Junior

    Show answer

    Access control limits which parts of your Swift code can use a type or its members. It protects internal details and reduces unwanted dependencies. It helps you build clear interfaces and separate responsibilities across types, files, and modules.

    • Use private for details needed only within a declaration and its extensions in the same file.
    • Use fileprivate when access is needed anywhere in the same file.
    • internal is the default; public exposes code outside its module.
    • open also allows subclassing and overriding outside the module; public alone does not.

    What the interviewer checks: The interviewer checks whether you can use access levels to protect implementation details and create clear code boundaries.

  15. What is multiple inheritance, and how does Swift address its challenges?

    Asked once · last asked Jul 29 · Concept · Junior

    Show answer

    Multiple inheritance means a class inherits from more than one superclass. This can create conflicts when parent classes provide the same member, including the diamond problem. Swift allows only one superclass, but a type can conform to multiple protocols. Protocol extensions can share implementation without inheriting stored state from multiple classes.

    • Single class inheritance avoids ambiguity between competing superclass implementations.
    • Protocols define requirements; protocol extensions can provide default implementations.
    • Conflicting protocol defaults may need an explicit implementation in the conforming type.

    What the interviewer checks: The interviewer checks whether you understand inheritance conflicts and Swift’s use of protocols instead of multiple superclasses.

  16. Can you explain what happens when you mutate a property on a struct stored inside an array, and why Swift sometimes requires mutating or reassigning the element?

    Asked once · last asked Aug 4 · Concept · Senior

    Show answer

    Changing a struct property through an array subscript updates the value stored at that index. Both the array and that property must be writable. A struct method that changes its properties must be marked `mutating`. If you first copy an element into a local variable, changing that copy does not update the array; assign it back.

    • Structs have value semantics: assigning an element to a local variable creates an independent value.
    • A `let` array does not allow changes to its struct elements.
    • Direct subscript mutation updates the element automatically; manual reassignment is not needed.
    • A struct method needs `mutating` when it changes an element of its own array property.
    Code
    struct Item { var count = 0 }
    var items = [Item()]
    items[0].count += 1 // Updates the array element.
    var item = items[0]
    item.count += 1 // Changes only the copy.
    items[0] = item // Stores the changed value.

    What the interviewer checks: The interviewer is checking whether you understand value semantics, writable storage, and when changes reach the original array.

  17. How would you explain copy-on-write in Swift for Array and Data, and what practical steps help avoid unintended copies for performance-critical code?

    Asked once · last asked Aug 4 · Concept · Senior

    Show answer

    Swift’s Array and Data have value semantics and use copy-on-write storage. Copies can share a buffer until mutation requires separate storage to keep their values independent. Mutating uniquely owned storage can avoid a copy, but growing beyond its capacity may still allocate a new buffer.

    • Avoid keeping unnecessary copies or slices alive when mutating; they may share the buffer.
    • Use inout to mutate the caller’s value, but other shared copies can still force copying.
    • Use reserveCapacity when the expected size is known to reduce repeated allocations during growth.
    • Profile allocations with Instruments; bridging to Foundation types can affect storage sharing and copying.

    What the interviewer checks: The interviewer checks whether you understand value semantics, shared storage, and how ownership and capacity affect performance.

  18. Can you write a Singleton class in Swift?

    Asked once · last asked Aug 12 · Write code · Mid-level

    Show answer

    I use a static constant for the shared instance and a private initializer to block outside creation. Swift creates the shared instance lazily and initializes it only once, even with concurrent access.

    • The private initializer prevents other code from creating instances.
    • The final keyword prevents subclassing.
    • Thread-safe initialization does not make mutable shared state thread-safe.
    Code
    final class AppConfig: Sendable {
        static let shared = AppConfig()
    
        private init() {}
    }
    
    let config = AppConfig.shared

    What the interviewer checks: The interviewer checks whether you can control instance creation and understand shared-instance initialization.

  19. Can value types such as structs and enums cause a retain cycle?

    Asked once · last asked Aug 17 · Concept · Senior

    Show answer

    Structs and enums cannot form a retain cycle by themselves, but they can be part of one. They can hold strong class references or closures that capture objects strongly. If an object stores such a value, and that value holds a strong reference back to the object, a cycle can form.

    • Value types do not have their own reference-counted identity.
    • Struct properties and enum associated values can hold strong references.
    • Break the strong reference chain, often with a weak class reference or weak closure capture.

    What the interviewer checks: The interviewer is checking whether you can trace strong references through value types, not just between classes.

  20. Which types support reference counting in Swift?

    Asked once · last asked Aug 17 · Concept · Mid-level

    Show answer

    Swift uses Automatic Reference Counting (ARC) to manage class instances. Structs and enums are value types, so they are not reference-counted themselves. However, references they store to class instances are managed by ARC.

    • Strong references keep class instances alive; weak and unowned references do not.
    • Copying a struct can retain its referenced objects without copying those objects.
    • Closures can retain captured objects and create strong reference cycles.

    What the interviewer checks: The interviewer is checking whether you understand reference types, value types, and ARC ownership.

Swift fundamentals and memory management interview questions

Swift fundamentals questions cover types, optionals, protocols, collections, functions, access control, value semantics, ARC, and reference cycles. 21 questions.

  1. What is the difference between delegates and closures?

    Asked once · last asked Aug 17 · Concept · Mid-level

  2. Should delegates use weak or strong references, and why?

    Asked once · last asked Aug 17 · Concept · Mid-level

    Other ways it was asked
    • “Can you define a delegate variable using a strong reference?”
    • “Should a delegate variable be weak or strong, and why?”
  3. How would you implement a protocol that can only be adopted by a class, not a struct or enum?

    Asked once · last asked Aug 17 · Concept · Mid-level

  4. What are the key differences between Swift 6 and earlier versions?

    Asked once · last asked Aug 17 · Concept · Senior

  5. What is the difference between compactMap and flatMap?

    Asked once · last asked Aug 17 · Concept · Mid-level

  6. In Swift, are arrays, dictionaries, and sets reference types or value types?

    Asked once · last asked Aug 17 · Concept · Mid-level

    Other ways it was asked
    • “Are arrays, dictionaries, and sets reference types or value types?”
  7. In Swift, why would you use zip in translation code, and what potential problem can it cause?

    Asked once · last asked Oct 19 · Concept · Mid-level

  8. What do you mean by protocol-oriented programming?

    Asked once · last asked Aug 17 · Concept · Mid-level

  9. What are optionals in Swift?

    Asked once · last asked Aug 17 · Concept · Junior

  10. What do Any and AnyObject mean in Swift, and how do they differ?

    Asked once · last asked Aug 17 · Concept · Mid-level

    Other ways it was asked
    • “What does the Any keyword represent in Swift?”
    • “What is the basic difference between Any and AnyObject?”

UIKit and Auto Layout interview questions

UIKit questions cover view controllers, tables, collections, controls, storyboards, scrolling, responsive layouts, and accessibility. 43 questions.

  1. How do you translate a Figma layout into a responsive mobile UI that stays consistent across iOS and Android and multiple screen sizes?

    Asked once · last asked Jul 20 · Scenario · Mid-level

  2. When Auto Layout on iOS or ConstraintLayout on Android doesn't match the intended Figma behavior, what's your process to diagnose and fix the constraint issues without breaking other screen sizes?

    Asked once · last asked Jul 20 · Scenario · Senior

  3. How do you implement Dynamic Type on iOS and font scaling on Android so text reflows gracefully without clipping or breaking layouts, especially in list cells?

    Asked once · last asked Jul 20 · Tooling · Mid-level

  4. What happens when you add a UIImageView to a UIScrollView, and what steps are needed to display it correctly?

    Asked once · last asked Jul 27 · Tooling · Junior

  5. Why is it important to use UIScrollView delegate methods, and what advantages do they offer?

    Asked once · last asked Jul 27 · Concept · Junior

  6. What is the difference between using UIScrollView and UIPageViewController to scroll through images?

    Asked once · last asked Jul 27 · Concept · Junior

  7. How can you implement a fading effect while scrolling in UIScrollView, and which methods would you use?

    Asked once · last asked Jul 27 · Tooling · Mid-level

  8. How does UIProgressView work, and which properties do you configure?

    Asked once · last asked Jul 29 · Concept · Junior

    Other ways it was asked
    • “How does UIProgressView work, and what are its main properties?”
    • “Which parameters should you consider when configuring a UIProgressView?”
  9. How can you use a storyboard to add a UIProgressView, and how does that differ from creating one programmatically?

    Asked once · last asked Jul 29 · Concept · Junior

  10. How can you customize the colors and appearance of a UIProgressView, and how does this affect the user interface?

    Asked once · last asked Jul 29 · Tooling · Junior

  11. How would you implement a UIProgressView in a view controller, and what UI elements would you add to let users interact with it?

    Asked once · last asked Jul 29 · Write code · Junior

  12. What is the difference between autoresizing masks and Auto Layout, and when should you use each?

    Asked once · last asked Aug 3 · Concept · Junior

Show 30 more
  1. What are the components of an Auto Layout constraint, and what parameters should you consider when creating one?

    Asked once · last asked Aug 3 · Concept · Junior

    Other ways it was asked
    • “What are the components of a constraint, and what parameters should you consider when creating one?”
  2. How do anchors work in Auto Layout, and how do they differ from traditional constraints?

    Asked once · last asked Aug 3 · Concept · Junior

  3. How would you center an element on the screen using constraints? Give an example.

    Asked once · last asked Aug 3 · Tooling · Junior

  4. How do constraint priorities work in Auto Layout, and when can they be useful?

    Asked once · last asked Aug 3 · Concept · Junior

    Other ways it was asked
    • “How do priorities between constraints work, and when can they be useful?”
  5. What are the advantages and disadvantages of implementing Auto Layout in code versus using a Storyboard?

    Asked once · last asked Aug 3 · Concept · Junior

  6. When you mix UIKit and SwiftUI, how do you ensure dynamic type, VoiceOver, and sufficient contrast are handled consistently across both frameworks?

    Asked once · last asked Aug 4 · Scenario · Senior

  7. In UIKit, how do you diagnose and fix Auto Layout constraint conflicts in a complex scrolling screen with nested stack views and self-sizing cells?

    Asked once · last asked Aug 4 · Scenario · Senior

  8. What is a reuse identifier, and how does it work with UITableView?

    Asked once · last asked Aug 5 · Concept · Junior

  9. How do you create and register a cell for UITableView?

    Asked once · last asked Aug 5 · Tooling · Junior

  10. How do you edit data in a UITableView, and which methods are needed?

    Asked once · last asked Aug 5 · Tooling · Junior

  11. What happens when a user taps a UITableView cell, and how can the view controller detect the tap?

    Asked once · last asked Aug 5 · Concept · Junior

  12. How do you build an interface with static table views in UITableViewController?

    Asked once · last asked Aug 5 · Tooling · Junior

  13. Why should a table view cell display data rather than store it, and how does this separation affect app performance?

    Asked once · last asked Aug 5 · Concept · Mid-level

  14. What is the core concept behind UICollectionView, and how does it differ from UITableView?

    Asked once · last asked Aug 7 · Concept · Junior

  15. What do frame and bounds mean in UIKit, and how are they used?

    Asked once · last asked Aug 7 · Concept · Junior

  16. How would you build a collection of beverages with UICollectionView, including the data model and how the items are displayed?

    Asked once · last asked Aug 7 · Scenario · Junior

  17. How would you handle taps on UICollectionView items, and what would you need to implement?

    Asked once · last asked Aug 7 · Scenario · Junior

  18. Why is UIKit an imperative programming framework?

    Asked once · last asked Aug 17 · Concept · Mid-level

  19. Which UITableView delegate methods can you use to add a header or footer?

    Asked once · last asked Aug 19 · Concept · Mid-level

  20. What are the UIKit view controller lifecycle functions, and in what sequence are they called?

    Asked once · last asked Sep 30 · Concept · Mid-level

  21. What are the main features of UIScrollView, and why is it important in iOS app development?

    Asked once · last asked Jul 27 · Concept · Junior

  22. How does UIScrollView manage its content, and what is content size?

    Asked once · last asked Jul 27 · Concept · Junior

  23. What is paging, and how does it affect UIScrollView's scrolling behavior?

    Asked once · last asked Jul 27 · Concept · Junior

  24. How would you add multiple images to an iOS app?

    Asked once · last asked Jul 27 · Tooling · Junior

  25. What are the main principles of Auto Layout, and why is it used?

    Asked once · last asked Aug 3 · Concept · Junior

  26. What is the Safe Area, and why is it important when developing apps?

    Asked once · last asked Aug 3 · Concept · Junior

  27. How do you create an interface in a Storyboard, and what steps are involved?

    Asked once · last asked Aug 3 · Tooling · Junior

  28. What are the main UI classes used for table views, and how do they differ?

    Asked once · last asked Aug 5 · Concept · Junior

  29. What steps would you take to pass data between view controllers in an iOS app?

    Asked once · last asked Aug 7 · Concept · Junior

  30. What does the `loadView` function do?

    Asked once · last asked Sep 30 · Concept · Mid-level

    Other ways it was asked
    • “When should I write `loadView`, and what is its significance?”

SwiftUI interview questions

For SwiftUI, the questions focus on state ownership, view identity, lists, lazy containers, GeometryReader, view builders, and UIKit integration. 20 questions.

  1. How can you make a model conform to Identifiable so a SwiftUI List does not need an explicit ID parameter?

    Asked once · last asked Aug 19 · Concept · Mid-level

    Other ways it was asked
    • “Why can't a SwiftUI List itself conform to Identifiable to avoid specifying an ID for its elements?”
    • “In a SwiftUI List, should the model conform to Identifiable rather than the view model?”
  2. How can you use GeometryReader to measure a scroll view's position or content height?

    Asked once · last asked Feb 27 · Tooling · Senior

    Other ways it was asked
    • “Where should you place GeometryReader to measure a scroll view's position?”
  3. Why does a SwiftUI List require an ID for its elements?

    Asked once · last asked Aug 19 · Concept · Mid-level

    Other ways it was asked
    • “What is the purpose and expected type of the ID passed to a SwiftUI List?”
  4. How does GeometryReader's placement affect whether it reports screen coordinates or scroll-view coordinates?

    Asked once · last asked Feb 27 · Concept · Senior

  5. How would you measure the width of a button with dynamic, unknown-length text using GeometryReader without disrupting the layout, and where would you place it?

    Asked once · last asked Feb 27 · Tooling · Senior

  6. How do the child views of a LazyVStack behave when it is placed inside a ScrollView?

    Asked once · last asked Feb 27 · Concept · Senior

  7. Does LazyVStack reuse cells under the hood?

    Asked once · last asked Feb 27 · Concept · Senior

    Other ways it was asked
    • “Does LazyVStack reuse views in a way similar to UITableView?”
  8. How do AnyView and ViewBuilder differ in handling view types, compiler behavior, and runtime performance?

    Asked once · last asked Feb 27 · Concept · Senior

    Other ways it was asked
    • “What is the difference between AnyView and ViewBuilder, and which is more efficient in Swift 6?”
    • “Can AnyView wrap different view types, and how does its performance compare with ViewBuilder?”
    • “Which is easier for the compiler to handle, AnyView or ViewBuilder, and what kinds of issues can arise at compile time or runtime?”
  9. Can ViewBuilder handle a switch statement that returns different SwiftUI view types?

    Asked once · last asked Feb 27 · Concept · Senior

  10. Why can complex SwiftUI view expressions be difficult for the compiler to type-check?

    Asked once · last asked Feb 27 · Concept · Senior

  11. When embedding SwiftUI inside a UIKit navigation controller, how do you manage navigation state so back gestures, deep links, and programmatic pushes stay consistent?

    Asked once · last asked Aug 4 · Design · Senior

  12. Why does SwiftUI use structs instead of classes for views?

    Asked once · last asked Aug 17 · Concept · Mid-level

Show 6 more
  1. What is the difference between LazyVStack and VStack?

    Asked once · last asked Aug 19 · Concept · Mid-level

  2. What is GeometryReader used for in SwiftUI?

    Asked once · last asked Feb 27 · Concept · Mid-level

    Other ways it was asked
    • “What practical techniques or tips do you use when working with GeometryReader in SwiftUI?”
  3. What is ViewBuilder used for in SwiftUI?

    Asked once · last asked Feb 27 · Concept · Mid-level

  4. What does @State do in SwiftUI?

    Asked once · last asked Aug 19 · Concept · Junior

  5. What is the @Published property wrapper used for in SwiftUI?

    Asked once · last asked Aug 19 · Concept · Junior

  6. What are the different ways to display a list in SwiftUI?

    Asked once · last asked Aug 19 · Concept · Junior

Swift concurrency and Combine interview questions

Questions on asynchronous work cover async/await, tasks, actors, cancellation, Sendable, streams, Combine publishers, threading, and legacy code integration. 16 questions.

  1. How would you use Combine to send a request whenever the text in a TextField changes, and which operators would you use?

    Asked once · last asked Feb 27 · Tooling · Mid-level

  2. What is Task in Swift Concurrency, and when would you use it?

    Asked once · last asked Feb 27 · Concept · Mid-level

  3. What is Task.yield used for in Swift Concurrency?

    Asked once · last asked Feb 27 · Concept · Senior

  4. How does AsyncStream differ from a Combine publisher?

    Asked once · last asked Feb 27 · Concept · Senior

  5. What happens when two different parts of an app subscribe to the same AsyncStream?

    Asked once · last asked Feb 27 · Concept · Senior

  6. What is Sendable in Swift, and what does it guarantee?

    Asked once · last asked Feb 27 · Concept · Senior

  7. Does the Sendable protocol define any methods or properties that conforming types must implement?

    Asked once · last asked Feb 27 · Concept · Senior

  8. Which Swift types can conform to Sendable, and which conform automatically?

    Asked once · last asked Feb 27 · Concept · Senior

    Other ways it was asked
    • “Can both structures and classes conform to Sendable, and which types conform to it by default?”
    • “Which kinds of Swift types can conform to Sendable?”
  9. When structuring concurrency in a modern iOS app using async/await, when do you use Task, TaskGroup, and MainActor?

    Asked once · last asked Aug 4 · Concept · Senior

  10. In Swift concurrency, what's the difference between cancellation and throwing an error, and how do you make your async functions responsive to cancellation?

    Asked once · last asked Aug 4 · Concept · Senior

  11. In a SwiftUI screen that starts async work in .task, how do you prevent stale results from an earlier task updating state after the user navigates away or triggers a refresh?

    Asked once · last asked Aug 4 · Scenario · Senior

  12. Explain concurrency in Swift, including how to run tasks in parallel without blocking the main thread.

    Asked once · last asked Aug 12 · Concept · Senior

Show 3 more
  1. What is the benefit of using async/await over traditional completion handlers?

    Asked once · last asked Aug 17 · Concept · Mid-level

  2. What is the actor keyword in Swift, and why do we use it?

    Asked once · last asked Aug 17 · Concept · Senior

  3. How do you ensure network API work runs on a particular thread in an iOS app?

    Asked once · last asked Oct 12 · Concept · Mid-level

iOS architecture, networking and Core Data interview questions

App architecture and data questions cover MVC, MVVM, VIPER, coordinators, dependency injection, data flow, URLSession, Codable, error handling, and Core Data. 17 questions.

  1. How does the MVC pattern work when using UITableView?

    Asked once · last asked Aug 5 · Concept · Junior

  2. How would you use the MVVM pattern with UICollectionView in an iOS app?

    Asked once · last asked Aug 7 · Scenario · Mid-level

  3. How would you apply dependency injection in an iOS project?

    Asked once · last asked Aug 7 · Scenario · Mid-level

  4. How does VIPER work, how does it compare with MVVM, and when would you use it?

    Asked once · last asked Aug 17 · Concept · Mid-level

    Other ways it was asked
    • “What is VIPER architecture, and when would you use it?”
    • “What is the difference between VIPER and MVVM?”
  5. What is a persistent container in Core Data?

    Asked once · last asked Aug 17 · Concept · Mid-level

  6. What is the difference between Core Data and a database?

    Asked once · last asked Aug 17 · Concept · Mid-level

  7. Create an Xcode project that fetches data from a URL and displays the results in a list.

    Asked once · last asked Aug 19 · Write code · Mid-level

  8. How would you structure a networking layer for API calls in an iOS app, and when would you use a separate data service?

    Asked once · last asked Aug 19 · Design · Senior

  9. What is a flow coordinator, or navigation coordinator, in Clean Architecture?

    Asked once · last asked Sep 30 · Concept · Senior

  10. How would you integrate a network API using URLSession?

    Asked once · last asked Oct 12 · Tooling · Mid-level

  11. How would you model distinct custom error messages for different error types in Swift?

    Asked once · last asked Oct 12 · Concept · Mid-level

  12. What are the benefits and trade-offs of instantiating all repositories in a mobile app's root routing view and having view models depend only on protocols?

    Asked once · last asked Oct 19 · Design · Mid-level

    Other ways it was asked
    • “Why did you use AppRouteView to instantiate all repositories and have view models depend only on protocols? What benefits and trade-offs did that create?”
Show 5 more
  1. In Swift, when do you need to declare properties in CodingKeys?

    Asked once · last asked Oct 19 · Concept · Mid-level

  2. What does Codable mean in Swift?

    Asked once · last asked Oct 12 · Concept · Junior

    Other ways it was asked
    • “What is Codable in Swift, and how do you use it?”
    • “Can you give an example of using Codable in Swift?”
  3. What are the key considerations in mobile application development?

    Asked once · last asked Apr 11 · Concept · Junior

  4. In MVC on iOS, how do you decide what logic belongs in the view controller versus the model?

    Asked once · last asked Aug 4 · Concept · Mid-level

  5. What does the object model mean in Core Data?

    Asked once · last asked Aug 17 · Concept · Junior

iOS app lifecycle and platform APIs interview questions

Platform topics include app lifecycle, background work, notifications, deep links, security, Keychain storage, biometrics, and Core ML. 14 questions.

  1. How would you train a machine learning model using Xcode or Python scripts, and integrate it with Core ML?

    Asked once · last asked Feb 27 · Tooling · Mid-level

  2. How would you keep an iOS app listening in the background, and how would you restore its work if iOS terminates it?

    Asked once · last asked Feb 27 · Scenario · Senior

  3. What iOS mechanisms can wake an app in the background, and when can they be used?

    Asked once · last asked Feb 27 · Concept · Senior

  4. How would you integrate biometric matching with CNN models in a Swift iOS application?

    Asked once · last asked Jul 1 · Scenario · Mid-level

  5. How would you keep encrypted biometric images and temporary buffers secure and efficient in a Swift iOS application?

    Asked once · last asked Jul 1 · Scenario · Mid-level

  6. How do you create and use a timer in an iOS app, and what steps are involved?

    Asked once · last asked Jul 29 · Tooling · Junior

  7. How do deep links and universal links work in iOS?

    Asked once · last asked Aug 17 · Concept · Mid-level

  8. How do you secure an API service from an iOS application?

    Asked once · last asked Sep 30 · Scenario · Senior

  9. What security practices do you implement in an iOS application?

    Asked once · last asked Sep 30 · Scenario · Senior

    Other ways it was asked
    • “What security measures should you implement in a banking iOS application?”
  10. Do you need to encrypt an authentication token before storing it in the iOS Keychain?

    Asked once · last asked Oct 12 · Concept · Mid-level

  11. What are the security implications of storing an authentication token in UserDefaults?

    Asked once · last asked Oct 12 · Concept · Mid-level

  12. How does the iOS app lifecycle work, how are functions executed within it, and what should developers keep in mind?

    Asked once · last asked Oct 19 · Concept · Mid-level

Show 1 more
  1. How would you handle iOS or Android platform constraints when implementing real-time camera processing with machine learning?

    Asked once · last asked Oct 24 · Behavioral · Senior

    Other ways it was asked
    • “What was the hardest platform constraint you hit on iOS or Android while running real-time camera plus ML, and how did it shape your implementation?”

iOS testing, debugging and performance interview questions

Testing and performance questions cover test planning, UI tests, production diagnostics, code quality, memory use, scrolling, startup time, and build speed. 9 questions.

  1. When scrolling on a heavy screen stutters, how do you isolate whether the bottleneck is main-thread work, Auto Layout, image decoding, or excessive view creation, and what would you measure first?

    Asked once · last asked Jul 20 · Scenario · Senior

    Other ways it was asked
    • “When a scroll to a heavy screen stutters, how do you isolate whether the bottleneck is main-thread work, Auto Layout, image decoding, or excessive view creation, and what would you measure first?”
  2. In a UITableView or UICollectionView showing remote images, what specific steps do you take to prevent off-screen image decode and resizing from blocking the main thread while keeping memory stable?

    Asked once · last asked Jul 20 · Tooling · Senior

  3. What can affect a project's compile time, and how can access control in Swift help improve it?

    Asked once · last asked Jul 29 · Concept · Mid-level

  4. What practices and tools do you use to maintain quality in a Swift codebase?

    Asked once · last asked Oct 9 · Tooling · Mid-level

  5. How do you write and use UI tests for an iOS application?

    Asked once · last asked Oct 20 · Tooling · Mid-level

  6. How do you detect bugs in a production iOS application?

    Asked once · last asked Oct 20 · Scenario · Senior

    Other ways it was asked
    • “How do you detect crashes in a production iOS application?”
  7. How would you investigate a problem in an iOS application's login flow?

    Asked once · last asked Oct 20 · Scenario · Mid-level

  8. How would you improve iOS app size or startup performance, and how would you measure the results?

    Asked once · last asked Oct 23 · Scenario · Senior

iOS CI/CD and App Store interview questions

From feature delivery to store submission, these questions cover team coordination, signing, provisioning, release automation, review policies, and urgent fixes. 7 questions.

  1. How do you handle CI/CD for an iOS application?

    Asked once · last asked Oct 12 · Tooling · Senior

  2. How would you coordinate work across 25 iOS developers who are changing code daily?

    Asked once · last asked Oct 20 · Scenario · Senior

  3. How do you manage code signing, provisioning, and release automation for iOS at scale?

    Asked once · last asked Oct 23 · Tooling · Senior

  4. Can Apple reject an app for storing streamed songs on disk?

    Asked once · last asked Feb 27 · Scenario · Mid-level

  5. How do you approach building a feature for iOS, from understanding the requirements through implementation?

    Asked once · last asked Oct 20 · Scenario · Mid-level

Kotlin Multiplatform and iOS interview questions

Kotlin Multiplatform questions cover native versus cross-platform choices, migration, shared code boundaries, Swift interoperability, platform differences, and working with Android teams. 16 questions.

  1. What challenges would you anticipate when migrating native mobile interfaces to SwiftUI and Jetpack Compose?

    Asked once · last asked Oct 6 · Behavioral · Senior

    Other ways it was asked
    • “How would you plan and prioritize a migration from legacy native mobile interfaces to SwiftUI and Jetpack Compose?”
    • “What challenges have you faced when migrating native mobile interfaces to SwiftUI and Jetpack Compose?”
    • “How did you build business support for migrating native mobile interfaces to SwiftUI and Jetpack Compose?”
  2. How do you integrate Kotlin Multiplatform business logic into an iOS app?

    Asked once · last asked Feb 12 · Scenario · Mid-level

  3. How can Swift consume suspend functions and Flows exposed by Kotlin Multiplatform?

    Asked once · last asked Feb 12 · Tooling · Senior

  4. What tools can make Kotlin Multiplatform interoperability with Swift easier, and what database technologies can be used in a Kotlin Multiplatform app?

    Asked once · last asked Feb 12 · Tooling · Mid-level

  5. What memory-management differences between the JVM and iOS should Kotlin Multiplatform developers account for?

    Asked once · last asked May 4 · Concept · Senior

  6. In what scenarios would you share functionality in Kotlin Multiplatform versus implement it natively on iOS to avoid memory-management issues related to object lifetimes?

    Asked once · last asked May 4 · Scenario · Senior

  7. How would you implement and test Kotlin Multiplatform code for iOS and coordinate this work with iOS specialists?

    Asked once · last asked May 19 · Tooling · Mid-level

    Other ways it was asked
    • “How have you implemented and tested Kotlin Multiplatform code for iOS, and how did you coordinate with iOS specialists?”
  8. When a Kotlin Multiplatform feature does not work on iOS, how do you investigate whether to fix it in your implementation or involve an iOS specialist?

    Asked once · last asked May 19 · Scenario · Mid-level

  9. What is the main difference between testing an Android application and an iOS application?

    Asked once · last asked Aug 4 · Concept · Mid-level

  10. How would you approach migrating a mobile app from UIKit to SwiftUI and then to Kotlin Multiplatform?

    Asked once · last asked Oct 19 · Scenario · Senior

  11. How do mobile teams share code between iOS and Android, and when might they migrate to Kotlin Multiplatform?

    Asked once · last asked Oct 19 · Concept · Senior

  12. How do you decide whether Android and iOS apps should use different architectures, and what trade-offs guide that choice?

    Asked once · last asked Oct 23 · Design · Senior

Show 3 more
  1. How do you keep feature parity between Android and iOS without duplicating every effort twice, and where does that approach break down?

    Asked once · last asked Oct 23 · Design · Senior

  2. Can you tell me the difference between native and cross-platform mobile development?

    Asked once · last asked Aug 12 · Concept · Junior

  3. What are the basic differences between an iOS developer and an Android developer, and what operating systems do they use?

    Asked once · last asked Oct 19 · Concept · Junior

How this list is made

Every question here was asked by a real interviewer in a real job interview that a candidate ran MeetAssist in. After the call, the interviewer's questions are pulled from the transcript. Practice sessions, tests, exams and anything that was not a job interview are dropped.

Questions are rewritten so they make sense on their own: names of people, employers and clients are removed, and speech-to-text mistakes are fixed. Small talk, logistics and questions about one candidate's own résumé are left out. Rephrasings of the same question are merged, and the count is the number of different interviews it came up in.

The interviews come from candidates who use MeetAssist, so they lean towards software, data and AI roles: the shares describe these interviews, not every iOS and Swift interview. Answers to the most asked questions are written and checked by an editor; a "common mistake" is shown only when reviews of real answers in these interviews show it, with the count.

34 interviews, 18 candidates, Jan 2026 to Oct 2026. Updated every month with new interviews.