その後のその後

iOSエンジニア 堤 修一のブログ github.com/shu223

iOS 6 新機能のサンプルコード/ライブラリのまとめ33個

「英語のリファレンスだけじゃよくわからん、動くサンプルが欲しい!」という僕のために、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

というセッションのサンプルコード一式。



(※Xcode4.5でビルドしようとするとエラーになりましたが、QuartzCoreのインポートで解決しました)

3. Collection View 基本的な使い方

タイトルからもわかる通り、日本語で、Collection View の使い方について書かれた解説記事です。
スクリーンショット付きで、とてもわかりやすいです。



上記のようなサンプルコードを github からDLできます。

4. GridPhotoViewer

UICollectionViewを用いたフォトビューア。
(写真へのアクセスが求められるので、写真の入っている実機で動作させてみてください)

5. colorview

Collection View を用いたサンプル。セルをタップするとニュッとアニメーションします。


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 クラスを使用してマップアプリの経路を開くサンプルコードです。

4. RegionDefiner / WWDCTransit

WWDC 2012 の "Getting Around Using Map Kit" セッションのサンプルコードです。


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 を使う方法についての記事は少なかったので、大変ありがたいです。

4. Twitter---Facebook-integration-for-iOS6

TwitterとFacebookへ投稿するサンプルプロジェクト


5. Social-Framework-iOS6

Social.framework の SLComposeViewController の serviceType 引数を用いて Facebook / Twitter / Weibo へ投稿するサンプル。



Show all ボタンを押すと UIActivityViewController が立ち上がります。


UIActivity

1. buffer-uiactivity

UIActivity, UIActivityViewController を用いたサンプルコード。


2. DMActivityInstagram

UIActivity を用いた、Instagram への投稿機能をアプリに付加できるライブラリです。



リポジトリにはデモプロジェクトが入っており、Instagram がインストールされているデバイスで実行すると、上記のように UIActivityViewController に Instagram へのシェアボタンが現れます。
(ただし9/23現在ではデモの実行には少々ソースの修正が必要です)


PassKit

1. passslot-ios-sdk

"Objective-C Framework (SDK) for easy Passbook integration" とのこと。


http://www.passslot.com/


詳細は上記URLにて。

2. PassbookWWDC2012Materials

WWDC 2012 の

  • Introducing Passbook, Part 1
  • Introducing Passbook, Part 2

というセッションのサンプル一式。

3. Lucardio

"An app for putting cards in the Passbook App" とのこと。


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 が発生する、という話。