일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 플랫디자인
- iOS앱개발올인원패키지Online.
- 픽셀
- 8 그리드 시스템
- git workflow
- 패스트캠퍼스후기
- 직장인자기계발
- 디자인 트렌드
- 직장인인강
- coordinator pattern
- 뉴모피즘
- 패캠챌린지
- viewDidAppear
- 스큐어모피즘
- SWIFT
- 아이폰
- 포인트
- commit messages
- git
- 코드리팩토링
- ios
- Xcodebuild
- Git Tutorial
- 입력 개수 제한
- 뉴북
- 머티리얼 디자인
- 패스트캠퍼스
- viewDidLoad
- commit
- commit message
- Today
- Total
목록강의/강의 챌린지(iOS 앱 개발 올인원 패키지 Online) (31)
왕논의 연구실

패스트캠퍼스 챌린지가 끝났습니다. 챌린지를 시작하게 된 계기 챌린지를 진행하려던 계획 중간 과정 그리고 마무리된 시점에서의 계획 수정 에 대해 서 말해보려고 합니다. 이 챌린지를 시작하게 된 것은 다른 분의 블로그를 보고 알게되면서 입니다. 챌린지 글을 보고서 패스트캠퍼스 챌린지를 하게 되었으니 홍보효과는 확실한 것은 맞는 것 같네요. ㅎㅎ 어떤 내용인지는 보지 않았지만, 하루하루 글을 작성해서 30일치를 마무리했다는 것이 대단하게 느껴졌습니다. 뭐가 대단하냐고 할 수도 있지만, 어떻게든 30일을 글을 작성했다는 것 자체가 대단하고 나도 해보고 싶다는 생각이 들었습니다. 마침 얼마 지나지 않아서 패스트캠퍼스에서 환급챌린지를 한다는 것을 알게 되어서 신청하고 시작하게 되었습니다. 처음 계획은 챌린지 종료와..

오늘은 애플뮤직앱 마무리 지었습니다. 스토리보드로 만들면서도 협업시 충돌이 일어나지 않게 하기 위해서 play화면을 따로 스토리보드로 만들었습니다. 스토리보드로 작업하면 각자 작업한 것을 merge시킬 때 충돌이 나기 때문에 어떻게 작업하나 궁금했는데 따로 관리하셨네요. 이 방법도 사용해보긴 했었습니다. 스토리보드로 작업할 시 협업을 위해 했던 것이 3가지정도 있었는데, 1. 한 명이 스토리보드를 Flow를 다 짠다. 2. 스토리보드를 분리하고 그 스토리보드로 이동하는 세그를 사용한다. 3. 스토리보드를 따로 만들고 코드로 화면이동한다. 정도로 했었습니다. 첫번째는 맨 처음했던 방법으로, 앱의 크기가 좀 작았고, 기획과 디자인을 했던 경험이 있는 분이 나서서 틀을 잡겠다고 하셔서 이런 방법을 사용했었습니..

오늘은 헤더부터 시작입니다. 최근의 뮤직앱을 보면 음악리스트만 있는 것이 아니라 추천이라든지 트렌드라든지 맨 위에 주목할 만한 음악을 올려놓습니다. 이 부분을 컬렉션뷰의 헤더로 빼서 작업을 하는 것입니다. 실습할 때는 몰랐는데 글을 작성하면서 생각해보니 앱 화면에서 뷰를 굉장히 잘 쪼개놓으신 것 같습니다. 이렇게 통일된 디자인 안에 하나만 다르게 하는 디자인을 만든 적이 있었는데, 그때는 한 뷰의 영역을 계산해서 나누고 관리하고 하느라고 굉장히 머리가 아팠습니다. 그 복잡하게 작업했던 것을 헤더뷰를 통채로 화면을 만드는데 사용하니깐 관리도 쉽고 코드 작성도 굉장히 깔끔하게 작성되는 느낌입니다. 과거에 녹음이나 음악플레이어를 만들어본 적이 있었습니다. 일단 그때와 지금이 다른 것은 그때는 웹에서 스트리밍 ..

어제는 AVPlayerItem에서 asset함수가 어떻게 생성되는지 알아보았는데요. 명확하게 해결된 느낌은 아니라서 찜찜합니다. 오늘은 또 실습을 하다가 awakeFromNib에 대해 궁금해져서 알아보려고 합니다. awakeFromNib은 테이블뷰든 콜렉션뷰든 셀을 커스텀하게 되면 자주 보입니다. 퀵 헬프로 알아보려해도 뜨는 것도 없다보니 사용하면서 대충 이런거구나 하면서 사용했었습니다. awakeFromNib의 이름을 보았을 때, 'Nib파일에서 awake했다' 라는 의미이기에 인터페이스 빌더의 스토리보드에서 화면을 가져오거나 구성한 이후가 아닐까 싶은 느낌으로 이해했습니다. 그 중에서도 단어 awake느낌이 load된 이후의 느낌이어서 cell에서의 viewDidAppear의 느낌이지 않을까 생각했습..

extension한 함수들을 살펴보겠습니다. 전 시간에는 구현되어 있으니깐 일단 사용해보았지만, 하나하나 살펴보면 기존에 배웠던 확장(extension)을 이용해서 기존의 오브젝트를 확장시켜서 사용했습니다. AVPlayerItem, AVPlayer, Album등에서 확장시켜서 필요한 함수를 작성했습니다. 여기서 몰랐던 것은 asset입니다. 흠... 기존에 알지 못하던 것이기도 하지만, 하나의 앱을 만들때는 좀 한번에 듣는 것도 좋을 것 같습니다. 실습사진에서 보면 맨 위에 metadataList를 asset.metadata로 읽어와서 저장합니다. 여기서 metadata는 노래 트랙의 이름, 작곡가, 앨범명 등등 track에 대한 다양한 정보를 가져오는 데이터라고 볼 수 있습니다. 그렇다면 asset은 ..

계속해서 애플뮤직st 앱을 만들겠습니다. 이부분을 구현하는데 이해가 안되는 것이 강의 영상이랑 똑같이 쳤는데 강의에서는 오류가 나지 않았고, 실습에서는 오류가 났습니다. 처음에 이것을 보고 왜 오류가 났지? 영상에서는 오류가 안 났는데?? 라고 생각해버렸습니다. 혹시 이걸보고 오류를 찾으셨나요? 강의를 보면서 실습하다보니 생기는 실수인듯 합니다. 처음에 오류문구를 보고서는 옵셔널에 값을 안 준채로 함수를 사용해서 그런가 싶었습니다. 하지만 찝찝한 것이 계속 코딩하면서 옵셔널을 많이 사용해봤는데 이런 경우를 겪어본 적이 적기 때문입니다. 게다가 자세히 보니까 self.todaysTrack은 오류가 나지 않았습니다. 다시 프로퍼티를 확인하고서야 알게된 것이 album 프로퍼티를 옵셔널이 아닌데 초기화시키지 ..