---
title: "iOS & SwiftUI Development"
slug: "ios"
category: "ios"
tags: ["moc", "ios", "swift", "swiftui"]
status: "stable"
last_updated: 2026-05-13
summary: "Best practices for SwiftUI, MapKit, and Core Data on iOS."
---

> SwiftUI-first iOS development. The Swift language page lives under [[coding/swift|Coding > Swift]]; this domain covers framework-specific patterns.

## Pages

- [[swiftui]]: View composition, observation, navigation, previews.
- [[mapkit]]: MapKit for SwiftUI: annotations, overlays, performance.
- [[mapkit-annotations]]: How to place Marker and Annotation items on a SwiftUI Map, build custom annotation views, cluster dense pins, and keep tap targets accessible.
- [[mapkit-overlays]]: Drawing routes, zones, and custom tile layers on a MapKit map using MapPolyline, MapPolygon, MKMapOverlayRenderer, and MKTileOverlay.
- [[mapkit-camera]]: Controlling MapCameraPosition in SwiftUI Map views: fly-to animations, follow-user mode, region framing, and reading camera state without performance overhead.
- [[mapkit-search]]: Using MKLocalSearch, MKLocalSearchCompleter, and CLGeocoder to find places, provide autocomplete, and resolve addresses in MapKit for SwiftUI.
- [[mapkit-look-around]]: Integrating Apple Maps Look Around into a SwiftUI app: fetching scenes, displaying LookAroundPreview, generating snapshots, and handling coverage gaps.
- [[core-data]]: Stack setup, concurrency, migrations.
- [[core-data-stack]]: Setting up NSPersistentContainer correctly: loading the store, configuring viewContext, choosing between a singleton and dependency injection, and wiring into SwiftUI.
- [[core-data-fetch-requests]]: Writing efficient Core Data fetch requests: predicate syntax, sort descriptors, fetch limits, batch fetching, and NSBatchUpdateRequest for bulk writes.
- [[core-data-concurrency]]: Safe Core Data concurrency in Swift 6: perform/performAndWait, context confinement, passing object IDs across contexts, and parent-child context patterns.
- [[core-data-migrations]]: Managing Core Data schema evolution: when lightweight migration suffices, how to write a custom mapping model, versioning best practices, and testing migrations in CI.
- [[core-data-swiftdata-comparison]]: Decision guide for choosing between Core Data and SwiftData: deployment targets, migration complexity, CloudKit, schema features, and coexistence patterns.

## Related MOCs

- [[coding/index|Coding]]
- [[backend/index|Backend]]
