Master Swift, one question at a time.

A quiz adventure across 17 floating worlds of real, syntax-highlighted Swift — 250+ bite-sized levels, from let to async/await.

Free. No ads, no in-app purchases  ·  iOS 26+  ·  iPhone & iPad

Enums Structs Collections Strings & Chars Optionals Swift Basics

How it works

Down the rabbit hole, three steps at a time.

Pick an island

17 worlds, 250+ levels of bite-sized Swift. Start at Swift Basics and unlock your way to Performance.

Answer bite-sized questions

Four question types built on real, syntax-highlighted Swift. A run takes minutes, not an evening.

Earn stars, XP & streaks

Perfect runs earn three gold stars. Build a daily streak and climb the leagues.

Question types

Real code. Real questions.

Four bite-sized formats — because reading code is a skill of its own.

Code output

What does this code print?

let numbers = [1, 2, 3] let doubled = numbers.map { $0 * 2 } print(doubled)
[2, 4, 6]
[1, 2, 3]
[2, 4]
Compile error

Predict the output.

Half of programming is reading code someone else wrote. These questions train exactly that — you run the Swift in your head, then check yourself.

The journey

17 worlds, beginner → senior.

Foundations
Swift BasicsWorld 01
OptionalsWorld 02
Strings & CharsWorld 03
Types
CollectionsWorld 04
StructsWorld 05
EnumsWorld 06
Paradigms
Functions & ClosuresWorld 07
Classes & OOPWorld 08
ProtocolsWorld 09
GenericsWorld 10
Advanced
Error HandlingWorld 11
Memory & ARCWorld 12
ConcurrencyWorld 13
SwiftUIWorld 14
CombineWorld 15
TestingWorld 16
PerformanceWorld 17

From let to async/await — each world has 15 levels plus 5 Advanced challenges that unlock at 100%.

Your answer[2, 4]
Correct answer[2, 4, 6]

Why?

map transforms every element of a collection and returns a new array of the same length — it never drops elements.

numbers.map { $0 * 2 } // [2, 4, 6]

If you want fewer elements, you're thinking of filter or compactMap.

No wrong answers wasted

Every mistake teaches.

Miss a question and Deep Rabbit opens a full explanation — paragraphs, inline code, the works. Then the run moves on.

Hearts refill on their own

Three hearts per run, back over time. Friendly, never punishing — and nothing to buy.

No ads, no paywalls, no pressure

Deep Rabbit is free. No in-app purchases, no dark patterns. Sign in with Apple and play.

Habit, not homework

Play every day to keep your streak alive.

A daily flame, best-streak stats, accuracy, player level — and an achievements grid with a few mysteries left in it.

12-day streakbest: 34
First Steps
Week One
Perfect 10
?
???
?
???
?
???

Open content

Suggest the next world.

Every question in Deep Rabbit lives in a public GitHub repo. Spotted a mistake, or think the game needs a whole new section? Open a pull request — merged content ships to everyone.

View the repo on GitHub
Open
Add World 18: Swift Macros #42 · opened by you
Review, merge, ship

Master Swift, one question at a time.

Free on iPhone and iPad. No ads, no in-app purchases — just Swift.

Join the TestFlight beta

// Go deep. Take your time. Happy hacking.