heerucan / SSAC-iOS

SSAC 2기 수업/과제 정리
https://bit.ly/3SYL8BQ
1 stars 0 forks source link

[Project] Trend Media Mini Project 구현하기 #10

Closed heerucan closed 1 year ago

heerucan commented 2 years ago

TMDB PROJECT

Trend Media Mini Project 구현하기

🥳 TODO

  1. Search View : 미디어 목록 검색 뷰

    • [x] TMDB API 구현하기
    • [x] .gitignore 생성
    • [x] media_type : all / movie / tv / person 중 하나
    • [x] time_window : day / week 중 하나
    • [ ] UISearchBar -> UISearchController 사용해서 검색 기능 추가
    • [x] UI 구현
    • [x] 페이지네이션
    • [x] 장르 id에 따라 구현
    • [x] 날짜 형식
    • [x] 장르 API 분리
    • [ ] overview 대신 배우 데이터 넣기
  2. Detail View : 해당 미디어 관련 디테일한 정보 보여주는 뷰

    • [x] movieID 데이터 전달해서 배우 보여주는 credit GET API 연결
    • [x] 배우 보여주는 DetailView 화면 구현
    • [x] headerView 구현
    • [x] API 코드 분리하기
    • [x] completionHandler typealias 사용
    • [x] DispatchQueue 사용해보기
    • [x] crew / cast 분리해서 cell 구현
    • [x] overview expandable cell 구현
  3. Youtube Web View : 해당 미디어와 관련된 유튜브 웹뷰

    • [x] SearchView의 링크 버튼 클릭시 웹뷰로 연결
    • [x] 연결하는 API로 서버 통신
  4. Similar Content View : 해당 미디어와 비슷한 영화를 추천해주는 뷰

    • [x] UI 구현 : cell 안에 cell
    • [x] 서버 통신해서 데이터 바인딩
    • [x] movieID 넘겨줘서 관련 영화와 비슷한 콘텐츠 보여주기
  5. Location View : 위치를 기반으로 근처 영화관을 보여주는 뷰

    • [ ] MKMapKit 사용해서 지도 띄우기
    • [ ] CoreLocationManager 사용해서 위치 정보 가져오기
    • [ ] info.plist 사용해서 접근 권한 허용하기
  6. Onboard View : TMDB를 소개하는 뷰

    • [x] PageViewController를 통해서 온보딩 화면 추가하기
    • [x] UserDefaults를 통해서 최초 앱 실행 시에만 온보딩 화면 띄우기
  7. 추가적으로

    • [x] Access Control을 통해서 코드의 인터페이스 명확하게 지정하기
    • [x] Custom Framework 추가해서 프로젝트 가볍게 만들기
    • [ ] APIManager Code 개선하기
heerucan commented 2 years ago
  1. TMDB 프로젝트에서는 Manger 클래스에 Alamofire + SwiftyJSON 구문이 반복되고 있는데, 이 지점도 더 간결하게 만들 수 있는 방법이 있습니다. 네트워크 요청하는 메서드와 응답받은 데이터를 뷰에 전달하는 메서드를 2개로 분리하는 것인데, 한 번 고민해보시는 시간을 가져보시는 게 어떨까요?

  2. 상태 코드 처리 역시 열거형과 Error Protocol을 활용해서 추가적인 개선을 해보셔도 좋을거 같아요. 각 상태코드 마다 json 값이 다르게 오거나 별도로 토스트 메시지를 띄워야 하는 경우 등도 있을거에요.