Academy projects

スイ せかい

SwiSekai

Learn Swift in another world.

A Mac app that turns the grind of learning Swift into an adventure: a quest map of lessons, quizzes that unlock the path, projects you actually build — and Taylor, an AI mentor who never gets tired of your questions.

The SwiSekai home screen: a chapter card for Swift Data Types, a list of projects, progress, a learning streak and resources
My role
Front-end engineer · AI features
Context
Apple Developer Academy, 2025
Platform
macOS · Mac App Store
Stack
Swift · SwiftUI · SwiftData

01The problem

Tutorials teach you Swift. Nothing makes you want to come back tomorrow.

Tutorial hell

Great material. Dry, repetitive, and lonely.

Resources like “100 Days of Swift” are genuinely valuable — but reading documentation alone, day after day, burns people out before they build anything meaningful.

Isekai

Make it a quest. Give it a companion.

SwiSekai — from “isekai”, another world — turns the curriculum into a map you travel through, and pairs you with an AI mentor who answers in context and cheers you on, like a private tutor.

02Try a lesson

Answer one. Meet Taylor.

A taste of how SwiSekai feels: pick an answer and watch the mentor react — thinking, then happy, or a little pouty — just like the moods she has in the app.

Level 3 120 XP

Question 1 of 4

Pick an answer.
Taylor, the AI mentor Taylor Ask me anything regarding Swift! Happy

TaylorHi! Pick an answer on the left and I’ll tell you how you did. No pressure — wrong answers are how the map gets drawn.

03How it works

A curriculum you can see.

01 · The path

A map, not a menu.

Each chapter unfolds as a winding path of modules. Finish one and the next one lights up — the whole curriculum visible at once, and you always one step further along it.

02 · Quizzes

Pass the check, open the road.

Modules end in quick quizzes. Pass, and the path moves forward; miss, and the mentor explains why before you try again.

03 · Projects

Build it, don’t just read it.

Unlock hands-on projects — a calculator, a timer, a Pomodoro timer — and build them to prove the chapter stuck. The app tracks what you’ve completed.

04 · Streaks

A reason to come back tomorrow.

Progress, levels and a seven-day activity streak, kept on the Mac with SwiftData — small rewards for the habit that matters most.

05 · Any window

A layout that adapts as you resize.

Wide window, sidebar. Narrow window, tab bar. The interface reshapes itself as the window changes, so learning next to Xcode still feels at home.

04The app

Screens from the other world.

05Architecture

One mentor, two brains.

The AI layer sits behind a single protocol, so the app can switch between Google Gemini and OpenAI without the interface knowing — and stream every answer as it’s written.

InterfaceSwift & SwiftUI for macOS.
DataSwiftData models (@Model) for progress and levels.
PatternMVVM with protocol-oriented programming.
AI layerChatProvider protocol, with a factory that picks Gemini or OpenAI.
NavigationDeeply nested NavigationStack with programmatic paths.
MentorViewModel.swift
protocol ChatProvider {
    func stream(_ prompt: String) -> AsyncThrowingStream<String, Error>
}

enum ChatProviderFactory {
    static func make(_ kind: Provider) -> any ChatProvider {
        switch kind {
        case .gemini: GeminiProvider()
        case .openAI: OpenAIProvider()
        }
    }
}

@Observable
final class MentorViewModel {
    var reply = ""
    var mood: Mood = .happy
    private let provider = ChatProviderFactory.make(.gemini)

    func ask(_ question: String) async {
        mood = .thinking
        reply = ""
        do {
            for try await token in provider.stream(question) {
                reply += token   // the answer streams in
            }
            mood = .happy
        } catch {
            mood = .pout
        }
    }
}
Illustrative — the shape of the AI layer, not the app’s source.

06My role

What I built.

A team project at the Apple Developer Academy. I architected the front end’s navigation, helped build the AI mentor, and saw the app through to the Mac App Store.

  1. 01

    Responsive navigation

    Architected the navigation to be fully responsive, with GeometryReader logic that switches between a sidebar and a tab bar as the window changes size.

  2. 02

    The wavy map

    Built the winding level map — the app’s signature “wavy” scroll view — with ScrollViewReader.

  3. 03

    The AI mentor

    Helped implement the AI features: created the ChatProvider protocol, implemented the Gemini and OpenAI providers, and handled the asynchronous calls that stream Taylor’s answers.

  4. 04

    Idea & flows

    Shaped the concept — how learning works in SwiSekai and how to make it fun — and architected the user flows.

  5. 05

    Shipping

    Designed and deployed a native Swift learning app to the Mac App Store.