今年はWWDC後の勉強会も多く開催され、正式リリースを前にして iOS 9、watchOS 2 の技術情報が既に多く出てきています。あとでキャッチアップしよう、と思ってたらいつの間にかかなりの記事がたまってきたので、ここらへんでいったん整理しておこうと思います。
iOS 9
Search API
Search API は既存アプリへのメリットもはっきりしているためか、注目度が高く、発表スライドや詳細な解説記事を多く見かける印象があります。
- searchapi - iOS 9の「Search API Best Practices and FAQs」が公開されたので読み解いてみた - Qiita
- iOS 9 の Search API でできる事|1 pixel|サイバーエージェント公式クリエイターズブログ
Universal Links
- URLスキーム・独自ディープリンク実装に代わる、Universal Links(iOS 9で導入)でより良いUXを実現 - Qiita
- UniversalLinks - iOS9 で Universal Links が動かない - Qiita
App Thinning
- WWDC - App Thinning メモ - Qiita
- 「App Thinning」「App Slicing」「On-Demand Resources」「Bitcode」など、どれが何だか区別がつかなくなる各用語について解説してくれています。
SFSafariViewController
UIWebView や WKWebView と同様に、アプリ内ブラウザとして使えるビューコントローラ。
- Swift - iOS9のSFSafariViewControllerを使ってアプリ初回起動時のブラウザリダイレクトを卒業しよう - Qiita
- SFSafariViewController を使って、Safari アプリにリダイレクトせずに cookie 共有する実験コード
- GitHub にサンプルあり
- [iOS 9] SFSafariViewController の概要 | Developers.IO
- Webページを表示するシンプルなサンプル
- iOS9 - iOS 9の新しいWebビュー: SFSafariViewController - Qiita
- 使いどころに関する考察
コンテンツブロッカー(Content Blocker Extension)
UIStackView
- Layout System Improvements in iOS 9 // Speaker Deck
- NSLayoutAnchor, UILayoutGuide の話もあり。
LLDB
- New Feature & Tips in LLDB // Speaker Deck
- LLDBマニアな @dealforest 先生によるLLDB新機能の解説。
Core Location
- 【iOS 9対応】知っておきたい位置情報周りの変更点 - Qiita
- What’s New in Core Location - WWDC 2015
- Core Location は、「このAPIがあればあの機能が実現できる!」みたいな新APIはないのですが、`requestLocation` という一度きりの位置情報取得をするためのAPIが追加されたりとか、バックグラウンドで位置情報取得をするために設定が必要なプロパティが増えたりしたようです。
- Apple Watch での挙動についても解説されています。
MapKit
- iOS 9で強化されたMapKit - Qiita
- ピンアノテーションに任意の色をセットできるようになったりとか、コールアウトの詳細部分に任意のUIViewサブクラスをセットできるようになったりとか、見た目のカスタマイズ性が向上したようです。
- Transit 機能の開放、Flyover のタイプ追加等、結構うれしい機能追加があります。
Audio Unit Extension
- 【iOS9】Audio Unit Extensions 〜オーディオエフェクトのアプリ間共有〜 - Over&Out その後
- iOS 9 で追加された新しい Extension Point のひとつ、「Audio Unit Extensions」について。
Metal
- WWDC 2015 METAL
- あまり見かけない、貴重な Metal 情報。WWDC 2015 の4つの Metal 関連セッションの内容をかいつまんで紹介してくれています。
WWDC 2015 情報共有会 from 大介 束田
Core Image
ReplayKit
ReplayKit は、画面を録画するフレームワーク。ゲーム実況にしろ、ユーザビリティテスト用途にしろ、それをメインプロダクトとしてがっつり取り組んでいる企業がいくつかある分野なので、あまり個人的には直接は利用しなそうと思っていたのですが、下記スライドに載っているサンプルを見ると、導入が簡単そうなので、ちょっと試してみようかと。
- About ReplayKit.framework // Speaker Deck
- 概要や実装サンプルをかいつまんで解説してくれています
その他
- iOS9でカスタムURLスキームの遷移に失敗するときの注意点 - Qiita
- iOS 9 ではプライバシーへの配慮により、Info.plist に LSApplicationQueriesSchemes キーに対して追加してあるカスタムURLスキームについてのみ、 `canOpenURL:` で正しく結果を返してくれるようになった
- (Info.plist に追加してないと、対象アプリがインストールされていて遷移可能でも、canOpenURL で `NO` が返ってくる)
- iOSのPUSH通知(APNS)の特徴・ノウハウまとめ(iOS 9まで対応) - Qiita
- プッシュ通知に関する諸々のまとめ記事。iOS 9 におけるアップデートについても記載されています
- 【iOS9】API Diffs から見る iOS 9 の新機能 #wwdc - Over&Out その後
- iOS9-day-by-dayという定番サンプル集が公開されました - Qiita
- iOS9 ATS問題 - Qiita
- no title
- Breaking changes for Foundation API // Speaker Deck
- NSMutableDictionary に nil を突っ込むと、今までだと例外になっていたのが、要素の削除、という扱いになったとのこと
- ios-internationalization // Speaker Deck
- NSPersonNameComponents とか
watchOS 2
Watch Connectivity
- [watchOS 2][iOS 9] Watch Connectivity で情報をやりとりする様々な方法 | Developers.IO
- iOS - watchOS 2 の Watch Connectivity を使ってみた - Qiita
Complication
- 簡単!Complication!!
- Complication の実装手順について、用語説明からダウンロードサンプルまであって、すごく丁寧に解説してくれているスライド
- Swift - watchOS2の新機能 complication詳細解説 - Qiita
- こちらも具体的なコードが示されていて大変ありがたい解説記事。
HealthKit
- How to make workout app for watch os 2
- HKWorkoutSession クラスを用いて、ワークアウト機能を利用したアプリを実装するための情報がひと通り書いてある大変ありがたいスライド
Core Graphics
- watchOS 2 の Core Graphics は何ができて何ができないのか #potatotips - Over&Out その後
- watchOS 2 における Core Graphics について。
その他
watchOS 1.0のアーキテクチャはいったい何のために用意されたのだろうか。ネイティブ化されるまでの半年間はいったい何のために必要だったのだろうか。Apple Watchに搭載されている一部のApple製のアプリは最初からネイティブで動作しているはずだが、はじめからその方法を解放できなかったのはなぜなのか。
- という、開発者みんなが思った疑問についての、Bitcode やプロセッサを絡めての考察。
- watchOS 2 の新機能のサンプルコード集『watchOS-2-Sampler』を公開しました - Over&Out その後
- watchOS 2 の新機能のサンプルコード集
- watchOS 2 新機能の細かい話5つ #potatotips - Over&Out その後
- 2つのアセットカタログの使い分け、メディアデータの保存場所、Watch Connectivity のメッセージ送信可否の条件等々の細かい話