Skip to content

Commit fa6fc49

Browse files
choijungpgeneralbantaipaise
committed
[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

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.coderabbit.yaml

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
language: ko-KR
2+
3+
early_access: true
4+
enable_free_tier: true
5+
6+
reviews:
7+
profile: chill
8+
request_changes_workflow: false
9+
high_level_summary: true
10+
high_level_summary_placeholder: '@coderabbitai 요약'
11+
auto_title_placeholder: '@coderabbitai'
12+
poem: true
13+
review_status: true
14+
collapse_walkthrough: false
15+
16+
abort_on_close: true
17+
18+
auto_review:
19+
enabled: true
20+
auto_incremental_review: true
21+
ignore_title_keywords: []
22+
labels: []
23+
drafts: false
24+
base_branches: []
25+
26+
tools:
27+
shellcheck:
28+
enabled: true
29+
ruff:
30+
enabled: true
31+
markdownlint:
32+
enabled: true
33+
github-checks:
34+
enabled: true
35+
timeout_ms: 90000
36+
languagetool:
37+
enabled: true
38+
disabled_rules:
39+
- EN_UNPAIRED_BRACKETS
40+
- EN_UNPAIRED_QUOTES
41+
disabled_categories:
42+
- TYPOS
43+
- TYPOGRAPHY
44+
- CASING
45+
enabled_only: false
46+
level: default
47+
enabled_rules: []
48+
enabled_categories: []
49+
biome:
50+
enabled: true
51+
hadolint:
52+
enabled: true
53+
swiftlint:
54+
enabled: true
55+
phpstan:
56+
enabled: true
57+
level: default
58+
golangci-lint:
59+
enabled: true
60+
yamllint:
61+
enabled: true
62+
gitleaks:
63+
enabled: true
64+
checkov:
65+
enabled: true
66+
ast-grep:
67+
packages: []
68+
rule_dirs: []
69+
util_dirs: []
70+
essential_rules: true
71+
72+
chat:
73+
auto_reply: true
74+
75+
knowledge_base:
76+
web_search:
77+
enabled: true
78+
learnings:
79+
scope: auto
80+
issues:
81+
scope: auto
82+
jira:
83+
project_keys: []

.github/workflows/build_test.yml

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
name: iOS CI Build (Tuist + Secrets)
2+
3+
on:
4+
pull_request:
5+
branches:
6+
- develop
7+
8+
jobs:
9+
build:
10+
runs-on: macos-latest
11+
12+
steps:
13+
- name: Checkout code
14+
uses: actions/checkout@v4
15+
16+
- name: Set Xcode version
17+
run: sudo xcode-select -s /Applications/Xcode_16.2.app
18+
19+
- name: Install Mise and Tuist
20+
run: |
21+
curl -fsSL https://mise.jdx.dev/install.sh | sh
22+
export PATH="$HOME/.local/bin:$PATH"
23+
mise install tuist
24+
mise use -g tuist
25+
26+
- name: Generate xcconfig
27+
run: |
28+
mkdir -p SupportingFiles
29+
echo "BASE_URL = ${BASE_URL}" > SupportingFiles/Secrets.xcconfig
30+
env:
31+
BASE_URL: ${{ secrets.BASE_URL }}
32+
33+
- name: Generate Xcode project with Tuist
34+
run: |
35+
export PATH="$HOME/.local/bin:$PATH"
36+
mise exec -- tuist install
37+
mise exec -- tuist generate --no-open
38+
39+
- name: Build with xcodebuild
40+
run: |
41+
set -o pipefail
42+
xcodebuild \
43+
-workspace Bitnagil.xcworkspace \
44+
-scheme App \
45+
-sdk iphonesimulator \
46+
-destination 'platform=iOS Simulator,name=iPhone 15,OS=17.2' \
47+
clean build | xcpretty
48+

.gitignore

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ xcuserdata/
1111

1212
## compatibility with Xcode 3 and earlier (ignoring not required starting Xcode 4)
1313
build/
14-
DerivedData/
14+
**/DerivedData/
1515
*.moved-aside
1616
*.pbxuser
1717
!default.pbxuser
@@ -97,7 +97,12 @@ iOSInjectionProject/
9797

9898
# 프로젝트의 모든 경로에서 xcconfig 파일을 포함하지 않도록 함
9999
**/.xcconfig
100-
101100
*.xcconfig
102101

103-
102+
# Tuist가 생성하는 파일 무시
103+
**/*.xcodeproj
104+
*.xcworkspace
105+
**/Derived/
106+
.build/
107+
.cache/
108+
*.swp

Bitnagil.xcworkspace/.tuist-generated

Whitespace-only changes.

Bitnagil.xcworkspace/contents.xcworkspacedata

Lines changed: 0 additions & 29 deletions
This file was deleted.

Bitnagil.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings

Lines changed: 0 additions & 8 deletions
This file was deleted.

Bitnagil.xcworkspace/xcshareddata/xcschemes/Bitnagil-Workspace.xcscheme

Lines changed: 0 additions & 162 deletions
This file was deleted.

0 commit comments

Comments
 (0)