Going through https://developer.apple.com/tutorials/sample-apps
Image | Tutorial | Learnings |
---|---|---|
About me | Tabs, Data model, modifiers, aspect ratios | |
Choose your own story | Navigation view, links, popping to root has many different solutions | |
Date planner | StateObject, EnvironmentObject, foregroundStyle, Identifiable, split view navigation and placeholder labels, trailing commas on lists | |
Organising with Grids | Honeycomb grid layout | |
Editing Grids | Dynamic number of items per row, Pluraliser, EditButton |
|
Image Gallery | AsyncImage , PhotoPicker, Task { @MainActor in } syntax |
|
Meme Creator | @MainActor on class level warning and workaround, async await for network calls, FetchError enum for custom error handling, a11y on images |
|
Bubble Level | CoreMotion, beginGeneratingDeviceOrientationNotifications , device orientation handling, blendModes plusLighter and difference , tuple declaration syntax (roll, pitch) = |
|
Seismometer | Canvas , rotationEffect anchor, Slider min and max value labels |
|
Recognizing Gestures | simultaneousGesture to satisfy multiple conflicting gestures (magnify and rotation), Tap, LongPress, Drag, Rotation Magnification gestures, GestureState , randomize range syntax CGFloat.random(in: 40...250) |
|
Animating Shapes | Experimentation with animations to create explosions, etc |