Skip to content

tomaddison/praccy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Praccy

The practice companion that keeps teacher and student in sync.

Praccy is an iOS app for music teachers and their students. Teachers assign tasks and goals; students see them on a "today" screen, practise, and tick them off. Teachers get an overview of progress, and students gamify their practice with daily streaks.

hero

Features

  • Today screen - Mascot-led student home with a progress ring, today's teacher-assigned tasks, and a collapsible done section.
  • Teacher roster - Students sorted active before pending. Per-student detail shows task and goal history.
  • Join-code linking - Six-character codes redeem against a CloudKit public record, then promote to a private CKShare for ongoing sync.
  • Practice streak - Flame pill in the header opens a celebration sheet.
  • On-device recordings - .m4a capture per task, stored under Documents/recordings/{taskID}/ and attached to records as CKAsset.
  • Accent-pattern metronome - Driven by AVAudioSourceNode with no queued-buffer drift. Per-beat accent customisation.
  • Drone tuner - Tunable A440.
  • Onboarding - Eight-step flow with Sign in with Apple. Replays cleanly via -ForceOnboarding.

Stack

Layer Technology
UI SwiftUI
Persistence SwiftData (local-only, cloudKitDatabase: .none)
Sync CloudKit (custom CloudKitBackend + BackendOperationQueue)
Auth Sign in with Apple, Keychain-stored identifier
Audio AVAudioSourceNode (metronome + tuner drone), AVAudioRecorder
Pitch FFT-based detection (Tuner.swift)
Haptics UIImpactFeedbackGenerator
Fonts Nunito (Bold / ExtraBold / Black)
Min iOS iOS 17

Getting Started

  1. Clone the repository
  2. Open Praccy.xcodeproj in Xcode 16 or later
  3. Pick a scheme:
    • Praccy: student side. Pass -SeedStudent YES to land on a populated home with a mock teacher and a week of tasks.
    • Praccy (Teacher): teacher side. Pass -SeedTeacher YES for a 3–4 student roster.
    • Add -ForceOnboarding YES to either scheme to replay onboarding without wiping the simulator.
  4. Build and run with ⌘R.

The MockBackend keeps things working in DEBUG; CloudKitBackend is bound to iCloud.tomaddison.Praccy.


Docs

About

The smarter way to manage student practise. Praccy lets instrument teachers set tasks for students and track progress.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages