Giter Site home page Giter Site logo

mediaplayer_ios's Introduction

dogDiary_iOS

유튜브 뮤직을 벤치마킹 한 미디어 플레이어 앱입니다.


디자인 패턴

  • MVC 패턴 사용 (플레이어만 MVP 패턴 사용)
  • 컨트롤러에서 뷰를 구성하고, 데이터 통신으로 받아온 객체들을 모델에 저장해 관리
  • 음악 재생 클래스는 한 클래스에서 여러개의 뷰에 상태나 변화를 알려줘야 하므로 Presenter를 이용해 구현 (MVP 패턴)

레이아웃 구성

  • 코드로 레이아웃 구현 : SnapKit
  • 홈화면: 테이블 안에 테이블 구현 + 핫 10 음악 캐로셀 페이징처리
  • 관심 노래 선택 화면 : 컬렉션 뷰로 음악 셀 구현 후 클릭 시 관련 노래 3개 추가로 로드

데이터 통신

  • Alamofire을 이용한 데이터 통신 (get, post, put, delete)
  • API 매니저를 이용하여 메인 URL과 토큰 관리
  • 액세스토큰과 리프레시토큰 키 체인에 저장하여 자동로그인 구현
  • API 통신 에러 코드와 메시지 JSON 변환

주요 기능

  • 소셜로그인 : 구글 / 카카오 / 네이버 / 애플 로그인 구현
  • 다국어처리 : Localizable을 이용하여 다국어처리 (+ 파이썬으로 파파고 연동하여 자동 번역 해주는 코드 구현)
  • 로그 전송 : Firebase로 로그정보 전송, 로그 매니저에 로그전송 함수 구현 후 각 액션마다 로그 전송
  • 캐시 기록 : 들었던 오디오 정보 기록하기 위해 기기(UserDefaults)에 재생기록 저장
  • 오디오 병합 : AVMutableComposition 을 이용하여 두 오디오 파일 병합

mediaplayer_ios's People

Contributors

nasneyland avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.