Nexters 19th 테스토스테론 팀 tidify-iOS 저장소입니다.
쉽고 간편한 북마크 서비스 Tidify - 티디파이
- 리팩토링: 2023.01.12 ~ 2023.05.23
- CleanArchitecture + ReactorKit + Coordinator
- Tuist(Modulization)
- RxMoya
- RxSwift
- RxCocoa
- SnapKit
- Then
쉽고 깔끔한 북마크, Tidify
Nexters 19th 테스토스테론 팀 tidify-iOS 저장소입니다.
쉽고 간편한 북마크 서비스 Tidify - 티디파이
ActionSheet 기반 분기하여 로직 실행
AS-IS: 리뉴얼로 인해 TabBar가 없음
TO-BE: 기존 TabBar 코드 참고하여 리뉴얼 구조에 맞게 개선 및 구현
TO-BE: KeyChain을 활용한 데이터 save, read, delete 기능 구현
앱 내에서 사용할 BottomSheet 구현
탭 바, 네비게이션 바 버튼 등 전반적으로 레이아웃을 점검하고 알맞게 수정합니다.
TO-BE:
연동 리스트
외 비회원 모드 제공
TO-BE: 폴더 생성 기능을 API 연동합니다.
TO-BE: 검색 페이지 기능 구현
AS-IS: Apple Login 기능 부재
TO-BE: Apple Login 기능 구현
TO-BE: 폴더 작업이 완료된 이후 북마크 생성 쪽 폴더 관련 로직 연동
Create BookMark
Home
Search
AS-IS: 토큰 데이터를 키체인을 통해 관리하기 때문에 앱을 제거하여도 토큰이 삭제되지 않음.
TO-BE: 첫 번째 런치 여부를 확인하여 키체인 리셋
[ ] UserDefault Wrapper 구현 및 적용
[ ] 재설치시 KeyChain 데이터 리셋 적용
TO-BE:
TO-BE: 북마크 생성 스텝을 점검하여 미구현 사항들을 구현합니다.
SnsType에 따른 AuthAPI 연동
AS-IS: 기본적인 navigationBar와 ContainerView만 깔려있는 상태
TO-BE: 폴더 컬렉션뷰 구현 및 스와이프 액션 구현
네비게이션 로직 수정 및 Bar Button visible 이슈
AS-IS: 리뉴얼로 인한 SignInScene
부재
TO-BE: 기존 SignInScene
구조를 개선하여 새롭게 구현
TO-BE: 폴더 생성 뷰 구현 및 네비 연동
레거시 코디네이터 패턴을 그대로 적용한 Floating TabBar 구현
AS-IS: monolithic 구조
TO-BE: CleanArchitecture Layer 의존성에 따른 앱 모듈화 & Tuist를 활용한 프로젝트 관리
TO-BE: 설정 페이지 구현
TO-BE: 서버 API 설계를 반영하여 폴더 탭의 구조를 수정하고, 미구현 사항들(Service, DTO 등)을 구현합니다.
BookMarkRegisterView & ViewModel & Coordinator 작업
AS-IS: API URL, 유저토큰 등의 정보들이 노출되어있음, 자동로그인 기능 없음
TO-BE: 정보들을 키체인으로 저장, 자동로그인 기능 구현
Profile View & ViewModel & Coodinator 작업
북마크 생성 뷰 -> 저장 버튼 isEnabled 처리 로직 수정 필요, 에러 Label 텍스트 처리 로직 수정 필요
컬렉션뷰 셀 스와이프 -> 편집 기능 미구현
AS-IS: 의존성 주입 코드의 일관성 부재
TO-BE: DIContainer를 활용하여 register, resolve 패턴 도입
AS-IS: 레거시 코드 OnboardingScene의 MVVM 구조
TO-BE: UniDirectional 한 데이터 흐름을 위해 ReactorKit 적용
AS-IS: Home UnitTest 부재
TO-BE: Home UnitTest 작성 가능한 부분까지 작성
AS-IS: 레거시 코드 SignInScene의 MVVM 구조
TO-BE: ReactorKit & CleanArchitecture 적용 및 코드 구조 개선
AS-IS: 홈 진입시 테이블뷰의 셀의 로딩이 매우 느림
TO-BE: 유저 입장에서 답답하지 않게 느껴지도록 변경
홈 진입시 ViewModel 내에서 SwifLinkPreview의 이미지 다운로드로 인해 셀이 느리게 보여지는것으로 추정.
이미지 캐싱 이용 || 이미지 다운로드 동안 기본 이미지로 대체 (혹은 더 좋은 방법 적용)
프로필 이미지와 계정 닉네임을 어디에 저장하고 어느 시점에 불러올지 고민
AS-IS: 리뉴얼로 인한 HomeScene
부재
TO-BE: 기존 SignInScene
구조를 개선하여 새롭게 구현
TO-BE: Presentation Layer에서 공용적으로 사용하기 위한 AlertPresenter를 구현한다.
To-Be
AS-IS: 리뉴얼로 인해 NavigationBar가 없음
TO-BE: 기존 NavigationBar 코드 참고하여 리뉴얼 구조에 맞게 개선 및 구현
AS-IS: 레거시 코드 및 MVVM 구조
TO-BE: ReactorKit 활용한 코드 구성 + Clean Architecture 구조
AS-IS: accessToken
expire 이후에도 로그인이 되고 있음.
TO-BE:
accessToken
expire시 refreshToken
을 활용하여 토큰 재발급 진행.(refreshToken
도 expire시 로그인 화면으로 이동)AS-IS: 북마크 수동 생성시 링크 주소만 입력받도록 되어있음.
TO-BE: 태그도 함께 입력받도록 수정.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.