SoundHub
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를 통한 데일리 스크럽
사용한 아키텍처(MVVM)
•WHY? 아키텍처를 사용한 이유
1. 코드 수정에 따른 스파게티 코드 문제점 직면

•WHY? MVVM을 선택한 이유
1. MVVM은 View와 ViewModel간 N:1 관계

(테스트 수월)
2. MVVM, MVP 경험 필요

사용한 아키텍처(MVVM)
•내가 생각하는 MVVM의 구조 (Android)























사용한 아키텍처(MVVM)
•고민하며 어려웠던 점

ViewModel을 어떻게 설계하느냐에 대한 계속되는 고민
•MVVM의 ViewModel의 설계 근거
1. View와 ViewModel은 N:1의 관계

View가 변하더라도 ViewModel은 재사용이 가능해야한다.

2. OOP의 SRP 원칙

“모든 클래스나 모듈은 하나의 책임만 맡는다”는 원칙

∴ 이를 바탕으로 ViewModel은 View의 기능별로 1개씩 정의해 프로젝트 진행 중
사용한 아키텍처(MVVM)
•프로젝트에 적용 





















사용한 아키텍처(MVVM)
•Android와 클라이언트 통신





















사용한 아키텍처(MVVM)
•DataAPI와 ViewModel간 통신





















사용한 아키텍처(MVVM)
•View와 ViewModel 연결





















사용한 아키텍처(MVVM)
•사용자와 View 연결





















UI/UX - 머티리얼 디자인
•XML 설정







•Android 코드













추가될 기능
•Data Binding 메모리 처리

Activity 생명 주기에 따른 Binding, unBinding 처리
•검색 기능, 페이지네이션 기능

페이지네이션은 기본 기능과 레이아웃 틀 완성 (서버에서 API 준비 중)
•단위 테스트, UI 테스트, Fabric 적용

현재 간단한 단위 테스트, UI 테스트는 예제로 진행 완료

그러나, 네트워크 통신 등 처리를 위한 공부 필요

공부를 하며 추후 Fabric까지 적용 할 예정
•음악 Merge 기능

현재는 Merge를 서버에서 처리

그러나, 근본적으로 Merge를 처리하는 것은 많은 부하를 필요

그래서 이후 클라이언트에서 처리 (음악 Merge은 구현 완료)


SoundHub 프로젝트 발표 자료

  • 1.
  • 2.
    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 경험 필요

  • 4.
    사용한 아키텍처(MVVM) •내가 생각하는MVVM의 구조 (Android)
 
 
 
 
 
 
 
 
 
 
 

  • 5.
    사용한 아키텍처(MVVM) •고민하며 어려웠던점
 ViewModel을 어떻게 설계하느냐에 대한 계속되는 고민 •MVVM의 ViewModel의 설계 근거 1. View와 ViewModel은 N:1의 관계
 View가 변하더라도 ViewModel은 재사용이 가능해야한다.
 2. OOP의 SRP 원칙
 “모든 클래스나 모듈은 하나의 책임만 맡는다”는 원칙
 ∴ 이를 바탕으로 ViewModel은 View의 기능별로 1개씩 정의해 프로젝트 진행 중
  • 6.
    사용한 아키텍처(MVVM) •프로젝트에 적용
 
 
 
 
 
 
 
 
 
 

  • 7.
    사용한 아키텍처(MVVM) •Android와 클라이언트통신
 
 
 
 
 
 
 
 
 
 

  • 8.
    사용한 아키텍처(MVVM) •DataAPI와 ViewModel간통신
 
 
 
 
 
 
 
 
 
 

  • 9.
    사용한 아키텍처(MVVM) •View와 ViewModel연결
 
 
 
 
 
 
 
 
 
 

  • 10.
    사용한 아키텍처(MVVM) •사용자와 View연결
 
 
 
 
 
 
 
 
 
 

  • 11.
    UI/UX - 머티리얼디자인 •XML 설정
 
 
 
 •Android 코드
 
 
 
 
 
 

  • 12.
    추가될 기능 •Data Binding메모리 처리
 Activity 생명 주기에 따른 Binding, unBinding 처리 •검색 기능, 페이지네이션 기능
 페이지네이션은 기본 기능과 레이아웃 틀 완성 (서버에서 API 준비 중) •단위 테스트, UI 테스트, Fabric 적용
 현재 간단한 단위 테스트, UI 테스트는 예제로 진행 완료
 그러나, 네트워크 통신 등 처리를 위한 공부 필요
 공부를 하며 추후 Fabric까지 적용 할 예정 •음악 Merge 기능
 현재는 Merge를 서버에서 처리
 그러나, 근본적으로 Merge를 처리하는 것은 많은 부하를 필요
 그래서 이후 클라이언트에서 처리 (음악 Merge은 구현 완료)