Commit fa6fc49
[Release] 1.0.0 배포 (#44)
* Feat: SnapKit, Then 외부 라이브러리 추가
* Feat: Logger 구현
* Feat: Logger 구현
* Del: 임시 파일 (Shared.swift) 삭제
* Fix: log 메시지 출력 형식 변경
- 파일명, 라인 수, 함수명 default로 출력하도록 수정
* Feat: DIContainer 구현 (#T3-56)
* Update Package.swift
* [Del} 불필요한 이미지 파일 삭제
* Feat: Keychain 및 UserDefaults 기반 Persistence 구현 (#T3-60)
* Feat: Persistence 저장소 리팩토링 (#T3-60)
* Feat: NetworkService 구현 (#T3-57)
* Del: 임시 파일 (Domain.swift) 삭제
* Feat: Endpoint 구현 (#T3-57)
- Endpoint 프로토콜 구현
- Network 레이어에 Endpoint extension 구현
- 편의성을 위한 URLRequest extension 구현
* Feat: 네트워크 로직을 위한 enum 값들 구현 (#T3-57)
- NetworkError, HTTPMethod, AppProperties 구현
* Feat: NetworkService 구현
- NetworkServiceProtocol 추상체 구현
- NetworkService 구현체 구현
* Feat: BaseResponseDTO 구현 (#T3-57)
* Feat: 개발 서버 테스트 구현
- health-check API를 통한 테스트 진행
- 이를 위한 Endpoint, UseCase, Repository 구현
- App 모듈에 의존성 추가 (NetworkService, Persistence)
* Refactor: 피드백 기반 UserDefaultsStore 네이밍 및 불필요 타입 제거 (#T3-60)
* Refactor: KeyValueStorage 네이밍 및 계층 구조 정리 (#T3-60)
* Refactor: UserDefaults 밑 KeychainStorageProtocol (#T3-60)
* Refactor: KeychainStorage 오탈자 수 (#T3-60)
* Fix: UserDefaultsStorageProtocol 구현 타입 수정 (#T3-60)
* Refactor: UserDefaultsStorage 제네릭 타입 대응 및 프로토콜 정합성 개선 (#T3-60)
* Del: Git Cache 및 불필요한 파일 삭제
* Docs: gitignore 정보 추가
* Del: .xcworkspace 파일 삭제
* Feat: Design System 구현 (#T3-64)
* Feat: Gray 색상 Asset 추가 (#T3-64)
* Feat: BitnagilColor Enum 정의 (#T3-64)
* Feat: Pretendard 폰트 파일 추가
* Feat: BitnagilFont Enum 정의 (#T3-64)
- BitnagilFont Enum 정의
- FontName Enum 정의
- UIFont extension 구현
* Chore: Project 파일 수정
- 각 모듈의 infoPlist 설정 제거
- App 단의 info.plist 파일 사용하도록 수정
* Feat: BaseViewController 및 ViewModel protocol 구현 (#T3-65)
* Feat: ViewModel protocol 구현 (#T3-65)
* Feat: BaseViewController 구현 (#T3-56)
* Refactor: Test를 위한 HomeViewController 및 Test 객체들 수정
* Feat: Design System 구현 (#T3-64)
* Feat: Gray 색상 Asset 추가 (#T3-64)
* Feat: BitnagilColor Enum 정의 (#T3-64)
* Feat: Pretendard 폰트 파일 추가
* Feat: BitnagilFont Enum 정의 (#T3-64)
- BitnagilFont Enum 정의
- FontName Enum 정의
- UIFont extension 구현
* Chore: Project 파일 수정
- 각 모듈의 infoPlist 설정 제거
- App 단의 info.plist 파일 사용하도록 수정
* Refactor: BaseViewController의 viewModel 접근 제한자 수정 및 중복 제거
* Feat: ViewModel protocol 구현 (#T3-65)
* Feat: BaseViewController 구현 (#T3-56)
* Refactor: Test를 위한 HomeViewController 및 Test 객체들 수정
* Refactor: BaseViewController의 viewModel 접근 제한자 수정 및 중복 제거
* Refactor: HomeViewController에 디자인 시스템 적용
* Feat: Dependency Assembler 구현 (#T3-63)
* Refactor: DIContainer 로직 수정 (#T3-63)
- 기존 Any 타입으로 인스턴스를 저장하던 의존성을 factory closure 형태로 변경
- resolve 시 클로저 실행을 통해 인스턴스를 생성하도록 개선
* Feat: DependencyAssemblerProtocol 구현 (#T3-63)
* Feat: 각 모듈별 DependencyAssembler 구현
- Network, Persistence, DataSource, Domain, Presentation 모듈의 DependencyAssembler 구현
- previous 의존성을 명시하여 DI 등록 순서를 보장하도록 함
* Feat: App 모듈에 DependencyInjection 함수 구현 (#T3-63)
* Del: DataSoure의 불필요한 Resources 파일 제거
* Refactor: NetworkService 테스트 가능한 구조를 위해 NetworkProviderProtocol 구현 및 채택
* Feat: 빌드 체크 자동화 Github Actions 추가
* Chore: Kakao SDK 설치 및 Tuist 외부 의존성 추가
* Chore: Kakao SDK init 및 필요한 프로젝트 설정 세팅
* Refactor: 네트워크 모듈 세부 구현 수정
- Endpoint, URLRequest 수정
- 기존 parameter만 받던 Endpoint에서 queryParameters, bodyParameters를 구분지어서 받도록 수정
- 확장해서 만든 커스텀 URLRequest 생성자에서 url 뿐만 아니라 queryParamters도 받아 쿼리 파라미터가 있다면 붙여서 url 만들어주도록 수정
- 그에 따른 TestEndpoint 수정
* Feat: 카카오 로그인 기능 구현 (#T3-66)
- Enum, Error 폴더 구조 정리
- AuthEndpoint 구현
- AuthRepository 구현체 및 추상체 구현
- LoginUseCase 구현체 및 추상체 구현
* Feat: LoginView 및 LoginViewModel 구현 (#T3-66)
* Feat: 각 모듈 Assembler에 Login 및 Auth 의존성 추가
* Chore: info.plist 카카오 네이티브 키 설정 값 오타 수정
* Fix: 서버 요청사항에 맞게 Endpoint 수정
- AuthEndpoint 수정
- accessToken, refreshToken 저장 후 로그 찍기
* Feat: Apple 로그인 구현 (#T3-67)
* Refactor: LoginView Layout Enum 상수값 네이밍 수정
* Feat: LoginViewController에 Apple Login 버튼 추가
* Fix: TokenResponse, TokenEntity 값 서버에 맞게 수정
* Refactor: Apple 로그인 토큰 값 및 유저 정보 가져오는 로직 ViewController로 이동 (#T3-67)
- ASAuthorizationControllerDelegate, ASAuthorizationControllerPresentationContextProviding 채택해주는 로직 LoginViewController로 이동 (기존 AuthRepository)
* Feat: LoginViewModel, LoginUseCase에 appleLogin 함수 구현 (#T3-67)
- LoginViewModel에서 apple 로그인 결과에 따라 값을 방출할 수 있도록 구현
- LoginUseCaseProtocol, LoginUseCase appleLogin 함수 정의 및 구현
* Feat: AuthError 및 UserDefaultsKey Enum 값 정의
* Refactor: 카카오 로그인 에러 구체화
* Feat: AuthRepository appleLogin 구현 (#T3-67)
- AuthRepositoryProtocol, AuthRepository appleLogin 정의 및 구현
- 받은 닉네임, 토큰 값을 통해 서버 통신 로직 구현
- UserDefaults에 닉네임 저장 및 불러오는 로직 구현
* Feat: AuthRepository UserDefaults 의존성 추가
* Chore: 프로젝트 세팅에 entitlements 지정
* Chore: 코드래빗 설정 파일 추가
* Refactor: Height 오타 수정
* Feat: 로그아웃, 탈퇴 및 토큰 재발급 로직 구현 (#T3-75)
* Del: health-check 관련 테스트 코드 삭제
* Feat: AuthRepository에 로그아웃 함수 구현 (#T3-75)
- AuthRepositoryProtocol, AuthRepository에 logout 함수 정의 및 구현
- AuthError에 토큰 삭제 에러 추가
* Feat: LogoutUseCase 구현 (#T3-75)
- LogoutUseCase Protocol, LogoutUsecase logout 함수 정의 및 구현
- LoginUseCase 폴더 이동
* Feat: LoginViewController, LoginViewModel에 logout 함수 추가
- 테스트 진행을 위해 LoginViewModel, LoginViewController에 로그아웃 버튼 추가 및 함수 구현
* Feat: LogoutUseCase 의존성 조립
* Refactor: 서버 응답 값에 맞게 BaseResponseDTO 수정
* Feat: 소셜 로그인 탈퇴 구현 (#T3-75)
- AuthEndpoint에 withdraw case 추가
- AuthRepositoryProtocol 및 AuthRepository에 withdraw 함수 정의 및 구현
- WithdrawUseCaseProtocol 및 WithdrawUseCase 정의 및 구현
- Domain, Presentation 의존성 등록 및 조립
- LoginViewModel, LoginViewController에 테스트를 위한 함수 및 버튼 추가
* Feat: 토큰 재발급 함수 reissueToken 구현
- AuthEndpoint에 reissue 케이스 추가
- AuthRepositoryProtocol 및 AuthRepository에 reissueToken 정의 및 구현
- LoginViewModel, LoginViewController에 reissue 테스트 관련 버튼 및 함수 추가
* Feat: 인트로 · 로그인 · 이용 약관 UI 구현 및 로직 정리 (#T3-86)
* Chore: 디자인 시스템 색상 Color Asset 추가 및 BitnagilColor 변수 값 추가
- Figma 디자인 시스템에 정의된 색상 값 Asset 추가
- 그에 따른 BitnagilColor 변수 추가
- Bundle을 해당 모듈에서 찾을 수 있도록 코드 변경
* Chore: 디자인 시스템 폰트 정리
- 기존 Enum으로 정리된 BitnagilFont에서 Struct로 변경하여 weight 값에 따른 폰트를 받을 수 있도록 수정
- FontAttributes, FontStyle, FontWeight 등 폰트 정의에 필요한 enum 및 struct 정의
* Chore: 디자인 시스템 icon 이미지 Asset 추가
- apple, kakao, check icon 이미지 추가
- BitnagilIcon Enum 정의
* Feat: IntroView 구현 (#T3-86)
- PrimaryButton Component 구현
- IntroView 구현
* Feat: LoginView UI 구현 및 로직 수정 (#T3-86)
* Refactor: 로그인 서버 통신 관련 AuthRepository 및 LoginUseCase 수정
* Feat: IntroView UI 구현 (#T3-86)
- IntroView UI 구현
- SceneDelegate 앱 진입점 수정
* Feat: LoginView UI 구현 (#T3-86)
- LoginView UI 구현
- SocialLoginButton Component 구현 (카카오, 애플)
* Feat: 이용 약관 동의 UI 구현 (#T3-86)
- TermAgreementItemView 컴포넌트 구현
- TermAgreementView UI 구현
- LoginViewModel과 로직 구현
* Feat: 이용 약관 동의 로직 구현 (#T3-86)
- 기존 TokenResponseDTO에서 LoginResponseDTO로 수정 (서버 응답에 User의 role이 추가되었음)
- AuthEndpoint에 agreements 케이스 추가
- AuthRepositoryProtocol 및 AuthRepository에 submitAgreements 정의 및 구현
- LoginUseCaseProtocol 및 LoginUseCase에 submitAgreements 정의 및 구현
- LoginViewModel에 submitAgreement 로직 구현
* Feat: UIViewController extension에 공통 backbutton을 사용할 수 있도록 커스텀
* Fix: IntroView, TermsAgreementView에 Label 색상 적용
* Refactor: label 오타 수정
* Feat: 온보딩 UI 구현 (#T3-68)
* Feat: 온보딩 선택지 버튼 Components UI 구현 (#T3-68)
* Feat: GradientProgressBar UI 구현
- Gradient 색상 Asset 추가
- GradientProgressBar를 포함한 navigationItem 구현
* Refactor: 온보딩 선택지 UI 수정 (#T3-68)
- OnboardingChoiceProtocol 구현
- 온보딩 선택 화면에서 해당 프로토콜을 채택한 타입이라면 OnboardingChoiceButton을 그릴 수 있도록 수정
* Feat: 온보딩에서 사용될 enum 타입 정의 (#T3-68)
- OnboardingType (온보딩 유형 값)
- OnboardingChoiceType (온보딩 선택지 값)
* Feat: OnboardingView 구현 (#T3-68)
- 온보딩 선택 화면에서 재사용될 OnboardingView 구현
* Feat: OnboardingResultView 구현 (#T3-68)
- 온보딩 결과 화면 UI 구현
- 특정 텍스트만 semiBold로 보여지기 위해 NSAttributedString extension 구현
* Feat: 온보딩 추천 루틴 UI 구현 (#T3-68)
* Feat: OnboardingViewModel 구현 (#T3-68)
* Feat: OnboardingViewModel 의존성 조립 및 이용 약관 화면에서 온보딩 화면으로 넘어가는 로직 구현 (#T3-68)
* Feat: 온보딩 서버 통신 구현 (#T3-102)
* Style: 통일성을 위한 폴더명 변경
* Refactor: BaseViewController 및 ViewModel에 public 접근제어자 삭제
* Refactor: NetworkService 리팩토링
- BaseResponseDTO DataSource에서 Network 모듈로 이관
- T 타입 반환에서 T? 타입 반환으로 수정 (EmptyResponse 대응)
- Server Message 출력
* Feat: 온보딩 선택지 등록 및 추천 루틴 받기 구현 (#T3-102)
- OnboardingEndpoint 정의
- OnboardingRepositoryProtocol · OnboardingRepository 구현
- OnboardingUseCaseProtocol · OnboardingUseCase 구현
* Feat: Onboarding 관련 의존성 조립 (#T3-102)
- DataSource, Domain, Presentaion 레이어에서 OnboardingRepository, OnboardingUseCase, OnboardingViewModel 의존성 등록
* Feat: 로그인 결과에 따른 이용약관 vs 온보딩 화면 분기 처리
* Feat: CustomFontStyle 추가
- 디자인 시스템에 정의되어 있는 폰트 외에도 정의해서 사용할 수 있도록 custom 케이스 추가
* Feat: 온보딩 선택 결과 바탕으로 추천 받은 루틴 등록 구현 (#T3-102)
* Refactor: AuthRepository do-catch 블록 수정
* Refactor: 의존성 없을 시 fatalError 발생하도록 수정
* Refactor: 온보딩 선택지 Dictonary 변경 로직 수정
* Feat: 탭바 구현
* Refactor: BitnagilColor 수정
- 기존 White 계열 컬러들 Orange로 수정
- HomeGradient 색상 및 Error 색상 추가
* Docs: 홈 탭바 아이콘 이미지 Asset 추가
* Feat: TabBarView 구현
* Style: 코드 컨벤션을 위한 import 순서 정렬
* Refactor: Gradient 오타 수정
* Feat: 추천 루틴 UI 구현 (#T3-70)
* Feat: 아이콘 이미지 Asset 추가 및 BitnagilIcon 케이스 추가
- plus, chevron 아이콘 이미지 asset 추가
- BitnagilIcon plus, chevron 아이콘 케이스 추가
- UIImage extension을 통해 resize 및 roate 함수 구현
* Feat: 추천 루틴 카테고리 타입 및 뷰 구현 (#T3-70)
* Feat: 추천 루틴 난이도 타입 및 뷰 구현 (#T3-70)
- RoutineLevelType enum 정의
- RoutineLevelView UI 구현 (+ RoutineLevelCell)
- RoutineLevelButton 구현
* Feat: 감정 등록 버튼 구현 (#T3-70)
* Feat: 추천 루틴 카드 뷰 구현 (#T3-70)
* Style: BaseViewController, ViewModel 폴더 위치 변경
* Feat: CustomButtonSheet 구현
* Feat: RecommendedRoutineView 구현 (#T3-70)
* Feat: RecommendedRoutineViewModel 구현 (#T3-70)
* Feat: Presentation 모듈에 RecommendedViewModel 의존성 추가
* Feat: TabBarView에 추천 루틴 View 변경
- 기존 테스트용 View 삭제
* Fix: ScrollViewBottomSpacing 값 수정
* Refactor: Delegate 함수 네이밍 수정
* Refactor: RoutineLevelView 테이블 뷰 셀 UI 수정
- RoutineLevelView 테이블 뷰 셀 밑줄 간격 조정 및 마지막 셀 밑줄 생략
- CustomBottomSheet 투명도 변경
* Refactor: RoutineLevelType 정렬 중복 로직 정리
* [Feat-T3-104] 마이페이지 UI 구현 (#22)
* Feat: 이미지 asset 추가 (#T3-104)
- BitnagilIcon에 이미지 추가
* Feat: NSObject extension 추가 (#T3-104)
- {class이름}.className을 통해 클래스의 이름을 스트링으로 사용할 수 있도록 구현
* Feat: UserDataRepository 구현 (#T3-104)
- 유저 정보 (닉네임, accessToken)을 가져올 수 있는 repository 구현
- UserDataRepository 의존성 등록
* Feat: 마이페이지 화면 구현 (#T3-104)
- 마이페이지 화면 구현
- 의존성 등록
- TabBar에서 Myapge 클래스 삭제
* refactor: 코드 리뷰 반영
* Feat: 홈 화면 UI 구현 (#T3-105)
* Feat: 메인 루틴 Component UI 구현 (#T3-105)
- epllipsis 아이콘 에셋 추가 및 BitnagilIcon 프로퍼티 추가
- MainRoutineView 구현
* Refactor: MainRoutineView 리팩토링
- Layout enum 추가
- 불필요한 do 문법 제거
- MainRoutine 구조체 폴더 위치 변경
* Feat: SubRoutineButton UI 구현 (#T3-105)
* Feat: RoutineView UI 구현 (#T3-105)
* Feat: DateView UI 구현 (#T3-105)
* Feat: HomeEmptyView UI 구현 (#T3-105)
* Feat: 이미지 에셋 추가 및 BitnagilIcon에 정의
- informationIcon, sortIcon HomeView에서 필요한 이미지 에셋 추가
* Feat: 홈 감정구슬 등록하기 버튼 UI 구현 (#T3-105)
* Feat: WeekView UI 구현 (#T3-105)
* Feat: HomeView UI Layout 구현 (#T3-105)
* Feat: 루틴 정렬, 필터링 테이블뷰 재사용 SelectableItemTableView로 구현 (#T3-105)
- SelectableItem protocol 정의 (정렬, 필터링 시 선택지)
- SelectableItemCell UI 구현
- SelectableItemTableView UI 구현
- RoutineLevelView, RoutineLevelCell 삭제 -> SelectableItemTableView 재사용
- RoutineSortType 정의
* Feat: HomeViewModel + HomeView 연동 (#T3-105)
* Refactor: routinesSubject 오타 수정
* Feat: 모듈 구조 변경 및 토큰 로직
* Refactor: NetworkService, Persistence 모듈 DataSource 모듈 합치기
* Refactor: Then 외부 라이브러리 제거 및 사용 코드 제거
* Feat: TokenManager 구현
* Refactor: Endpoint에 isAuthorized 값 추가
- Endpoint에 isAuthorized 값 추가 (인증이 필요한지 여부)
- 그렇다면 Endpoint 만들 때 header에 TokenManager에서 accessToken 빼와서 저장
* Refactor: UserDataRepository에 token 재발급 로직 추가
* Feat: 로그인 시 소셜 로그인 타입, 프로필 이미지 저장
- 카카오 로그인 시 nickname, profileImageUrl을 KakaoSDK에서 받아와 저장하도록 로직 추가
- 카카오, 애플 로그인 시 소셜 로그인 타입 저장하도록 로직 추가
* Fix: 온보딩 서버 Request Enum 값 변경
- 온보딩 서버 Request Enum 값 변경
- 온보딩 UI 수정 (SubTitle 여부)
* Feat: UserDataRepository에서 토큰 재발급 가능 여부에 따라 앱 진입점 분기처리
* Fix: 토큰 재발급 로직 Response 타입 변경
- TokenResponseDTO 구현
- reissue response 타입 교체
* Style: 불필요한 주석 제거
* Style: UserDataRepository 오타 수정
* Refactor: 코드 리뷰 반영
- NetworkService에서 endpoint.isAuthorized 값 확인하여 헤더에 토큰 값 세팅해주는 로직으로 수정
- 카카오 유저 정보 (닉네임, 프로필 이미지 URL) 메인스레드에서 동작하는 것 제거
- SceneDelegate에서 SplashView를 먼저 표시하고, reissueToken 결과에 따라 rootViewController 교체하도록 구조 개선
* Refactor: import SnapKit 추가
* [Feat-T3-110] 루틴 생성 화면 구현
* feat: 루틴 추가 화면 이미지 asset 추가 (#T3-110)
* feat: ToolTipView 구현 (#T3-110)
* feat: 서브루틴 추가 View 구현 (#T3-110)
* feat: 루틴 생성 ViewModel 구현 (#T3-110)
* feat: 기타 subview 구현 (#T3-110)
- 루틴 시작 시간 선택 버튼
- 서브 루틴 추가 버튼
* feat: 루틴 추가 화면 구현 (#T3-110)
* fix: Tooltip 오타 수정 (#T3-110)
* refactor: 코드 리뷰 반영
* [Feat] 날짜 선택가능한 DatePickerView 구현
* feat: DatePickerView 구현
* fix: 하루 종일 설정 버튼 추가
- 하루 종일 UILabel을 눌러도 하루 종일 버튼이 눌리도록 수정
* refactor: 코드 리뷰 반영
* Feat: 감정 등록 화면 구현 (#T3-69)
* Docs: 감정 구슬 이미지 Asset 추가 및 BitnagilGraphic에 케이스 추가 (#T3-69)
- 감정 구슬 이미지 Asset 추가
- 이미지 Asset 폴더링 정리
- BitnagilGraphic에 감정 구슬 변수 추가
* Feat: 감정 구슬 화면 UI 구현 (#T3-69)
- 감정 구슬 enum 타입 정의 (EmotionType)
- 감정 구슬 CollectionViewCell UI 구현 (EmotionOrbCollectionViewCell)
- 감정 구슬 등록 화면 UI 구현 (EmotionRegisterView)
* Feat: EmotionRegisterViewModel 의존성 조립 및 감정 등록 화면 연결 (홈, 추천 루틴)
* Style: emotionOrbCollectionView let으로 수정
* Feat: 추천 루틴 API 연동 (#T3-121)
* Style: 일부 파일들 import 컨벤션 맞추기
* Feat: RecommendedRoutineRepository 구현 (#T3-121)
- RecommendedRoutineDTO, RecommendedRoutineDictionaryResponseDTO, RecommendedRoutineListResponseDTO 타입 정의
- RecommendedRoutineEndpoint 생성
- RecommendedRoutineRepositoryProtocol, RecommendedRoutineRepository 정의 및 구현
* Feat: RecommendedRoutineUseCase 구현 (#T3-121)
- RecommendedRoutineUseCaseProtocol, RecommendedRoutineUseCase 정의 및 구현
- RecommendedRoutineEntity 수정 (카테고리, 난이도 값 추가)
- RoutineCategoryType, RoutineLevelType 위치 변경 (기존 Presentation -> Domain)
* Refactor: 추천 루틴 뷰 수정 (#T3-121)
- 감정 등록 버튼이 추천 루틴 목록들보다 상단에 뜨도록 UI 수정
- RecommendedRoutineCardView에서 Label trailing Layout 추가
* Refactor: RoutineLevelType, RoutineCategoryType 모듈 위치 변경으로 인한 Presentation 모듈 수정
- Presentation 모듈에 있는 RoutineLevelType, RoutineCategoryType가 Domain을 extension해서 필요한 값을 추가하여 사용할 수 있도록 수정
- 그에 따른 import Domain 추가
* Feat: RecommendedRoutineView 및 RecommendedRoutineViewModel 로직 구현 (#T3-121)
- 전체 추천 루틴 받아오는 로직 추가 + 더미 데이터 삭제
- 카테고리 및 난이도에 대해 받아온 루틴 필터링하는 로직 추가
- 의존성 조립 (DataSource, Domain, Presentation)
* Feat: FloatingButton, FloatingMenuView UI 구현
* Feat: 추천 루틴 화면에 FloatingButton 추가 및 등록 화면 이동 (#T3-121)
- RecommendedRoutineView에 FloatingButton, FloatingMenu, dimmedView 추가
- 루틴 등록 화면으로 이동해야 하므로 RoutineCreationViewModel 의존성 등록
* Style: 오타 수정
* Refactor: 맞춤 추천 카테고리인 경우 감정 등록 버튼 보여주기
* [Feat] NetworkService 플러그인 구현
* feat: 네트워크 플러그인 프로토콜 구현
* feat: 네트워크 플러그인 구현
* feat: networkService에 플러그인 적용
* refactor: 코드래빗 리뷰 반영
* refactor: 코드 리뷰 반영
* Feat: 감정 구슬 API 연동 및 추천 루틴 결과 화면 재사용 (#T3-127)
* Style: 클라에서 저장하고 있는 감정 구슬 값 삭제 (이미지 Asset, EmotionType 등)
* Feat: Emotion 조회 및 등록 API 연동 (#T3-127)
- EmotionEndpoint 정의
- EmotionRepositoryProtocol, EmotionRepository 정의 및 구현 (+ EmotionResponseDTO)
- EmotionUseCaseProtocol, EmotionUseCase 정의 및 구현 (+ EmotionEntity)
* Chore: Kingfisher 외부 라이브러리 의존성 추가
* Refatcor: 감정구슬 Cell, 감정구슬 등록 화면 수정 (#T3-127)
- 서버 통신으로 받은 값들을 보여주도록 수정
- 감정 구슬 이미지 Kingfisher로 출력
* Docs: 그래픽 이미지 Asset 추가 및 BitnagilGraphic 케이스 추가
* Refactor: 기존 OnboardingUseCase 삭제 및 추천 루틴 받아오는 로직 이동 (#T3-127)
- OnboardingUseCaseProtocol, OnboardingUseCase 삭제
- OnboardingRecommendedRoutineView 삭제
- 기존 온보딩 선택지 · 감정 값을 등록하고 추천 루틴을 받아오는 로직 이동
* Chore: Common View 폴더 생성 및 재사용 View 이동 (SplashView, TabBarView)
* Feat: ResultRecommendedRoutineView · ResultRecommendedRoutineViewModel 구현 (#T3-127)
- 추천 루틴 결과 값을 보여주는 화면(ResultRecommendedRoutineView) 구현
- 온보딩 선택지 or 감정 구슬 선택지에 따른 추천 루틴 받아오는 로직
- 선택한 추천 루틴 등록 로직
* Refactor: ResultRecommendedRoutineView 재사용을 위한 분기처리 (#T3-127)
- MypageView, OnboardingResultView, EmotionRegisterView에서 재사용할 수 있도록 분기 처리
- OnboardingResultView에 그래픽 추가
* Feat: 의존성 조립 (Domain, DataSource, Presentation)
* Refactor: 오타 수정
* Refactor: UIScreen.main 기준으로 height 계산하는 코드 수정
* Feat: 홈 API 연동 (1) - 루틴 조회, 루틴 상세 보기 (#T3-130)
* Feat: 유저 닉네임 가져오는 API 연동 (#T3-130)
- HomeView, MypageView에서 사용
* Chore: 이용 약관 및 공지사항 등 서비스 URL 교체
* Feat: HomeView에 FloatingButton 추가 (#T3-130)
* Feat: 루틴 목록 조회 API 연동 (#T3-130)
* Feat: 감정 구슬 관련 TooltipView 추가 (#T3-130)
* Feat: RoutineDetailView UI 구현 (#T3-130)
* Refactor: KakaoSDK에서 닉네임, 프로필 가져오는 로직 제거
* Refactor: 오타 수정 및 분기 처리
* Refactor: RoutineView, SubRoutineButton Layout 조정
* Refactor: LoginView, IntroView 그래픽 추가
* Chore: AppIcon 추가
* Feat: Home 화면에서 감정 구슬 보여주기 (#T3-130)
* Fix: IntroView Layout 수정
* Fix: handleTap 좌표 계산 수정
* [Feat-T3-132] 설정 화면 구현
* feat: 이미지 asset 추가
* feat: TableViewCell 구현
- TableView에서 사용할 수 있는 3가지 타입의 cell 구현
- chevron 이미지로 다음 화면으로 넘어갈 수 있는 cell
- button이 있는 cell
- switch가 있는 cell
* feat: 커스텀 Alert View 추가
* feat: 설정 화면 커스텀 tableView Section HeaderView 구현
* feat: 설정 화면 구현
* feat: navigationController appearance 수정
* refactor: custom alert 파라미터 이름 수정, alert 표시 타입 수정
* refactor: 오타 수정 (토끼 리뷰 반영)
* Feat: 루틴 등록 / 수정 로직 구현
* feat: DTO -> Parameter 변환을 위한 Encodable extension 구현
* feat: 루틴 생성/수정 관련 DTO 정의
* feat: 루틴 endpoint 수정
- 루틴 생성 추가
- 루틴 수정 추가
- 루틴 단건 조회 추가
* fix: routine 엔티티의 id를 옵셔널로 수정
* feat: 루틴 repository 구현
* feat: 루틴 생성/수정 UseCase 구현
- 루틴 요약, 서브 루틴 요약 엔티티 생성
* feat: 루틴 등록/수정 로직 View와 연결
* [Feat] 네트워킹 로깅 플러그인 구현
* feat: 네트워킹 로깅 플러그인 구현
* refactor: 불필요한 공백, 상수 제거
* Feat: 루틴 삭제 구현 (#T3-134)
* Feat: 루틴 삭제 AlertView 구현 및 HomeView에 적용 (#T3-134)
* Feat: 반복 루틴 전체 삭제 구현 (#T3-134)
* Feat: 당일 루틴 삭제 구현 (#T3-134)
* Refactor: 서버 Request에 routineType 추가 및 Layout enum 정의
* Refactor: 오타 및 컨벤션 수정
* Feat: Splash view UI 구현
* Chore: Lottie 외부 라이브러리 의존성 추가
* Docs: Splash json 파일 및 bitnail logo 이미지 asset 추가
* Feat: SplashView UI 구현
* Chore: splash.json 파일 교체
- 용량이 너무 커서 git push가 안되는 이슈로 압축된 json 파일로 교체
* Chore: splash.json 파일 교체
* Refactor: SplashViewDelegate 구현하여 애니메이션 완료하도록 수정
* Feat: 온보딩 여부 저장 및 분기 처리
* Feat: 온보딩 여부 저장 및 불러오기, 삭제 로직 구현
- 온보딩 여부 저장, 불러오기, 삭제 로직 구현
- 필요없는 profileImageUrl 저장, 불러오기, 삭제 로직 제거
* Feat: 온보딩 여부에 따른 진입 뷰 분기 처리
- 온보딩 여부에 따른 진입 뷰 분기 처리
- 그에 따른 ViewController, ViewModel 접근제어자 변경 (internal -> public)
* Feat: 온보딩 네비게이션 Background 색상 변경
* Refactor: 코드 리뷰 반영
- 중복된 네비게이션 바 Appearance 설정 제거
- OnboardingView viewDidLoad 제거
* Refactor: 온보딩 첫 화면에서 백버튼 제거
* Feat: 설정 화면 로직 구현
* feat: 알림 section 주석 처리
* feat: 설정 로직 구현
* feat: 업데이트 로직 추가
* Feat: 프로필 default 이미지 asset 추가 및 MypageView에 세팅
* Refactor: isAuthenticated 값에 따른 화면 전환
---------
Co-authored-by: 최정인 <wjddls980912@naver.com>
* Feat: 루틴 완료 로직 구현 (#T3-144)
* Feat: 추천 루틴 화면에서 감정 등록에 따른 감정 버튼 안보이게 하기
* Fix: 루틴 삭제 performedDate 수정
* Feat: RoutineView UI 인터랙션 (#T3-144)
- 세부 루틴 완료 값에 따른 메인 루틴 완료 값 업데이트
- 메인 루틴 완료 값에 따른 세부 루틴 완료 값 업데이트
* Feat: 루틴 완료 API 연동 (#T3-144)
* Feat: loadingIndicatorView 추가
* Feat: 루틴 정렬 로직 구현
* Fix: 루틴 완료 배열 수정
* Feat: 추천 루틴 등록하기 기능 추가
* feat: 추천 루틴 등록하기 기능 추가
* Refactor: 오타 수정
---------
Co-authored-by: 최정인 <wjddls980912@naver.com>
* feat: 토스트 메시지 구현
* Fix: 토큰 재발급 role 추가
* Fix: reissue role에 따른 화면 분기 처리
* Feat: Home Toast View 적용
* Fix: 감정 구슬 등록 후 추천 루틴 등록 화면 이동
* Chore: 빌드 버전 업 (0.0.1 -> 0.0.3)
* Refactor: 오타 수정
* Refactor: nil일 때에도 감정 구슬 등록 action 추가
* [Fix] 루틴 불러오는 로직 수정 (#43)
* Fix: 루틴 fetch 로직 수정
* Fix: 루틴 등록 시, 키보드 내려가는 로직 수정
* Fix: 루틴 등록 수정
- 키보드 입력 끊김 이슈 수정
- 루틴 반복 선택하지 않아도 등록 활성화 되도록 수정
* feat: 로그 메시지 privacy 정책 적용
* Chore: 배포 전 설정 변경
---------
Co-authored-by: soungjunban <soungjunban@gmail.com>
Co-authored-by: Ban Soungjun <119939410+generalban@users.noreply.github.com>
Co-authored-by: taipaise <taipaise@gmail.com>1 parent c6d3ddc commit fa6fc49
459 files changed
Lines changed: 15879 additions & 3928 deletions
File tree
- .github/workflows
- Bitnagil.xcworkspace
- Projects
- App
- App.xcodeproj
- project.xcworkspace
- Derived/Sources
- Resources
- Assets.xcassets/AppIcon.appiconset
- Font
- Sources
- DataSource
- DataSource.xcodeproj
- project.xcworkspace
- Derived/InfoPlists
- Sources
- Common
- Enum
- Error
- Extension
- DTO
- Endpoint
- NetworkService
- Extension
- Plugin
- Protocol
- Persistence
- Repository
- Domain
- Derived/InfoPlists
- Domain.xcodeproj
- project.xcworkspace
- Sources
- Entity
- Enum
- Protocol
- Repository
- UseCase
- UseCase
- Auth
- Emotion
- RecommendedRoutine
- ResultRecommendedRoutine
- Routine
- UserData
- NetworkService
- Derived/InfoPlists
- NetworkService.xcodeproj
- project.xcworkspace
- Sources
- Persistence
- Derived/InfoPlists
- Persistence.xcodeproj
- project.xcworkspace
- Sources
- Presentation
- Derived/InfoPlists
- Presentation.xcodeproj
- project.xcworkspace
- Resources
- Colors.xcassets
- Emotion
- EmotionAnxiety.colorset
- EmotionHappy.colorset
- EmotionLethargy.colorset
- EmotionLonely.colorset
- EmotionSad.colorset
- Error.colorset
- Gradient
- GradientLeft.colorset
- GradientRight.colorset
- HomeGradientLeft.colorset
- HomeGradientRight.colorset
- Gray
- Gray10.colorset
- Gray20.colorset
- Gray30.colorset
- Gray40.colorset
- Gray5.colorset
- Gray50.colorset
- Gray60.colorset
- Gray7.colorset
- Gray70.colorset
- Gray80.colorset
- Gray90.colorset
- Gray95.colorset
- Gray96.colorset
- Gray97.colorset
- Gray98.colorset
- Gray99.colorset
- Kakao.colorset
- LightBlue
- LightBlue100.colorset
- LightBlue200.colorset
- LightBlue300.colorset
- LightBlue400.colorset
- LightBlue50.colorset
- LightBlue500.colorset
- LightBlue600.colorset
- LightBlue700.colorset
- LightBlue75.colorset
- LightBlue800.colorset
- LightBlue900.colorset
- Orange
- Orange100.colorset
- Orange200.colorset
- Orange300.colorset
- Orange400.colorset
- Orange50.colorset
- Orange500.colorset
- Orange600.colorset
- Orange700.colorset
- Orange800.colorset
- Orange900.colorset
- Images.xcassets
- Graphic
- intro_graphic.imageset
- onboarding_graphic.imageset
- LoginIcon
- apple_icon.imageset
- kakao_icon.imageset
- TabBarIcon
- home_empty_icon.imageset
- home_fill_icon.imageset
- mypage_empty_icon.imageset
- mypage_fill_icon.imageset
- recommend_empty_icon.imageset
- recommend_fill_icon.imageset
- report_empty_icon.imageset
- report_fill_icon.imageset
- add_routine_icon.imageset
- asterisk_icon.imageset
- bitnagil_logo.imageset
- check_icon.imageset
- checked_icon.imageset
- chevron_icon.imageset
- default_emotion_graphic.imageset
- delete_icon.imageset
- edit_icon.imageset
- ellipsis_icon.imageset
- exclamation_filled_icon.imageset
- information_icon.imageset
- plus_icon.imageset
- profile_graphic.imageset
- repeat_icon.imageset
- routine_creation_icon.imageset
- routine_icon.imageset
- setting_icon.imageset
- sort_icon.imageset
- subRoutine_icon.imageset
- trash_icon.imageset
- unchecked_icon.imageset
- Sources
- Common
- Component
- TableViewCell
- DesignSystem
- Font
- Extension
- Protocol
- View
- EmotionRegister
- Model
- ViewModel
- View
- Component
- Home
- Model
- ViewModel
- View
- Component
- Login
- Model
- ViewModel
- View
- Component
- MyPage
- ViewModel
- View
- Onboarding
- Model
- ViewModel
- View
- Component
- RecommendedRoutine
- Model
- ViewModel
- View
- Component
- ResultRecommendedRoutine
- ViewModel
- View
- RoutineCreation
- Model
- ViewModel
- View
- Component
- Setting
- ViewModel
- View
- Component
- SupportingFiles
- Tuist
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
11 | 11 | | |
12 | 12 | | |
13 | 13 | | |
14 | | - | |
| 14 | + | |
15 | 15 | | |
16 | 16 | | |
17 | 17 | | |
| |||
97 | 97 | | |
98 | 98 | | |
99 | 99 | | |
100 | | - | |
101 | 100 | | |
102 | 101 | | |
103 | | - | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
Whitespace-only changes.
This file was deleted.
Lines changed: 0 additions & 8 deletions
This file was deleted.
Lines changed: 0 additions & 162 deletions
This file was deleted.
0 commit comments