SoundHub
•프로젝트 소개
1. GitHub처럼각각 음악 파일을 합쳐, 더 좋은 음악을 만드는 플랫폼
•프로젝트의 목적
1. MVVM 패턴, Data Binding 개념 이해 및 적용
2. Git Flow 개념 이해 및 적용
3. 클라이언트의 UI/UX를 결정을 협업하며 UI/UX 이해
•프로젝트 관리
1. Google Doc로 매주 해야할 일 작성
(https://docs.google.com/spreadsheets/d/1aOBVDjqBJo5Attgge3mPwlsU10jkrWDfB0WdC5FbMw4/edit#gid=761901345)
2. Hangout를 통한 데일리 스크럽
3.
사용한 아키텍처(MVVM)
•WHY? 아키텍처를사용한 이유
1. 코드 수정에 따른 스파게티 코드 문제점 직면
•WHY? MVVM을 선택한 이유
1. MVVM은 View와 ViewModel간 N:1 관계
(테스트 수월)
2. MVVM, MVP 경험 필요
사용한 아키텍처(MVVM)
•고민하며 어려웠던점
ViewModel을 어떻게 설계하느냐에 대한 계속되는 고민
•MVVM의 ViewModel의 설계 근거
1. View와 ViewModel은 N:1의 관계
View가 변하더라도 ViewModel은 재사용이 가능해야한다.
2. OOP의 SRP 원칙
“모든 클래스나 모듈은 하나의 책임만 맡는다”는 원칙
∴ 이를 바탕으로 ViewModel은 View의 기능별로 1개씩 정의해 프로젝트 진행 중
추가될 기능
•Data Binding메모리 처리
Activity 생명 주기에 따른 Binding, unBinding 처리
•검색 기능, 페이지네이션 기능
페이지네이션은 기본 기능과 레이아웃 틀 완성 (서버에서 API 준비 중)
•단위 테스트, UI 테스트, Fabric 적용
현재 간단한 단위 테스트, UI 테스트는 예제로 진행 완료
그러나, 네트워크 통신 등 처리를 위한 공부 필요
공부를 하며 추후 Fabric까지 적용 할 예정
•음악 Merge 기능
현재는 Merge를 서버에서 처리
그러나, 근본적으로 Merge를 처리하는 것은 많은 부하를 필요
그래서 이후 클라이언트에서 처리 (음악 Merge은 구현 완료)