Skip to content

alexcho617/MovieTalk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

72 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

“무비톡” - 영화인들의 소모임

appIcon
image

⭐ 프로젝트 소개

영화를 좋아하는 사람들을 위한 SNS 앱입니다. 원하는 영화를 검색 하고 링크하여 게시글을 작성할 수 있으며 좋아요와 댓글 기능으로 다른 사람들과 교류할 수 있습니다.

👤 개발 인원

개인 프로젝트

📆 개발 기간

2023.11.1. ~ 2023.12.7. (4주)

🛠️ 기술스택

UIKit / MVVM / RxSwift / SnapKit / Realm / Kingfisher / Moya / OpenAPI

📦 개발환경 & 타겟

  • Swift 5.8 / Xcode 14.3 / SnapKit 5.6 / Kingfisher 7.9 / Alamofire 5.8 / Realm 10.42
  • iOS 16.0

🤔 개발하며 고민한 점

  • JWT 기반 로그인 & 인증 구현 및 HTTP status code 확인하여 토큰 만료시 Refresh처리
  • scrollViewDidScroll로 의 현재 오프셋과 콘텐츠의 길이를 비교 후 nextCursor로 fetch하여 커서 기반 페이지네이션 구현
  • PHPicker로 사용자 사진 접근 후 서버 제한 사항에 맞추어 compressionQuality를 사용한 이미지 다운샘플링 후 POST 요청
  • DTO를 사용한 레이어 분리와 Router를 통해 네트워크 모듈을 추상화하여 약 20개의 엔드포인트를 효율적으로 관리
  • 영화 검색시 RxSwift debounce와 distincUntilChanged를 통해 API 과호출을 제어했으며 에러 발생시에도 UI 구독 유지
  • MVVM + In/Out패턴을 도입하여 데이터 스트림이 직관적이도록 구조화
  • DI적용을 통해 주요 ViewModel의 코어 비즈니스 로직 Unit 테스트

⚠️ 트러블슈팅

  • 홈 뷰와 댓글 뷰 사이에 강한참조 사이클이 발생하여 closure에 weak을 사용하고 댓글 뷰가 사라지는 시점에서 disposeBag의 인스탄스를 교체해주어 deinit이 호출됨을 확인 함으로 메모리 누수를 막았습니다.

  • ScrollView의 서브뷰로 CollectionView가 임베딩 상황에서 스크롤이 제대로 동작하지 않아 CollectionView의 intrinsicContentSize를 오버라이드시키고 scrollEnabled를 false로 바꾸어 자연스러운 스크롤이 되도록 해결했습니다.

🍎 기능상세

  • 영화 테마의 SNS 게시글
image
image

  • 회원가입 및 로그인
image

image

  • 영화 검색 & 링크
image
image

  • 좋아요 & 댓글
image

  • 프로필 조회 및 수정
image
image

About

영화를 좋아하는 사람들을 위한 SNS

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages