Skip to content

dnwhd0112/ios-wanted-PersonalScheduler

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 

Repository files navigation

PersonalScheduler 프로젝트


프로젝트 및 개발자 소개

소개 : 개인 스케줄을 등록하고 관리하는 앱입니다.
프로젝트 기간 : 2022.01.8 ~ 2022.01.13

우롱차

미구현 사항

애플 개발자 계정이 없어 OAuth를 통해 회원가입 불가 및 노티피케이션 알림 불가능.

테스트용 계정

facebook email: [email protected] password: testpassword

우롱차

📱 구현 화면

메인 화면 리스트 화면 상세 화면

폴더 구조

  • Entry: AppDelegate과 SceneDelegate이 있습니다.
  • Model: 네트워킹, 파이어베이스에 사용되는 모델입니다.
  • Network: FierBase의 CRUD 로직과 Kakao, Facebook 계정연동시 필요한 로직을 포합합니다.
  • Domain: 화면 별 구현사항을 포함합니다.
  • Extension: 커스텀한 Extension의 집합입니다.
  • Error: 정의된 에러타입이 있습니다.
  • Utility: 정의된 Observable이 있습니다.

구현 내용

단방향 MVVM

내부 로직이 혼잡해지는 것을 방지하고자 로직의 흐름을 input과 output 처럼 단방향으로 제한했습니다. 이러한 형태를 ViewModelAble로 추상화하였습니다. ViewController에서 추상화 된 ViewModelAble로 ViewModel의 Newtork객체 모두 의존성주입 형태로 초기화하며 이러한 구조는 테스트 코드 작성에도 용이합니다.

FireBase 데이터 구조

Firebase의 저장구조는 Key: Value 형태로 저장이 됩니다. 사용자로부터 카카오톡이나 페이스북에서 고유한 ID를 가져온뒤 이에 할당하는 UserID를 새로 발급해주었습니다. 이 아이디를 key 값으로 데이터를 저장합니다. 물론 저장되는 데이터도 고유한 UserId를 가집니다.이를 트리로 나타내면 다음과 같습니다.

firebaseDatable 구현

파이어 베이스의 데이터를 조회하는 경로를 protocol로 정의하고 원하는 데이터의 경로에 따라 다르게 조회할수 있게끔 구현하였습니다.

Observable을 사용한 뷰처리

Observable을 사용하여 데이터에 따라 뷰가 알맞게 변경되게끔 구현하였습니다.


About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Swift 100.0%