Skip to content

jcrescent61/ios-wanted-BoxOffice

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

83 Commits
 
 
 
 
 
 
 
 

Repository files navigation

🎬 BoxOffice 프로젝트


프로젝트 및 개발자 소개

소개 : 박스오피스 순위를 소개하는 앱입니다.
프로젝트 기간 : 2022.01.02 ~ 2022.01.06

엘렌 우롱차

엘렌(Ellen)

  • API 관리 및 네트워킹 객체 구현
  • MVVM 구조 설계
  • 메인 화면 구현
  • 영화 상세 화면 구현

우롱차

  • Firebase 구현
  • 리뷰 작성 화면 구현
  • 리뷰 리스트 화면 구현

Gyro Data 프로젝트 로고


📱 구현 화면

메인 화면 상세 화면 리뷰 화면

폴더 구조

  • Entry: AppDelegate과 SceneDelegate이 있습니다.
  • Model: 네트워킹, 파이어베이스에 사용되는 모델입니다.
  • Network: API, REST, FierBase의 CRUD 로직을 포함합니다.
  • Domain: 화면 별 구현사항을 포함합니다.
  • Extension: 커스텀한 Extension의 집합입니다.
  • SupportFile: Assets, plist파일 등이 있습니다.

구현 내용

swift xcode img

뷰 컨셉 - 메가박스

단방향 MVVM

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

네트워킹 객체 & 3중 네트워킹

비동기 로직을 Combine을 사용하여 구현하였습니다. 하나의 API만이 아닌 여러 API에도 사용가능하게 구현하였습니다. 셀의 갯수 당 세번씩 request를 해야하는데 이 점을 Combine의 Sequence를 사용해 구현하였습니다.

FireStore 와 FireStorage

요구사항에는 FireStorage를 사용하라고 명시되어있으나 사용에 참고하라는 링크는 FireStore 여서 혼동을 많이했습니다. 원래 계획은 FireStore에 정보를 저장하고 이미지와 같은 큰 크기의 파일만 파이어Storage에 저장할 생각이였으나 FireStore에만 사용해야된다는 조건으로 큰크기의 이미지파일의 크기를 줄이고 인코딩하여 String으로 저장하였습니다.


About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Swift 100.0%