분류 전체보기

    [MusicKit] MediaPlayer 프레임워크 (4) - MPMediaQuery로 Apple Music 라이브러리 가져오기

    [MusicKit] MediaPlayer 프레임워크 (4) - MPMediaQuery로 Apple Music 라이브러리 가져오기

    자 유저의 Apple Music 앱 라이브러리에 접근할 수 있는 권한을 가져왔으니, 이제 정보를 가져오면 되겠죠?? 자, 제 앱의 라이브러리 창을 보시면!! 필요한 정보가 그렇게 많지는 않습니다ㅎㅎ 일단 앨범의 표지, 앨범의 이름, 앨범의 아티스트. 이렇게 3개죠?? 저는 이렇게 가져와주었습니다ㅎㅎ 복잡해 보이지만, 하나도 어렵지 않아요!! 정말입니다. private var albumsItemCollection: [MPMediaItemCollection]? private var albums = [Album]() //MARK: 가져온 앨범 정보를 저장할 구조체 struct Album { var title: String var artist: String var artwork: UIImage } func re..

    [MusicKit] MediaPlayer 프레임워크 (3) - Apple Music 접근 권한 가져오기

    [MusicKit] MediaPlayer 프레임워크 (3) - Apple Music 접근 권한 가져오기

    우리가 MusicKit과 MediaPlayer를 사용하는 가장 큰 이유는 Apple Music 앱과의 연동성 때문일거에요! 저는 앱의 라이브러리에 있는 곡의 정보를 불러와서 이를 앨범 단위로 보여준 후, 해당 곡을 재생시키는 그런 앱을 만들었는데요. MediaPlayer 프레임워크를 사용하면 이러한 작업들을 매우 손쉽게 해낼 수 있습니다ㅎㅎ 하지만, 우리가 만든 앱이 사용자의 Apple Music 앱에 접근해서 정보를 가져오기 위해서는, 사용자에게 허락을 받아야 합니다. 만약에 허락 받지 않고 사용을 하려고 한다면, [access] This app has crashed because it attempted to access privacy-sensitive data without a usage descri..

    [MusicKit] MediaPlayer 프레임워크 (2)

    [MusicKit] MediaPlayer 프레임워크 (2)

    사실 MediaPlayer 프레임워크를 통해서 음악앱을 만드는 일은 그렇게 어렵지 않습니다ㅎㅎ 나온지 얼마 되지 않은 기술이기 때문에, 좀 어색하다? 정도일거에요!! 아직 애플에서 만든 공식 듀토리얼은 없지만... 그래도 공식문서에서 나름 잘 설명해놓은 것 같아요. MusicKit에 대한 Documents를 쭉 읽고, 밑에 Topic 부분!!!을 한번 자세히 훑어보세요!! 대충 어떻게 이용하는 프레임워크구나 하는 감이 올 겁니다ㅎㅎ Apple Developer Documentation developer.apple.com 많은 항목들이 있지만, 기본적으로 요녀석들이 중요합니다!!! 왜냐면! 일단 재생하고 싶은 곡에 대해서 알아야 하고, 곡을 어떻게 재생시킬 지 알아야 하기 때문이죠!!! 자, 일단 곡에 대..

    [MusicKit] MediaPlayer 프레임워크 (1)

    [MusicKit] MediaPlayer 프레임워크 (1)

    SwiftUI 프레임워크를 사용해서 음악 플레이어를 만들었었습니다. 제가 플레이어를 만들 때 사용한게 바로 MediaPlayer 프레임워크인데요! Apple Developer Documentation developer.apple.com 애플 문서를 보면, MediaPlayer프레임워크는 MusicKit의 일부라고 소개되어 있어요. MusicKit은 작년에 출시된 아주 따끈따끈한 기술인데요!! 개발자들은 MusicKit을 통해 Apple Music API를 이용할 수 있습니다. 즉, Apple Music을 이용한 앱을 만들 수 있는거죠!! 그럼 개발자들은 이것으로 무엇을 할 수 있을까요?? 일단 떠오르는 건 나만의 애플뮤직 플레이어를 만드는 거에요! 복잡하고 기능 많은 Apple Music 앱 대신, 정말..

    진짜 오랜만에 좋은 아침

    어제 어쩔 수 없이 자다가 몇번 깬 것 빼고는 정말 오랜만에 상쾌한 아침이다. 일어나서 창문 열고, 물 마시고, 살짝 운동도 하고, 택배 온 것 정리 좀 하고 자리에 앉았는데, 오랜만에 느끼는 상쾌함과 뿌듯함이다. 정말 평범한 것들이었는데, 12월부터 1월 내내는 이런 것들이 너무 힘들었던 것 같다. 그 이전 부터였을 수도 있고 아침에 일어나는게 너무 힘들었었고, 무언가에 쫒기듯이 일어나서 집을 나섰던 것 같다. 설에 본가에서 정말 잘 쉬고 왔구나 싶다.

    [CoreData] Relationship을 통해 Data를 관리하기

    [CoreData] Relationship을 통해 Data를 관리하기

    앱 출시 데드라인 전에, 데이터 시더를 통해 하드한 테스트를 해보았었습니다. 모든 일기들을 날짜에 따라 section을 나누고, 날짜마다 순서대로 정렬해서 불러오는 게 너무 느리지는 않을까 걱정이 되었기 때문이었는데 역시나.... 하루에 10번씩 일기를 쓰는 사람이 이 앱을 3년동안 사용했을 때를 가정하자, 일기 전체를 불러오는 속도가 너무도 현저하게 느려졌습니다. 물론 나중에는 필요한 정보만 긁어오는 방식으로 리팩토링을 할 것이지만, 여러 친구들과 이야기를 나눈 결과, 관계성을 설정해서 마치 인덱싱처럼 DB의 Date를 관리해야겠다는 결론이 나왔습니다. 하지만, 출시가 얼마 남지 않아 다른 오류들을 수정하느라 정신이 없는 상황이어서 일단 출시를 한 후에 수정하기 위해 남겨두었던 부분이었는데.... 멘토..

    첫번째 인디 앱 출시에 대해서 이러쿵저러쿵

    첫번째 인디 앱 출시에 대해서 이러쿵저러쿵

    앱 출시를 12월 1일에 마쳤지만, 그 이후로 대학교 마지막 기말고사를 치렀기 때문에 많이 바빴고, 앱 출시 이후로 어떤 좌절감? 실망감? 이런 감정들에 사로잡혀서 하루 하루를를 좀 힘들게 보냈었다. 나는 회복력이 빠른 편이지만, 이번에는 꽤 오랫동안 힘들었던 것 같다. 예전같으면 힘들면 일을 더 하려고 해서 악화시키곤 했었는데, 이번에는 힘든 동안에는 너무 무리하지 않으려고 노력했고, 덕분에 서서히 괜찮아지고 있다. 이번 앱 출시까지 정말 내 자신을 불태웠었다고 생각한다. 아쉬움 남지 않게 열심히 했고, 또 재밌게 했다. 나는 무언가를 생산해내는 일을 할 때 몰입을 할 수 있고, 이렇게 몰입할 수 있는 내가 자랑스러웠다. 개발은 전혀 힘들지 않았고 오히려 너무 재미있었다. 모르는 건 공부해서 적용하면 ..

    [Auto Layout] Multiplier(2)

    [Auto Layout] Multiplier(2)

    코드로 하면 더 깔끔하지만, 공부하는 입장에서는 눈으로 보면서 하면 더 빠르게 이해가 가능하기 때문에 스토리보드를 사용해서 설명하였다. 복습하는 중에 혹시 놓칠만한 것들만 골라서 정리했으니, auto layout을 한번이라도 써본 사람이라면 끄덕 끄덕 하면서 빠르게 읽고 넘어가면 된다...ㅎㅎ Multiplier (2) Multiplier가 어떻게 작동하는지 알아보자. 이 부분을 정확하게 이해하고 넘어간다면, 확실히 auto layout을 보는 시야를 넓힐 수 있을 것이다. Alignment Constraints의 Multiplier의 경우를 보면서 한번 알아보자. 이렇게 View를 safe Area를 따라서 화면 가득 채워보자. 여기서 Top의 Multiplier를 2로 올리면, 이렇게 safe Are..

    [Auto Layout] Multiplier(1)

    [Auto Layout] Multiplier(1)

    코드로 하면 더 깔끔하지만, 공부하는 입장에서는 눈으로 보면서 하면 더 빠르게 이해가 가능하기 때문에 스토리보드를 사용해서 설명하였다. 복습하는 중에 혹시 놓칠만한 것들만 골라서 정리했으니, auto layout을 한번이라도 써본 사람이라면 끄덕 끄덕 하면서 빠르게 읽고 넘어가면 된다...ㅎㅎ Multiplier (1) auto layout을 쓰기 전에, frame과 origin 혹은 center를 쓰면서, 각각의 비율을 계산해서 만들어본 경험이 있을 것이다. 물론 이 방법은 auto layout 과 당연히 다름없이 작동하고, 가끔(구동 중 새로운 view를 띄운다던가 하는 상황)은 더 편리할 때도 있을 것이다. 사실 auto layout을 공부하기 전에는 정밀하게 원하는 위치에 원하는 view를 배치하..