A practical guide for building iOS applications using UIKit, SnapKit, and SwiftUI. Focuses on proven patterns and Apple platform conventions.
PurposeComponentMain sectionsUITabBarControllerDrill-downUINavigationControllerFocused taskSheet presentationCritical choiceUIAlertControllerSecondary actionsUIContextMenuInteractionList contentUICollectionView + DiffableDataSourceSectioned listDiffableDataSource + headerModeGrid layoutUICollectionViewCompositionalLayoutSearchUISearchControllerShareUIActivityViewControllerLocation (once)CLLocationButtonFeedbackUIImpactFeedbackGeneratorLinear layoutUIStackViewCustom shapesCAShapeLayer + UIBezierPathGradientsCAGradientLayerModern buttonsUIButton.ConfigurationDynamic textUIFontMetrics + preferredFontDark modeSemantic colors ( .systemBackground, .label)PermissionsContextual request + AVCaptureDeviceLifecycleUIApplication notifications
PurposeComponentMain sectionsTabView + tabItemDrill-downNavigationStack + NavigationPathFocused task.sheet + presentationDetentsCritical choice.alertSecondary actions.contextMenuList contentList + .insetGroupedSearch.searchableShareShareLinkLocation (once)LocationButtonFeedbackUIImpactFeedbackGeneratorProgress (known)ProgressView(value:total:)Progress (unknown)ProgressView()Dynamic text.font(.body) semantic stylesDark mode.primary, .secondary, Color(.systemBackground)Scene lifecycle@Environment(\.scenePhase)Reduce motion@Environment(\.accessibilityReduceMotion)Dynamic type@Environment(\.dynamicTypeSize)
.ignoresSafeArea() only for backgrounds)preferredFont(forTextStyle:) + adjustsFontForContentSizeCategory = true.headline, .body, .captionUIFontMetrics / Font.custom(_:size:relativeTo:).systemBackground, .label, .primary, .secondary).accessibilityLabel())@Environment(\.accessibilityReduceMotion)).accessibilitySortPriority())@SceneStorage, @State).destructive roleTopicReferenceTouch Targets, Safe Area, CollectionViewLayout SystemTabBar, NavigationController, ModalNavigation PatternsStackView, Button, Alert, Search, ContextMenuUIKit ComponentsCAShapeLayer, CAGradientLayer, Core AnimationGraphics & AnimationDynamic Type, Semantic Colors, VoiceOverAccessibilityPermissions, Location, Share, Lifecycle, HapticsSystem IntegrationMetal Shaders & GPUMetal Shader ReferenceSwiftUI HIG, Components, Patterns, Anti-PatternsSwiftUI Design GuidelinesOptionals, Protocols, async/await, ARC, Error HandlingSwift Coding Standards
Swift, SwiftUI, UIKit, SF Symbols, Metal, and Apple are trademarks of Apple Inc. SnapKit is a trademark of its respective owners.