Accessibility begins with semantic structure. Native controls already communicate roles and interaction. Custom compositions may need children combined, decorative images hidden, or labels and values added so the spoken interface conveys the same meaning as the visual one. An accessibility label names an element; a value communicates its current state; a hint explains a non-obvious result sparingly.
Adaptive design responds to available space and user settings rather than detecting one device model. Support Dynamic Type, sufficient contrast, VoiceOver order, Reduce Motion, button shapes, localization, keyboard input, and different window widths. Use flexible layout first and introduce ViewThatFits or size-class choices when content genuinely needs another arrangement.
The mini project is a learning tracker with a lesson list, detail navigation, completion state, search, an editor sheet, async loading simulation, animation, and accessible progress. Build it in vertical slices: model and sample data, list states, navigation and detail, editing, async behavior, then accessibility and adaptive review.