- iOS – Interview Questions
The questions an iOS role actually asks, answered against the twenty-one lessons before this one. Struct versus class, what @State really stores, how SwiftUI decides to redraw, retain cycles in closures, what @MainActor guarantees, actor reentrancy, and how you would make a screen testable. Short answers, with the reasoning.
- iOS – Build Configuration, CI and Shipping
xcconfig files so a build setting is reviewable, Info.plist keys a custom plist makes you own, signing and what actually needs an Apple account, a CI workflow that checks the committed project still matches its manifest, and the archive-to-App-Store path with the rejections worth avoiding.
- iOS – Previews, Linting and the Tools Around the Code
A preview that needs a running backend is a preview nobody uses. Stub repositories so every screen renders instantly — including its failure state — plus SwiftLint and SwiftFormat configured to catch what review keeps catching, and the Instruments templates worth knowing before you need them.
- iOS – Testing an iOS App
What to test and what to skip. Pure rules first because they cost nothing, a real URLSession against a stubbed URLProtocol so the assertions are about the bytes you would send, hand-written doubles over a mocking framework, testing async and main-actor code, and why @MainActor on an XCTestCase is wrong.
- iOS – Accessibility
A drawn control carries no meaning. Labels, values, traits and the difference between them, combining a row into one announcement and the trap that hides its button, Dynamic Type, touch target size, and how to check any of it in about a minute — with the real controls in this app that needed each fix.