Skip to content
tezvyn:

IOS

317 bites tagged IOS — interview questions with model answers, and 60-second explainers.

iOS & Swift2 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. secret handling for CI signing.

iOS & Swift1 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. download-size optimization mechanisms.

iOS & Swift1 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. managing signing across a team.

iOS & Swift1 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. risk-managed rollout knowledge.

iOS & Swift1 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. crash symbolication knowledge.

iOS & Swift1 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. choosing the right beta channel.

iOS & Swift1 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. the release-build distribution flow.

iOS & Swift2 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. the code-signing trust chain.

iOS & Swift2 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. local package development workflow.

iOS & Swift1 min read

Static library versus dynamic framework linking

Static code is copied into the executable at build time; dynamic is loaded at launch by dyld. Trade-off: static bloats the binary but avoids load cost; many dynamic frameworks slow launch. linking models and their runtime cost.

iOS & Swift1 min read

Modularizing a monolithic iOS app

Extract low-dependency, high-reuse leaf code first behind clear interfaces, enforce boundaries, iterate inward. incremental modularization strategy.

iOS & Swift1 min read

Package.swift manifest: library vs executable products

The manifest declares name, targets, dependencies, and products; a library is consumed by other code while an executable produces a runnable binary with an entry point. understanding SPM package structure.

iOS & Swift1 min read

Adding a Swift Package dependency in Xcode

Add via File menu, paste the repo URL, choose a version rule like up-to-next-major, link the product to your target. basic SPM workflow knowledge.

iOS & Swift1 min read

Driving app state via launch arguments in XCUITest

Pass launchArguments and launchEnvironment, read them at startup to seed auth and flags, bypassing slow UI steps. setting up test preconditions cheaply.

iOS & Swift1 min read

Diagnosing and stabilizing flaky XCUITests

Identify timing races, animations, network variance, and shared state; fix with expectations, controlled launch state, and isolation. handling nondeterminism in UI automation.

iOS & Swift1 min read

Code coverage and its pitfalls

It measures executed lines, surfaces untested paths, and guides where to add tests. understanding coverage as a signal, not a goal. treating 100 percent as proof of correctness or writing assertion-free tests just to inflate…

iOS & Swift1 min read

Locating XCUITest elements without accessibility identifiers

Query by type, label, predicate, or index; chain queries to narrow scope. navigating the element query hierarchy. relying on brittle absolute indices or visible label text that breaks under localization and layout changes.

iOS & Swift1 min read

Testing async code and completion handlers in XCTest

Create an expectation, fulfill it inside the completion handler, call wait with a timeout, or use async test methods. knowledge of waiting for asynchronous work in tests.

iOS & Swift1 min read

Unit test a ViewModel with a mocked NetworkService

Inject the protocol, supply a mock returning canned data, assert published state transitions. dependency injection and test isolation. hitting the real network or testing the concrete service instead of the ViewModel.

iOS & Swift2 min read

Unit test versus UI test in Xcode

Unit tests (XCTest) exercise code logic in-process and fast; UI tests (XCUITest) drive the app through the accessibility layer, slower and end-to-end. The scope and tooling difference between test types.

iOS & Swift2 min read

Recognize objects in ARKit with a Core ML model

Pull the frame's capturedImage, run Vision/Core ML off the main thread, raycast the 2D detection point into the scene, add an ARAnchor. Combining ARKit, Vision, and Core ML plus 2D-to-3D mapping.

iOS & Swift1 min read

React to location authorization changed in Settings

Implement locationManagerDidChangeAuthorization, which fires on launch and whenever status changes, read authorizationStatus, and start updates when authorized. Observing authorization changes via the delegate.

iOS & Swift1 min read

Apply a CIFilter to a live camera feed

Use AVCaptureSession with AVCaptureVideoDataOutput, receive CMSampleBuffers in captureOutput via the sample buffer delegate on a serial queue, filter with CIImage, drop late frames. Capturing raw frames and the queue discipline.

iOS & Swift1 min read

Display thousands of map annotations efficiently

Enable clustering via clusteringIdentifier, reuse views with dequeueReusableAnnotationView, render clusters with MKClusterAnnotation in viewFor. Annotation clustering and view reuse in MapKit.

Get IOS bites daily.

Five a day, five minutes, offline. With quizzes so it sticks.

Open testing — you’ll join as an early tester.