Overview
You’ve spent the semester building your SwiftUI toolkit. This week, you choose what to learn next.
Instead of everyone completing the same lesson, you’ll pick one of four paths based on the skill that interests you most. Each path introduces something we haven’t explored deeply in class and asks you to use it to create a small, polished experience.
This is intentionally not a step-by-step tutorial. You have the textbook, your previous projects, AI coding tools, documentation, and the internet at your disposal. Your job is to explore a new tool and figure out how to make it work.
| Path | Focus | Your Final Product |
| Smooth Move | Animations + Transitions | An interactive user experience with purposeful motion |
| Find Your Way | Navigation | A multi-screen user experience with polished navigation |
| That Looks Familiar | UIKit + SwiftUI | Incorporate a functional UIKit component into a user experience |
| Design it First | Figma + AI | Create an interactive user experience prototype through an AI-to-Figma workflow |
No Matter Which Path You Choose…
Your finished project should demonstrate roughly the same level of exploration and effort. Every path should result in a small but complete experience rather than a single isolated experiment.
- Create a coherent concept with a clear purpose rather than simply reproducing the textbook example.
- Include at least three meaningful screens, states, or moments in the experience.
- Make the new technique the star of the project. We should immediately be able to tell what you explored.
- Customize the visual design so the result feels like your project.
- Be prepared to briefly explain what you built, what was new to you, and one thing you figured out along the way.
Path 1: Make It Move
Animation + Transitions
Read: Chapter 9 — Basic Animations and Transitions
SwiftUI can animate changes to your interface with surprisingly little code. Chapter 9 explores implicit and explicit animations, rotation effects, progress indicators, shape transformations, and animated view transitions.
Your Challenge: Build a small interactive experience where motion helps communicate what is happening.
For example, you might create a habit tracker where completing a task triggers a celebration, a loading experience that transforms into completed content, an interactive onboarding sequence, a progress tracker, a card that expands into additional information, or something entirely different.
Your finished experience should contain: at least three distinct animated moments or states; at least one animation triggered by user interaction; at least one transition where content appears, disappears, or changes; and a consistent visual concept tying the experience together.
Starting Point
Chapter 9 is your primary resource. Pay particular attention to implicit versus explicit animation, .animation, withAnimation, transition effects, rotationEffect, and changing view properties based on state.
Stretch it: Explore a technique beyond Chapter 9, such as matchedGeometryEffect, PhaseAnimator, KeyframeAnimator, or navigation transitions.
Path 2: Find Your Way
Navigation
Read: Chapter 11 — Working with Navigation UI and Navigation Bar Customization
You have encountered navigation already, but this path asks you to treat navigation as a design problem, not just a way to get from Screen A to Screen B. Chapter 11 covers navigation interfaces, NavigationLink, passing information into detail views, navigation-bar customization, and custom back-button experiences.
Your Challenge: Create a small app where users can explore a collection of content and move naturally between multiple levels of information.
For example, you might build a campus guide, restaurant guide, streaming app, travel planner, museum collection, recipe book, or another concept.
Your finished experience should contain: at least three distinct views; navigation from a collection or menu into individual content; data passed from one view into another rather than hard-coding an entirely separate destination for every item; and intentional customization of the navigation experience.
Starting Point
Chapter 11 is your primary resource. The Random Trivia API project is also a useful reminder of how a list of content can lead into a detail screen.
Stretch it: Add multiple navigation levels, programmatic navigation, a custom navigation bar, or a combination of navigation and modal presentation.
Path 3: That Looks Familiar
Integrating UIKit
Read: Chapter 23 — Integrating UIKit with SwiftUI Using UIViewRepresentable
SwiftUI is Apple’s newer UI framework, but it does not exist in isolation. UIKit has been used to build iOS interfaces for years, and SwiftUI provides tools that allow developers to bring UIKit components into a SwiftUI project. The textbook introduces this through UIViewRepresentable and a UIKit search bar that communicates with SwiftUI.
Your Challenge: Build an experience that includes one meaningful piece of UIKit functionality. The UIKit component should serve an actual purpose inside your app rather than appearing as a disconnected demo.
Example: The textbook’s search bar is a great starting point. You could build a searchable collection of movies, books, restaurants, songs, destinations, or another set of content. You can also investigate another UIKit component that interests you.
Your finished experience should contain: at least one UIKit component successfully wrapped for use inside SwiftUI; information or interaction flowing between UIKit and SwiftUI; and enough surrounding interface that the component feels like part of an actual product.
Starting Point
Chapter 23 walks through UIViewRepresentable, capturing search text, responding to the cancel button, and performing a search. That’s the conceptual foundation of this path.
Stretch it: Find a UIKit component the textbook does not use and determine how to wrap it yourself.
Path 4: Design It First
Figma + AI
Instead of starting in Xcode, you’ll use Codex or Claude Code as your development partner and Figma as your destination. Connect your coding agent to Figma and use it to help create and iterate on an app concept.
The important part isn’t simply asking AI to “make me an app.” Your job is to direct the process: define the experience, evaluate what the agent creates, improve your prompts, make design decisions, and refine the result.
Your Challenge: Design a polished prototype for a small native app.
Examples: a productivity tool, health tracker, travel app, or something else you care about.
Begin by describing the product, audience, visual direction, and essential interactions to your coding agent. Use your Figma connection to build the interface, then iterate.
Your finished experience should contain: at least four polished mobile screens; a consistent design system across screens; a clear user flow connecting those screens; an interactive Figma prototype that demonstrates that flow; and visible evidence that you iterated rather than accepting the first AI-generated result.
Think Like a Creative Director
Your agent can generate. You still make the decisions.
Pay attention to hierarchy, spacing, typography, color, repeated components, navigation patterns, accessibility, and whether the interface actually makes sense for someone using it.
Stretch it: Create reusable Figma components, establish variables/styles, explore multiple design directions before choosing one, or ask your coding agent to translate part of the finished design into SwiftUI.
Submission
Submit your project/prototype plus a short README containing the name of the path you chose, a 2–3 sentence description of what you built, the new technique(s) you explored, and one challenge you encountered or problem you solved.
For Paths 1–3, submit the Xcode project. For Path 4, submit the Figma prototype link and a screenshot or brief record of your AI-assisted workflow.