Toy Project/Apple Music (iOS)

2. Project 분석 및 기초작업

개발자킹콩 2021. 2. 15. 19:50

 

목차

1. collectionView, custom Cell

2. project 분석

 


 

 

1. collectionView, custom Cell

 

 

 

 

 

앞으로 다음과 같은 파일 경로로 지정하여 프로젝트를 진행할 것이다.

이는 파일들을 이쁘게 지정하여 기술부채의 최소화와 유지보수 및 관리, 재활용에 이득이 되며 코드 가용성을 높히게 될 것이다.

 

 


 

시작! 이전에 배웠던 개념들을 이용해서 간단한 기초작업을 한다.

 

 

 

 

 

collectionView의 auto layout을 화면 가득하게 지정해준다.

그리고 cell의 크기를 지정하는데 180,240으로 맞추고

우리가 크기를 지정할 것 이기에 Estimate Size 를 None 로 지정한다.

 

 

각각의 auto layout의 세부적인 픽셀 같은 것은 개발자의 느낌에 맞기도록 하겠다.

 

 

 


 

Custom Cell

 

우리 커스터마이징한 Cell을 이제 적용하려 한다.

 

 

 

Cell Class를 ViewController 밖에서 만들었기에 StoryBoard의 CollectionView의 custom cell을 TrackCollectionViewCell로 지정하고 storyboard에서 연결하도록 하자.

 

 

custom cell 완료

 

 

 


 

CollectionView

 

 

 

 

HomeViewController를 만들고 View(storyboard)와 연결된 클래스가 HomeViewController라는 것을 지정하고, collectionView와 연결시킨다. —> Datasource, Delegate

 

 

 

 

 

그럼 이제 해당 Protocol에 해당하는 부분을 구현하면 된다.

 

 

 

 

 


 

 

 

 

 

 

 

달라진 점이 있다면 headerView를 어떻게 지정해야 하는가 이다.

 

기존에 사용헸던 방법을 정리하면

 

  • DataSource의 경우는 Cell 이 몇개인지?, Cell이 어떻게 표현되는 지를 구현 하였다.
  • Delegate의 경우는 Cell 을 선택했을 때 어떤 기능을 수행할 것인지를 구현하였다. 이는 performSegue로 데이터를 보낸것처럼 표현하며, prepare에서 이를 받아 도착지점의 변수를 들고와 값의 변경을 만들도록 한다.
  • CollectionView의 경우 자유로운 레이아웃을 가지기에 이를 전문적으로 관리하는 객체가 존재하며 그것은UICollectionViewDelegateFlowLayout에 해당하며, 해당 collectionView Cell이 다양한 화면에 알맞게 크기가 지정되도록 레이아웃 구조를 계산할 수 있는 것도 있다. 여기서 auto layout에 지정된 속성을 조작하여 계산하게 된다. Return CGSize(width: , height)

 

 


 

코드리뷰

 

 

 

 

순서대로 collectionView의 DataSource부분은 자동완성으로 만들어 주면 Cell 갯수를 리턴하고, collectionView.dequeueReusable 메소드를 사용해서 우리가 만든 Custom Cell로 Cell이 표현되도록 설정한다. 데이터의 이동 부분과 헤더 뷰의 구성은 아직 안 만들어 주었다. 

그리고 collectionView의 경우 형식이 자유롭기에 이를 전문적으로 관리하는 객체가 존재하며, 이는 UICollectionViewDelegateFlowLayout이다. 여기서 sizeforitemat으로 자동완성은 쉽게 만들수 있으며 내가 원하는 사이즈에 맞게 CGSize 로 리턴하면 된다.

 

 

 

 

결과물

 

 

 

 


 

 

 

Project 분석

 

 

Home에서는 홈화면과 관련된 것

Player에서는 player화면과 관련된 것

Track애서는 곡에대한 정보 —> 곡에 대한 모델을 갖고 있다.

Style에서는 다크모드에 대한 코드

Resources에서는 음악파일

 

우리는 현재 StoryBoard를 이용하여 구현하고 있다. 애플이 지정한 미래는 SwiftUI가 맞다고 생각하지만 IOS13부터 제공되는 서비스 이기에 IOS11,12 사용자들이 아직은 많아 제한적이다. 

 

 

 

 

 

'Toy Project > Apple Music (iOS)' 카테고리의 다른 글

6. Header View (View 구성)  (0) 2021.02.19
5. Home CollectionView (Header View 전까지)  (0) 2021.02.18
4. Track Model, ViewModel  (0) 2021.02.18
3. Home View  (0) 2021.02.15
1. Apple Music Style Application Start  (0) 2021.02.15