전체보기 238

[watchOS] watchOS 2.0 변경 및 개발 방법

watchOS 2.0 (이하 watchOS 2)이 릴리즈된지 벌써 4개월이 지났다. 이제서야 watchOS 2를 정리하는 나의 천성적 게으름을 핀잔하며 이 글을 시작하려 한다. 참고로 이 포스팅은 Apple에서 제공하는 Transition Guide와 Document를 기반으로 작성됨을 알린다. watchOS 1.0 (이하 watchOS 1)에 대한 전반적 이해를 위해서는 이전 포스팅 (WatchKit : watchOS 1.0으로 개발하기)을 참고하기 바란다. 1. OS 업데이트로 인한 App 구조 변화 watchOS 2에서 바뀐 가장 큰 소프트웨어적 차이점은 앱 소스 및 리소스를 관리하는 WatchKit Extension이 iOS app 부분에서 watch app으로 이동한 부분이다. 아래의 그림을 참..

[iOS] Core Spotlight 구현 방법 (iOS 9 or later)

Core Spotlight framework Spotlight는 검색 기반의 아이폰 사용의 중심에 있다. 특히 iOS9 이후로 Siri와 spotlight의 결합으로 개인 비서로서 기능이 강화됬다. iOS9 이후 Core Spotlight라는 API를 제공함으로써 개발자는 앱을 spotlight와 결합하여 Depp Link를 구현하는 등의 앱과 OS의 결속력을 높여 더 높은 차원의 UX를 제공할 수 있게 됬다. 그럼 Core Spotlight를 이용하여 앱 데이터, 서비스를 Indexing하는 방법에 대해 알아보자. CSSearchableItemAttributeSet CSSearchableItemAttributeSet은 search result에 표시하기 위한 메타데이터를 저장하는 객체이다. 각 프로퍼티..

[Guitar] 리프(Riff)에 대하여

리프(Riff)는 곡 내에서 반복적으로 연주되는 악절을 말한다. 2~4마디에 걸쳐 만들어진 하나의 리프가 일정한 구성에 맞춰 계속 반복되는 개념이다. '강남스타일'처럼 리프 하나가 곡의 시작부터 끝까지 이어지기도, '미인'처럼 도입부와 후렴, 브릿지마다 각각 다른 리프가 반복되기도 한다. 같은 악절이 반복된다는 점에서 루프(Loop)와 리프를 혼동해서 표현하기도 하는데, 멜로디와 코드의 개념이 담긴 리프와 달리 루프는 철저히 리듬이라는 개념에만 한정된다. 쉽게 말해 소리가 반복되면 리프고 소리 없이 박자만 반복되면 루프다. 리프를 만드는 방식은 여러 가지다. 우선 여러 개의 코드(화음)를 나열한 뒤 코드와 코드 사이, 또는 코드 그 자체에 몇 개의 음(텐션음)을 추가하는 방법이 있다. 단음에 여러 스케일..

Guitar 2015.12.30

[iOS] NSUserActivity 활용 방법 (Hand-off)

NSUserActivity는 검색 결과나 핸드오프를 통하여 사용자가 앱을 사용하던 상태를 저장 복원하기 위해 사용하는 간편한 방법이다. 핸드오프 기능이 처음으로 제공된 iOS8에서부터 지원한다. 처음엔 iOS8에서는 핸드오프를 지원하기 위해서 추가되었다. 그런데 iOS9부터 각 상태를 indexing하여 spotlight 검색결과로 활용할 수 있도록 개선되었다. 먼저 핸드오프에서 사용하는 방법에 대해 말하고, spotlight를 통한 indexing은 다음 포스팅에서 다루겠다. Hand-off 핸드오프는 Mac OS X과 iOS 기기간 지속적인 작업이 가능하도록 해주는 기능이다. 하지만 지속적인 작업을 가능하게 하기 위해서 사용자가 작업하던 환경을 저장했다가 복구하는 수단이 필요하다. 그리고 저장하고 복..