Inspiration

Studying often turns interesting ideas into static notes, worksheets, and repetitive questions. I wanted to make studying feel more like progressing through a game.

That became QuestLab: an iPhone learning game that turns study material into playable learning worlds.

Instead of only reading or answering a normal quiz, students move through environments, complete checkpoints, defeat bosses, earn XP, and track their mastery.

What it does

QuestLab lets students scan study material or use a built-in learning example.

The app identifies the important concepts and turns them into a themed learning experience.

For the Biology demo, the student enters the Digestive Kingdom and progresses through:

  • Mouth
  • Esophagus
  • Stomach
  • Small Intestine
  • Large Intestine

Correct answers activate the path through the world and move the player toward the next checkpoint.

After completing the route, the player faces the Guardian of Wisdom in a boss battle. Knowledge becomes part of the gameplay: correct answers damage the Guardian and move the player toward completing the mission.

QuestLab also tracks:

  • XP
  • Levels
  • Streaks
  • Hearts
  • Subject mastery
  • Weak concepts
  • World progression

RevenueCat integration

QuestLab uses RevenueCat to power QuestLab Pro.

The app loads its subscription offering through RevenueCat and supports monthly and yearly packages.

A successful purchase activates the pro entitlement.

That entitlement is the real source of truth for premium access — QuestLab does not fake Pro access with a local switch.

When Pro becomes active, premium content visibly unlocks inside the game.

Restore Purchases is also supported.

For the Shipaton demo, RevenueCat's Test Store is used to demonstrate the complete purchase and entitlement flow safely.

How I built it

QuestLab is a native iPhone application built primarily with SwiftUI.

The project uses:

  • Swift
  • SwiftUI
  • Xcode
  • Vision for OCR
  • AVFoundation for camera capture
  • RevenueCat for subscriptions and entitlements
  • Local persistence for player progress
  • Custom game-state and progression systems
  • A reusable cinematic artwork and animation system

QuestLab currently uses deterministic local study generation so the demo is reliable and can run without depending on a remote AI service.

Challenges

One of the biggest challenges was making QuestLab feel like a game rather than a quiz app with artwork behind it.

I worked on making the world itself communicate progression. In Digestive Kingdom, completing a checkpoint sends energy through the digestive route and moves the player toward the next location.

Another challenge was building the visual system so large world artwork could scale correctly across the interface without looking like rectangular images placed inside standard UI cards.

The Guardian battle also went through several iterations to make correct answers feel physical through impact effects, recoil, health changes, and animation.

RevenueCat was another important technical challenge. I wanted the purchase flow to be genuine rather than simulated, so the final build uses RevenueCat offerings, packages, CustomerInfo, the pro entitlement, and Restore Purchases.

What I learned

This project taught me a lot about:

  • Native iOS development
  • SwiftUI architecture
  • Game-like interaction design
  • Animation and visual hierarchy
  • OCR and camera workflows
  • Persistent progression systems
  • Subscription architecture with RevenueCat
  • Testing real entitlement state
  • Designing a product around a very clear core idea

The biggest lesson was that adding more features is not always the answer. QuestLab became much stronger when I focused on making one complete experience feel coherent from scanning the study material all the way to completing a world.

What's next

I would like to expand QuestLab with more learning worlds, more subjects, additional mission types, and richer ways of adapting gameplay to what a student needs to practice.

The long-term goal is simple:

Turn studying into an adventure you actually want to continue.

Built With

  • 5-mb-max-file-size.-for-best-results
  • apis
  • app-store-listing
  • avfoundation
  • cloud-services
  • databases
  • design
  • etc.-"try-it-out"-links-add-links-where-people-can-try-your-project-or-see-your-code.-url-for-demo-site
  • etc.-add-another-link-project-media-image-gallery-jpg
  • etc.-languages
  • frameworks
  • game
  • github
  • github-repo
  • ios
  • local
  • ocr
  • platforms
  • png-or-gif-format
  • revenuecat
  • swift
  • swiftui
  • ui/ux
  • vision
  • xcode
Share this project:

Updates

Submission history