WristBeat

Project

WristBeat

WristBeat: Haptyczny metronom na watchOS

Implementacja Core Haptics w SwiftUI

Natywna aplikacja na Apple Watch zaprojektowana jako ciche, wibracyjne narzędzie dla muzyków. Projekt skupiony na precyzji czasowej, wykorzystaniu silnika Taptic Engine oraz minimalizacji zużycia energii w środowisku watchOS.

WristBeat main screen
WristBeat presets

O projekcie

Celem projektu było stworzenie metronomu, który eliminuje konieczność słuchania "klika", przenosząc rytm bezpośrednio na nadgarstek użytkownika. Wyzwanie polegało na osiągnięciu milisekundowej precyzji wibracji oraz zaprojektowaniu interfejsu w pełni zgodnego z Human Interface Guidelines dla małych ekranów.

Kluczowe funkcjonalności techniczne

Integracja Core Haptics

Zaawansowane wykorzystanie frameworka do generowania zróżnicowanych sygnałów haptycznych (różna intensywność dla akcentów i słabych części taktu).

Obsługa Digital Crown

Płynne sterowanie wartością BPM (30-240) z wykorzystaniem systemowego pokrętła, zapewniające naturalny UX znany z innych aplikacji systemowych.

Algorytm Tap Tempo

Logika obliczająca średnią z interwałów czasowych uderzeń użytkownika w celu precyzyjnego ustawienia tempa "na żywo".

Background Execution

Optymalizacja pracy w tle, umożliwiająca działanie metronomu nawet po wygaszeniu ekranu (wykorzystanie WKExtendedRuntimeSession).

Wyzwania i rozwiązania

Problem

Standardowe timery w watchOS mogą być nieprecyzyjne przy wygaszonym ekranie ze względu na oszczędzanie energii.

Rozwiązanie

Implementacja AVAudioSession w połączeniu z pętlą o wysokim priorytecie, aby utrzymać stabilność rytmu niezależnie od stanu urządzenia.

Stack technologiczny

LanguageSwift 5
UISwiftUI (100% declarative)
FrameworksWatchKit, Core Haptics, AVFoundation
ArchitectureMVVM
ToolsXcode, TestFlight