Skip to content
tezvyn:

iOS & Swift

SwiftUI, UIKit, Xcode, Swift language, Apple platforms

180 bites

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

Concepts in iOS & Swift, page 6

MapKit: Putting Apple Maps in Your iOS App
easy2 min read

MapKit: Putting Apple Maps in Your iOS App

MapKit is the toolkit for embedding Apple's interactive maps directly into your app. Use it to show user location, display points of interest, or provide directions. The footgun is rendering too many pins at once; use clustering to keep the UI responsive.

easy2 min read

UserNotifications Framework: iOS Alert Gatekeeper

UserNotifications is the gatekeeper between your app and the lock screen. You use it to request permission and schedule local or push alerts on iOS. Send a notification before authorization and the system silently drops it.

AVFoundation: Apple's Toolkit for Audio and Video
easy2 min read

AVFoundation: Apple's Toolkit for Audio and Video

AVFoundation is Apple's low-level toolbox for audio and video. Use it for custom camera UIs, video editing, or complex audio playback. The main footgun is its complexity; managing sessions, inputs, and outputs on the correct threads is notoriously difficult.

Core ML: On-Device Machine Learning for Apple Apps
intermediate2 min read

Core ML: On-Device Machine Learning for Apple Apps

Core ML runs pre-trained machine learning models directly on Apple devices, enabling fast, private, and offline AI. It's used for features like real-time image recognition or text analysis. The footgun: Core ML only runs models; it doesn't train them.

Vision Framework: Computer Vision on Apple Devices
intermediate2 min read

Vision Framework: Computer Vision on Apple Devices

The Vision framework is your on-device toolkit for understanding images and video. Use it for face detection, text recognition, or barcode scanning without needing ML expertise. Footgun: don't run requests on every frame; it drains the battery.

StoreKit
intermediate1 min read

StoreKit

StoreKit is Apple's framework for in-app purchases and subscriptions. It manages product lookup, presenting the payment sheet, processing transactions, and restoring purchases, so apps never touch raw payment data directly.

HealthKit: The Secure Vault for User Health Data
intermediate2 min read

HealthKit: The Secure Vault for User Health Data

HealthKit is a secure, centralized database for user health data, not a sensor. Your app requests permission to read or write data like steps or workouts, which the OS manages. The footgun is assuming access; users grant permissions per data type.

iOS Geofencing: Your App's Virtual Fence
intermediate2 min read

iOS Geofencing: Your App's Virtual Fence

Geofencing sets a virtual perimeter and lets iOS wake your app when a user enters or exits, without constant tracking. Use it for location-based reminders or context-aware features.

ARKit: Building Augmented Reality on Apple Devices
advanced2 min read

ARKit: Building Augmented Reality on Apple Devices

ARKit is Apple's framework for blending digital objects with the real world using a device's camera. Use it for games, virtual furniture previews, or measurement tools.

Core Bluetooth: The Central vs. Peripheral Model
advanced2 min read

Core Bluetooth: The Central vs. Peripheral Model

Core Bluetooth lets your app talk to BLE devices by acting as a "Central" (scanner) or "Peripheral" (advertiser). Use it to read from sensors or make your app discoverable.

AVCaptureSession
advanced2 min read

AVCaptureSession

AVCaptureSession is the central coordinator in AVFoundation that connects camera and microphone inputs to outputs like a preview layer, photo capture, movie recording, or real time frame processing.

advanced2 min read

Apple's Natural Language Framework

Apple's Natural Language Framework turns raw strings into structured meaning on-device without network calls. Tokenize queries or extract entities from user text locally. It is not infallible; heavy synchronous tagging on the main thread freezes your UI.

XCTest: Apple's Built-in Testing Framework
easy2 min read

XCTest: Apple's Built-in Testing Framework

XCTest is your built-in toolbox for writing unit, performance, and UI tests in Xcode. Use it to verify individual functions or simulate user interactions. A common footgun is writing tests that depend on each other; they must be independent to be reliable.

XCTAssert: The Pass/Fail Gatekeeper of Your Tests
easy2 min read

XCTAssert: The Pass/Fail Gatekeeper of Your Tests

XCTAssert functions are the gatekeepers of your tests, asserting if code behaves as expected. Use them to validate conditions like equality (XCTAssertEqual) or truth (XCTAssertTrue).

intermediate2 min read

Test-Driven Development: Write the Test First

TDD flips the script: write a failing test before the feature code, forcing a testable design. It's ideal for new Swift components with clear requirements, ensuring every line of code serves a purpose.

Mocking: Faking Dependencies in Unit Tests
intermediate2 min read

Mocking: Faking Dependencies in Unit Tests

A mock is a stunt double for a real object in your unit tests, letting you control its behavior. Use it to fake dependencies like network clients for fast, predictable tests. The footgun: over-mocking can create tests that pass but miss real integration bugs.

XCUITest: Automating Your App's User Interface
intermediate1 min read

XCUITest: Automating Your App's User Interface

XCUITest is like a robot user for your app, tapping buttons and verifying what's on screen. It automates testing of critical flows like login or checkout to prevent regressions.

XCUIElementQuery: The Blueprint for Finding UI Elements
intermediate2 min read

XCUIElementQuery: The Blueprint for Finding UI Elements

An XCUIElementQuery is a recipe for finding UI, not the element itself. It describes a search that runs only when you interact with the result. Use it in XCUITest to locate views for automated tests. The footgun: thinking a query finds an element on creation.

Testing Async Code with XCTestExpectation
intermediate2 min read

Testing Async Code with XCTestExpectation

XCTestExpectation is a stopwatch for your tests, pausing them to wait for asynchronous work like a network call to finish. Use it for testing code with completion handlers. The footgun is forgetting to fulfill() the expectation, causing a timeout failure.

Xcode Code Coverage: Measuring Test Effectiveness
intermediate2 min read

Xcode Code Coverage: Measuring Test Effectiveness

Code coverage isn't a grade, but a map of untested code. Use it in Xcode to find gaps in your logic before shipping. The footgun: high coverage doesn't mean your tests are good, just that the lines were executed, potentially missing key assertions.

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