「英語のリファレンスだけじゃよくわからん、動くサンプルが欲しい!」という僕のために、NDA解禁されたてほやほやの iOS 6 関連のサンプルコード/オープンソースライブラリ等を集めてみました。
UICollectionView
1. iOS6-Playground
iTunesから取得したムービーのカバー画像を、UICollectionView を用いて様々なレイアウトで表示するサンプルコードです。
UICollectionViewController, UICollectionViewCell, UICollectionViewLayout, UICollectionViewFlowLayout 等、UICollectionView 関連の新クラスは一通り使われています。
StoreKit に新たに追加された SKStoreProductViewController も使われていて、参考になります。
2. CircleLayout / LineLayout / PinchIt
WWDC 2012 の
- Introducing Collection Views
- Advanced Collection Views and Building Custom Layouts
というセッションのサンプルコード一式。
3. Collection View 基本的な使い方
タイトルからもわかる通り、日本語で、Collection View の使い方について書かれた解説記事です。
スクリーンショット付きで、とてもわかりやすいです。
上記のようなサンプルコードを github からDLできます。
4. GridPhotoViewer
UICollectionViewを用いたフォトビューア。
(写真へのアクセスが求められるので、写真の入っている実機で動作させてみてください)
6. UICollectionView-NSFetchedResultsController
タイトルの通り UICollectionView と NSFetchedResultsController を一緒に使うサンプルです。(が、デモプロジェクトがついてないのですぐに試せません。。)
MapKit
1. GoogleMapsOverlayiOS
あまり評判の宜しくない iOS6 のマップに、Google Map をオーバーレイするライブラリです。
こうやってスクリーンショットでみると見慣れた Google Map なのであまりありがたみが感じられませんが、iOS 6 の実機で動かすとなかなか嬉しいものがあります。
2. YAMapKit
MapKitの置き換えフレームワーク。
前述の GoogleMapsOverlayiOSと同じく Google Maps API を利用していますが、こちらは MapKit.framework と置き換えてそのまま使える、というコンセプトで開発されています。
(9/23現在 "under construction" とありますが、リポジトリにあるデモプロジェクトを動かしてみたところ、もう地図表示やズーム、スクロールなどの基本機能はできていました)
3. iOS 6 でマップアプリの経路を開く
MapKit に新たに追加された MKMapItem クラスを使用してマップアプリの経路を開くサンプルコードです。
5. GRouting
MapKit に追加された MKDirectionsRequest クラスと Google Maps API を用いてルーティングを行うデモ。
Google Maps API に問い合わせを行う部分は ServiceManager クラスとして切り出されていて、
- (void)findRouteFromLocation:(CLLocation*)fromLocation toLocation:(CLLocation*)toLocation;
こんな感じのわかりやすいメソッドで呼び出せるので、ライブラリとしても使いやすそうです。
Social Framework
2. social frameworkをつかってFacebookとTwitterへの投稿ボタンを作ってみる
SLComposeViewController を使用して Facebook に投稿するチュートリアル。
どちらの記事もスクリーンショットつきでとてもわかりやすいです。
3. Mac OSでも楽チン ツイート その2 Social.framework
SLComposeViewController ではなく SLRequest を使うサンプルコード。
(Mac OSのコードですが、iOSでも参考になると思います。)
Twitter フレームワークのときも、TWRequest や ACAccountStore を使う方法についての記事は少なかったので、大変ありがたいです。
5. Social-Framework-iOS6
Social.framework の SLComposeViewController の serviceType 引数を用いて Facebook / Twitter / Weibo へ投稿するサンプル。
Show all ボタンを押すと UIActivityViewController が立ち上がります。
UIActivity
2. DMActivityInstagram
UIActivity を用いた、Instagram への投稿機能をアプリに付加できるライブラリです。
リポジトリにはデモプロジェクトが入っており、Instagram がインストールされているデバイスで実行すると、上記のように UIActivityViewController に Instagram へのシェアボタンが現れます。
(ただし9/23現在ではデモの実行には少々ソースの修正が必要です)
PassKit
2. PassbookWWDC2012Materials
WWDC 2012 の
- Introducing Passbook, Part 1
- Introducing Passbook, Part 2
というセッションのサンプル一式。
4. iOS6-passbook-helper
passbook用ヘルパースクリプト。(試していないので詳細不明)
MediaToolbox
1. AudioTapProcessor
WWDC 2012 の "Real-Time Media Effects and Processing during Playback" セッションのサンプルで、MediaToolbox フレームワークに追加された MTAudioProcessingTap クラスを用いたデモとなっています。
(デモの実行には、デバイスにムービーが入っている必要があります)
CoreBluetooth
1. CBPeripheralManager-Demo
CoreBluetooth フレームワークに新たに追加された CBPeripheralManager クラスを用いたデモ。
Mac 用の "Scan" というプロジェクトと、iOS 6 デバイス用の "PeripheralModeTest" というプロジェクトが入っていて、両者を Bluetooth で通信させることができます。
画面回転
その他
1. iOS-6-Cookbook
erica 氏によるクックブックのサンプルコードがアップされています。
iOS 6 新機能にだけフォーカスしているわけではなく、iOS 開発の主なトピックを網羅的に扱っているので、目的の新機能に関連するコードを探すのはちょっと大変かもしれません。(とりあえず UICollectionView のサンプルはありました)
ちなみに iOS-6-Advanced-Cookbook というリポジトリも用意されていますが、今のところ完全にからっぽです。
2. RHAddressBook
AddressBook のラッパーライブラリ(?)。
ABAddressBookGetAuthorizationStatus() とか、AddressBook に追加された認証まわりの機能が用いられています。
3. Using attributed strings in iOS6
UILabel, UITextField, UITextView に追加された attributedText プロパティ(NSAttributedString 型)についてのサンプルコードつき解説記事です。
HTMLのように、一部テキストに色をつけたりといった属性を持たせられるようになります。(以前から CoreText を使えばできたのですが、これによりかなり敷居が低くなったと思います)
4. iOS Viewライフサイクルまとめ、iOS6での変更点
iOS 6 では viewDidUnload が deprecated になってメモリ警告発生時に呼ばれなくなりましたが、じゃあどうすればよいか、という話が解説されています。
5. EXC_BAD_ACCESS in iOS 6 but not in iOS 5
iOS 5 では問題なく動作していた CoreGraphics での画像処理で EXC_BAD_ACCESS が発生する、という話。