ios 40

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

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

[iOS] SFSafariViewContoller 구현 및 활용

SFSafariViewController SFSafariViewController는 iOS9부터 지원한다. 기존의 UIWebView와 달리 브라우징 화면만 존재하는 것이 아니라, 기본 인터페이스(읽기 도구, Full Browsing, Content Blocking 등)가 포함된다. 그리고 번들앱인 Safari와 cookie와 웹 사이트 데이터 등을 공유한다. 앱에서 SFSafariViewController와 사용자 사이의 데이터(히스토리, 웹사이트 데이터 등)를 가로챌 수 없다. SFSafariViewController는 아래와 같은 UI적 특징을 가진다. - '읽기 도구' 버튼을 제공- 공유나 커스텀 서비스 이용에 필요한 액션 버튼을 제공- Back/Forward 버튼을 제공하며, 현재 페이지를 Saf..

[iOS] Segue의 활용/종류

Segue란 무엇인가? Segue는 사전적 의미로는 음악에서 악장에서 다음 악장으로 끊기지 않고 넘어가는 것을 의미한다. 즉 '계속됨', '지속되다'의 의미를 지진다. 그럼 iOS 플랫폼에서의 Segue는 무엇인가. 필자가 알기론 iOS Segue가 등장한 시점은 스토리보드가 등장했을 때로 기억한다. 스토리보드가 등장하면서 일전에 사용하던 ViewController간의 view transition push/pop이나 presentation 등의 동작을 코드에서 뿐만아니라 스토리보드를 동하여 정의할 수 있게 되었다. 앞서 말한 스토리보드상의 view transition의 구현체를 Segue라고 부른다. Segue의 종류 Segue는 개발자가 커스터마이징한 것을 제외하게 되면 크게 4가지로 나눌수 있다. S..

[iOS] 3D Touch 활용/구현 하기 (아이폰 6S/6S Plus or later)

3D Touch는 iPhone 6S 시리즈에서 새로 추가된 포스 터치를 활용한 UX이다. 기존의 정전식 터치 패널이 x,y 좌표를 이용한 평면 좌표계의 터치 인식이었다면 3D Touch는 감압식을 중첩하여 z축의 좌표계를 포함한 3D UX를 구현한 것이다. 이에 기획자들은 이를 이용하여 새로운 컨셉과 시나리오를 구상하고, 개발자들은 3D Touch를 활용한 기능 구현을 터득하는 상황에 도달하게 된다. 아래의 글은 3D Touch를 구현하는 방식에 집중되어 있으며, 자세한 구현 방식을 애플의 샘플 코드를 참조하기를 바란다. P. S. 3D touch는 6S 시리즈 이후로 출시된 기기에서만 사용이 가능하다. 이를 구분하기 위해서 UIDevice를 통해 모델 명을 가져오는 방법도 있겠지만 Apple에서는 UI..

[Apple] WWDC 2015 키노트 요약

1. 26회 WWDC2. OS X / iOS / watchOS + Music OS X El Capitan3. 요세미티 업데이트 비율이 55%이다. 윈도우 8.1은 7%에 불과하다.4. 새로운 OS X의 이름은 요세미티안에서 찾았다. '엘 캐피튼'5. 사용자 경험과 성능을 강조6. 스팟라이트, 빌트인 앱, 윈도우 메니지먼트 시스템7. 메일앱 스와이프 제스쳐를 이용한 편의성 증대8. Pin site : site를 pin해 놓고 지속적으로 접근이 편리하도록 했다. 사파리 윈도우를 닫아도 다른 링크를 열어도 pin은 남아있다.9. 탭 별로 미디어를 종료할 수 있다. 10. 스팟라이트에서 게임 스코어를 확인하고, 날씨, 주식 등을 검색 가능하다. 또한 스팟라이트 창을 이동가능하다.11. mail, finder 등..

WWDC/2015 2015.06.10

[iOS] Core Animation 사용하기

미려한 UI를 위해선 아름다운 효과는 필수이다. 하지만 아름다운 효과를 위해 animation을 무리하게 사용하면 main thread에 너무 많은 작업을 가중시킨다. 미려한 UI를 위해 animation을 사용하되, main thread에 작업을 가중시키지 않기 위해 무엇을 해야할까? 그 방법 중에 하나가 UIView대신에 Layer를 이용한 animation의 구현이다. UIView는 이벤트 입력을 받을 수 있는 View의 전체를 이동하는 반면, Layer는 View의 UI 표시영역만 사용하게 된다. 이를 이용한 animation은 main thread의 부담을 덜어주게 된다. UI 표시영역, 즉 비트맵 상의 이미지만 움직이기 때문에 소프트웨어적으로 drawRect:를 통해 다시 그리지 않고 비트맵 ..

[iOS] iOS에서 쿠키 사용하기 (NSHTTPCookieStorage, NSHTTPCookie)

쿠키란? 쿠키는 웹 사이트로부터 받아 사용자의 브라우저에 저장하는 작은 데이터이다. 쿠키는 웹사이트를 로드할 때마다 사용자의 활동과 식별을 위해 서버로 다시 돌려 보내는데 사용된다. 쿠키는 상태 정보를 기억하고 버튼 클릭, 브라우징 히스토리, 로그인 등 브라우저에서의 활동을 기록하는 데 필요한 신뢰있는 메카니즘으로 만들어졌다. 쿠키는 기본적으로 자신을 보낸 서버의 도메인을 가지고 있고 해당 도메인에 연결할 때마다 사용된다. 데이터는 'name=value' 구조로 구성된 String 데이터 쌍이다. 쿠키는 일반적으로 웹브라우저가 종료되기 전까지 유지되며 만료시간을 설정할 경우에는 브라우저가 종료되도 설정한 만료시간까지 유지된다. 아래를 보면 쿠키가 'session'이란 name에 'eylZWNIbnQiOl..

[watchOS] Watch Kit : watchOS 1.0으로 개발하기

Watch Kit이 어제 공개되었다. Watch Kit은 Xcode 6.2에서 SDK를 제공할 예정이며 현재 (2014.11.20)는 베타 버전이다. 지금도 Xcode 6.2 베타 버전을 설치한다면 시뮬레이터로 Watch App을 실행 가능하다. Watch Kit에서 제공하는 구성요소는 크게 Watch에서 구동하는 'App'과 간단한 정보만을 표시하고 터치할 때 앱을 실행시키는 'Glances', 알림을 표시하고 사용자의 동작을 유도하는 'Notification' 등 3가지이다. Watch App & Watch Extension 먼저 Watch App부터 설명하면 Watch App은 단순히 UI와 UI 리소스만을 포함한다. 실제로 데이터를 처리하고 요청하는 등의 비지니스 로직은 iOS App의 Exten..

[iOS] iOS에서 Cloud 활용 (Cloud Kit 요약 정리)

Cloud Kit CKContainer : 앱의 public/private 컨텐츠를 캡슐화한 객체이다.CKDataBase : 앱 컨테이너에 담긴 public/private 데이터들에게 접근하기 위한 통로이다.CKRecord : record의 컨텐츠를 관리하기 위한 인터페이스 Record는 key-value pair로 key는 레코드에서 field 값에 해당한다. 각 field의 값은 string, number, date뿐만 아니라 파일, 데이터 블록 그리고 다른 Record와 관계를 맺기 위해 다른 Record의 reference도 넣을 수 있다. CloudKit은 container들을 이용하여 데이터를 구성한다. 각 container별로 entitlement가 필요하고 런타임에서 CKContainer ..