SphaView enum을 정의하여 각 화면을 구분하고, 해당 화면에 맞는 뷰를 반환하는 로직 추가.
WatchOS 호흡 세션 타이머 카운팅 구현 및 기본 레이아웃 구현
호흡 세션을 시작하는 타이머 기능을 구현하여, 각 호흡 단계(들이쉬기, 멈추기, 내쉬기)와 타이머 카운트 처리.
페이징 방식으로 화면을 전환하는 TabView를 활용하여 인트로 화면, 호흡 세션, 종료 화면 등을 구현.
Timer를 사용해 타이머를 관리하고, 각 단계마다 텍스트를 업데이트하며 호흡을 진행.
WatchBreathingMainView, WatchBreathingOutroView, WatchBreathingSelectionView 등 주요 화면 구성.
⭐️ PR Point
WatchRouterManager를 활용하여 화면 라우팅을 유연하게 처리함으로써, 뷰 전환 로직을 깔끔하게 관리하고자 합니다.
TabView를 사용하여 사용자 인터페이스에서 각 호흡 단계 및 화면 전환을 구현하였습니다.
BreathSessionViewModel과 TimerViewModel의 책임을 분리하고 각 뷰 모델에 대해 독립적인 프로토콜을 설정을 목표로
현재는 기본적인 호흡 세션 가이드라인이라 기존의 iOS 코드를 사용하였습니다. -> #29 해당 브랜치에서 뷰모델 분리 예정입니다.
🔧 TODO
뷰 모델 분리: BreathSessionViewModel과 TimerViewModel을 분리하여 각 뷰 모델이 독립적으로 동작하도록 구조를 개선
호흡 세션 핸들링 개선: 호흡 세션이 시작될 때마다 BreathSession 객체가 타이머를 시작하고, 세션 상태에 따라 UI를 업데이트하는 구조로 변경
햅틱 피드백 추가: BreathSessionViewModel에서 WKInterfaceDevice의 play() 메서드를 이용하여 호흡 세션 햅틱 제공
🔥 작업한 내용
WatchOS 호흡 뷰 라우팅 및 WatchRouterManager 구현
WatchRouterManager
를 구현하여 라우팅 관리 및 화면 전환 로직을 처리.push
,pop
,backToWatchMain
등으로 관리.SphaView
enum을 정의하여 각 화면을 구분하고, 해당 화면에 맞는 뷰를 반환하는 로직 추가.WatchOS 호흡 세션 타이머 카운팅 구현 및 기본 레이아웃 구현
TabView
를 활용하여 인트로 화면, 호흡 세션, 종료 화면 등을 구현.Timer
를 사용해 타이머를 관리하고, 각 단계마다 텍스트를 업데이트하며 호흡을 진행.WatchBreathingMainView
,WatchBreathingOutroView
,WatchBreathingSelectionView
등 주요 화면 구성.⭐️ PR Point
WatchRouterManager
를 활용하여 화면 라우팅을 유연하게 처리함으로써, 뷰 전환 로직을 깔끔하게 관리하고자 합니다.TabView
를 사용하여 사용자 인터페이스에서 각 호흡 단계 및 화면 전환을 구현하였습니다.🔧 TODO
📸 스크린샷
🚨 관련 이슈