[Feat-T3-68] 온보딩 UI 구현#18
Conversation
- Gradient 색상 Asset 추가 - GradientProgressBar를 포함한 navigationItem 구현
- OnboardingChoiceProtocol 구현 - 온보딩 선택 화면에서 해당 프로토콜을 채택한 타입이라면 OnboardingChoiceButton을 그릴 수 있도록 수정
- OnboardingType (온보딩 유형 값) - OnboardingChoiceType (온보딩 선택지 값)
- 온보딩 선택 화면에서 재사용될 OnboardingView 구현
- 온보딩 결과 화면 UI 구현 - 특정 텍스트만 semiBold로 보여지기 위해 NSAttributedString extension 구현
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the You can disable this status message by setting the ✨ Finishing Touches🧪 Generate unit tests
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
Documentation and Community
|
generalban
left a comment
There was a problem hiding this comment.
온보딩 UI 구현 정말 깔끔하게 잘하셨네요! 수고하셨습니다!
🌁 Background
온보딩 화면을 구성하고, 사용자 선택 기반으로 결과와 추천 루틴까지 보여주는 로직을 구현하였습니다.
text로 온보딩 결과를 보여주는 것까지는 클라이언트 단에서 해야 하는 일이고,
그에 따른 추천 루틴을 받는 일은 서버로부터 받아야 합니다. (다만 아직 서버 구현이 되어 있지 않아 임의의 값을 넘겨주도록 했습니다.)
이번 PR에서는 전체적인 UI 흐름과 선택 과정을 봐주시면 감사하겠습니다.
📱 Screenshot
온보딩 1: 시간대 선택
온보딩 2: 외출 빈도 선택
온보딩 3: 원하는 감정 선택
온보딩 4: 외출 목표 선택
온보딩 5: 온보딩 결과 화면
온보딩 5: 선택된 온보딩 기준 추천 루틴 화면
전체 로직 흐름
👩💻 Contents
GradientProgressViewUI 구현: 온보딩 단계별 진행 상황OnboardingChoiceButtonUI 구현: 온보딩 선택 버튼OnboardingChoiceProtocol를 채택한 모든 타입에서 해당 UI를 사용할 수 있도록 했습니다.OnboardingViewUI 구현: 온보딩 화면OnboardingResultViewUI 구현: 온보딩 결과 화면RecommendedRoutineViewUI 구현: 온보딩 선택 결과 기반 추천 루틴 화면OnboardingViewModel구현: 각 온보딩 단계의 로직을 분리하고, 관련 Subject 및 함수들을 정의해 상태를 관리합니다.✅ Testing
현재는 서버 API가 구현되어 있지 않아 사용자 인터랙션 위주의 테스트만을 진행하였습니다.
시간대, 외출 빈도, 외출 목표의 경우 1개의 선택지만 선택 가능합니다.
감정, 추천 루틴의 경우 중복 선택이 가능합니다.
온보딩 선택지에 따른 결과 Text를 확인해보았습니다.
📝 Review Note
SE 기기 대응
ProgressBarView의 intrinsicContentSize
온보딩 감정 선택지 Set vs Array
📣 Related Issue