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