thesixthsense / app-ios Goto Github PK
View Code? Open in Web Editor NEW비거너 iOS App
비거너 iOS App
회원가입 / 로그인을 위한 로직을 위한 모듈 생성
Account
모듈 작성ChallengeRegister RIB을 만들어요.
ChallengeRegisterVC의 상단 탭은 ScrollView+StackView 또는 CollectionView로 구현할 수 있는데
두개 다 구현해본 바로,, Collection이 구현하기 쉽고 관리하기도 편했어서 Collection으로 만들겠습니다. 참고자료
그리고 탭 아래 뷰는 세로 스크롤이 필요하기 때문에 PageViewController+ScrollView 대신
TableView를 재활용하여 dataSource만 바꾸어 사용하겠습니다.
예시
SignUp API 성공/실패 케이스 별로 핸들링을 해요.
피그마에서 UI 디자인이 변경이 되었어요.. !
AppTextField
에 error message 추가AppButton
focus event, init 수정AppLabel
추가SelectButton
focus event 수정스플래시, 온보드 화면을 디자인에 맞춰서 수정해요
SignIn
에서 SignUp으로 이동할때 사용할 Payload 모델를 만들고, 로그인 후 엑세스 토큰을 저장하는 로직을 구현해요
SignIn
에서 SignUp
으로 이동하는 Payload를 작성해요회원정보수정에서 분리되는 각각의 화면을 만들어요
UserUseCase
를 구현해요.
챌린지 등록화면에서 넘어가는 챌린지 추천 리스트(?) 화면을 구성해요
ChallengeRegisterRIB
, HomeRIB
routing 연결회원가입 UI를 변경해요.
챌린지 등록에 필요한 API를 연결해요.
/challenge/join
프로젝트 단위에 모듈화를 비거너앱에 적용해요
Storage
모듈부터 App
에서 분리할 계획이에요VegannerApp
혹은 App
으로 변경해요figma 에 있는 color, font asset을 추가해요.
공통 버튼을 만들어요.
enum AppColor
만들기enum AppFont
만들기 PretendardUIButton
만들기UITextField
만들기SelectButton
만들기VegannerApp
모듈에RxKeyboard
추가 : 버튼 layout 잡을때 유용Repository 레이어 작업을 해요
Repository는 NetworkService
와 Rx
에 의존한 형태로 구현
구현은 RxMoya
로 구현
최대한 RxMoya의 강결합을 끊어내는 방식으로 구현할 계획입니다
회원가입 RIB을 구현해요.
SignUpRIB
에서 뒤로가기 했을때 SignInRIB
으로 가야하는데 연결을 어떻게 해야할지 모르겠어요 ;;
SignInRIB
이 SplashRIB
과 연결되어 있어서 Splash에서 분리해야 할 것 같아요.
닉네임, 생일 화면에 에러 메세지를 출력해요.
nickname
validation error message 추가birth
validation error message 추가로그아웃, 회원탈퇴 라우팅 및 로직을 구성해요
/users
데이터 모델 작업을 해요.
ObjectMapper
의 Mappable
프로토콜을 채택해서 사용해요.
// json 데이터 예시
[
{
"id": 1,
"name": "Leanne Graham",
"username": "Bret",
"email": "[email protected]",
"address": {
"street": "Kulas Light",
"suite": "Apt. 556",
"city": "Gwenborough",
"zipcode": "92998-3874",
"geo": {
"lat": "-37.3159",
"lng": "81.1496"
}
},
"phone": "1-770-736-8031 x56442",
"website": "hildegard.org",
"company": {
"name": "Romaguera-Crona",
"catchPhrase": "Multi-layered client-server neural-net",
"bs": "harness real-time e-markets"
}
},
... ,
...
]
날짜를 선택하고 현재보다 이전 날짜가 된 경우, 선택 완료 터치 했을 때 에러 토스트 노출되며 챌린지 등록 불가 처리
챌린지 등록 화면 레이아웃이 변경됨에 따라 UI를 변경해요.
date picker가 추가되었어요.
에러 코드별로 프론트에서 보여질 문구를 분기 처리해요.
UI 화면: > 와이어프레임_#에러 메세지
문구: 노션_개발 아카이브
기획이 변동됨에 따라
Bottom Tabbar
에RegisterRIB
을 연결해요.
HomeRIB
에 ChallengeRegisterRIB
의존성 추가Bottom Tabbar
에 ViewController
추가Routing
연결
SignUpRIB
과SignInRIB
을 연결해요
SignUpRIB
과 SignInRIB
router 연결챌린지 등록 에러 UI 방식을 에러 토스트에서 에러 팝업으로 변경해요
회원가입 RIB에 닉네임 중복 API와 회원가입 API를 연결해요.
온보드 로그인을 위한 RIB을 구성하고 화면을 구성해요
Account
모듈 내에 SignIn
RIB 보일러플레이트 코드를 추가해요Persistence 모듈을 만들어요
앱 내에 데이터를 저장하기 위한 모듈
UserDefaults를 사용하여 앱 내에 데이터를 저장하고, 데이터 모델을 저장할 때는 JSON 형태로 저장
Main branch에 올려야 해서 main으로 바로 적용합니다.
UserRIB
작업을 해요.
RxDataSources
를 이용해서 테이블 뷰에 정보를 나타내요.
RootRIB
에서 바로 UserRIB
을 부르도록 했습니다.
RxDataSources
에 사용할 ItemsSection
을 구현하여 Entity
와 분리 시켰습니다. : UserItemsSection
마이페이지 화면을 작성해요
마이페이지에 사용하는 API 연결
get /user/info
get /challenge/stats
/auth/logout
/user/withdraw
patch /user/info
스플레시를 위한 RIB을 구성하고 화면을 구성해요
Lottie
를 의존을 추가해요RootRIB
작업을 해요.
RootViewController
에 NavigationViewControllable
을 구현해요.
UINavigationVC
의 root
를 RootVC
로 적용해서 childVC
들은 모두 Navigation
위에서 작동하도록 했습니다.
window
및 navi
의 rootVC
를 바꿔야 하기 때문에 바꾸는 메소드도 만들었어요.
-> NavigateViewControllable
의 replaceRootNavigationViewController
에러 팝업을 만들어요
SignInRIB에 API를 연결하고, 에러 관련 처리를 추가해요
auth/login
연동UseCase
리팩토링
Repository
,Utils
를 모듈화 해요
Repository
, Utils
로직을 옮겨요수정 성공, 실패 토스트를 연결해요
정보 수정이 완료되었어요!
토스트오류가 발생했어요ㅠㅠ 다시 눌러주세요!
토스트마이페이지의 아이템들을 눌렀을 때 적절한 화면으로 이동시켜요.
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.