Skip to content
tezvyn:

iOS & Swift

SwiftUI, UIKit, Xcode, Swift language, Apple platforms

310 bites

Test yourself: Top 30 iOS & Swift interview questionsMultiple choice, with the correct answer and why it is correct on every question. Free, no sign-in.

Everything in iOS & Swift, page 2

intermediate1 min read

map versus compactMap versus flatMap

Map transforms each element one-to-one; compactMap transforms then drops nils; flatMap transforms to sequences then concatenates.

advanced2 min read

Debugging a closure capture leak in a third-party library

Use the Memory Graph Debugger to inspect retain paths, the Leaks and Allocations instruments, and malloc stack logging; trace the cycle before patching.

advanced2 min read

Verifying and avoiding copy-on-write overhead

Confirm extra copies via isKnownUniquelyReferenced or instruments and the retain trace; ensure unique references, mutate inout/in place, reserveCapacity, avoid aliasing.

advanced1 min read

The dynamic keyword and message dispatch

Dynamic forces Objective-C message dispatch via objc_msgSend, enabling KVO and swizzling, at the cost of skipping inlining and devirtualization.

intermediate1 min read

dispatch_async versus Task.detached for offloading work

Dispatch_async submits a closure to a queue; Task.detached starts an unstructured async task off the current actor without inheriting context.

intermediate1 min read

What an autoreleasepool is and when to add one manually

An autorelease pool holds objects until it drains; wrap tight loops creating many temporary ObjC objects in autoreleasepool to cap peak memory.

intermediate1 min read

Exposing Swift classes to Objective-C

Subclass NSObject or mark members @objc, import the generated ModuleName-Swift.h, and accept that Swift-only types like enums with associated values cannot cross.

intermediate1 min read

Struct versus class performance and memory tradeoffs

Structs are value types, often stack-allocated with no ARC; classes are heap-allocated reference types with retain counts.

easy1 min read

Diagnosing choppy scrolling performance

Reach for Instruments, especially the Time Profiler and Core Animation/Hangs tools, and look for main-thread work and dropped frames.

easy1 min read

Purpose and setup of an Objective-C bridging header

The bridging header imports ObjC headers into Swift; Xcode auto-creates it or you add it manually and set the build setting.

advanced2 min read

Privacy manifests and the app privacy report

PrivacyInfo.xcprivacy declares collected data types, tracking, and reasons for required-reason APIs; Xcode aggregates your manifest plus SDK manifests into a privacy report.

advanced2 min read

Securely managing signing assets in CI/CD

Keep encrypted certificates and profiles in a controlled store or fastlane match repo, inject the decryption key and credentials via CI secrets, install into a temporary keychain per run.

advanced1 min read

App Thinning: slicing, bitcode, and on-demand resources

Slicing delivers only the assets and code a device needs; bitcode let Apple recompile and re-optimize; on-demand resources defer large assets until requested.

intermediate1 min read

Automatic signing: benefits and limitations on teams

Automatic signing creates certificates and profiles on demand and keeps them in sync, easing local setup; limits include proliferating certificates, weak CI fit, and less control for complex entitlements.

intermediate1 min read

Phased release to limit update risk

Enable phased release so an approved update reaches a growing percentage of automatic-update users over seven days; pause if metrics spike.

intermediate1 min read

Using dSYM files to symbolicate crash reports

A dSYM maps stripped memory addresses back to function names, files, and line numbers; matched by UUID it symbolicates the report to readable frames.

intermediate1 min read

Ad Hoc versus external TestFlight distribution

Ad hoc installs on pre-registered device UDIDs without Apple review; external TestFlight reaches many testers via the app but needs Beta App Review.

easy1 min read

Archiving and uploading a build to TestFlight

Select a real-device or Any iOS destination, Product Archive, then in the Organizer distribute to App Store Connect, where the build appears for internal TestFlight testers after processing.

easy2 min read

App ID, provisioning profile, and signing certificate

The certificate proves who you are, the App ID identifies the app and its capabilities, and the provisioning profile binds certificate, App ID, and allowed devices so iOS trusts the install.

advanced2 min read

Developing a local Swift Package alongside an app

Add the package as a local dependency by dragging its folder into the project or workspace, so Xcode references the source on disk and rebuilds edits immediately.

We are hiring for this. Every open role lists the topics its interview covers, so you can prepare for the real thing rather than guessing.

See open roles