その後のその後

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

iOS 7 の新機能のサンプルコード集『iOS7 Sampler』を公開しました。

iOS7にどんな新機能があるのかも把握しきれないままベータ期間が終わってしまい、せっかくのメジャーバージョンアップ祭に乗り遅れた感があったので、先週末に開催された『もくもく開発会@鎌倉 #2 by Qiita』にて、 iOS 7 で新たに加えられたAPI の使い方等を勉強しつつ、簡単なサンプルを集めたアプリをつくりました。


ソースコードは GitHub に置いてあります。


https://github.com/shu223/iOS7-Sampler



今のところ21個のサンプルが入っています。何か調べた折に随時追加していきます。


以下サンプルのリストです。

Dynamic Behaviors

iOS7 では UIView サブクラスに簡単に物理演算を適用することができるようになりました。


本サンプルでは、UIDynamicAnimator, UIGravityBehavior, UICollisionBehavior, UIDynamicItemBehavior を用いて 重力と衝突をシミュレート しています。



関連:http://d.hatena.ne.jp/shu223/20130501/1367368335

Speech Synthesis

AVSpeechSynthesizer, AVSpeechUtterance を用いた音声合成のサンプル。


任意の文字列を iOS が読み上げ てくれます。Macのsayコマンドのようなもの。



関連:http://d.hatena.ne.jp/shu223/20130810/1376105883

Custom Transition

UIViewControllerAnimatedTransitioning, UIViewControllerTransitioningDelegateを用いた カスタムトランジション (画面遷移)のサンプル。


トランジションエフェクトは下記のOSSを入れています。

HUAnimator

細い線に分解されて遷移するエフェクト。


ZBCustomTransitions

ブロックに分解されガラガラと崩れ落ちて遷移するエフェクト。


3D マップ

MKMapView の camera プロパティ (MKMapCamera という新クラス)を用いた 3D 地図表示 のサンプル。



関連:Google Maps SDK for iOSの導入手順 - Qiita

iBeacon

iBeacon を 2台のiPhone(iPad)同士で試せるようにしたサンプル。



一方をビーコン(Peripheral)、もう一方を監視側(Central)として使用します。

120fps ビデオ録画(SLO-MO)

AVFoundationでスローモーション動画撮影を行うサンプル。iPhone5sでは120fpsでの撮影が可能です。


笑顔検出

CIDetectorに新たに追加された CIDetectorSmile と、CIFeature に追加されたプロパティ bounds, hasSmile を用いた 笑顔検出 のサンプル。


画像フィルタ

CIFilter に追加されたフィルタのサンプル




下記の画像処理ををピッカーで選択してかけられるようになっています。

  • CILinearToSRGBToneCurve
  • CIPhotoEffectChrome
  • CIPhotoEffectFade
  • CIPhotoEffectInstant
  • CIPhotoEffectMono
  • CIPhotoEffectNoir
  • CIPhotoEffectProcess
  • CIPhotoEffectTonal
  • CIPhotoEffectTransfer
  • CISRGBToneCurveToLinear
  • CIVignetteEffect

Sprite Kit

Sprite Kit の SKView, SKScene, SKSpriteNode, SKActionを用いて キャラのスプライトを生成し、アニメーションさせる サンプル。


ほぼCocos2Dと同じようなAPIです。


Map Directions

MKDirections, MKDirectionsResponse, MKPolylineRenderer 等を用いた 経路探索とルートの描画 サンプル。


Motion Effects (Parallax)

UIMotionEffect を用いた パララックスエフェクト(視差効果) のサンプル。


Multipeer Connectivity

Multipeer Connectivity Framework で Peer-to-Peer 通信を行うサンプル。P2P通信には Wi-Fi または Bluetooth LE を使用します。


AirDrop / Flickr / Vimeo / ReadingList

新たに追加された UIActivityType (UIActivityTypeAirDrop, UIActivityTypePostToFlickr, UIActivityTypePostToVimeo, UIActivityTypeAddToReadingList)のサンプル


AirDropはデバイスが対応している必要があり、Flickr, Vimeo は Settings でアカウントを設定している必要があります。


QR Code Reader

新たに追加された `AVMetadataObjectTypeQRCode` を利用してQRコードを読み取るサンプル。


参考:iOS 7でバーコード・QRコードを読み取る方法と生成する方法(おまけもあるよ) - Qiita

QR Code Generator

CIFilter の CIQRCodeGenerator を用いた QRコード生成 のサンプル。


歩数カウントと移動状態

Core Motion に新たに追加された CMStepCounter と CMMotionActivityManager を用いて、 歩数のカウント移動状態(歩いている/走っている/車に乗っている)をトラッキング するサンプルです。



本機能を使用するにはM7コプロセッサが必要なので、2013年10月現在出ているiOSデバイスでは iPhone5sでのみ動作 します。

Static Map Snapshots

MKMapSnapshotOptions, MKMapSnapshotter を用いた 地図のスナップショットを取得する サンプル。


Safari Reading List

新たに追加された Safari Services framework を使用して Safari の Reading List にWebサイトを追加 するサンプル。


(※スクショは地味なので省略しました。)

New Fonts

iOS 7 で新たに追加された全フォント36種類をフォント名と共に確認できます。



関連:http://d.hatena.ne.jp/shu223/20131017/1381992664

ばね風アニメーション

ばね風のタイミングカーブでアニメーションさせることのできるUIViewのメソッドの挙動を確認できるサンプル。



関連:【iOS7】ばねっぽいアニメーションを実現するUIViewの新メソッド - Qiita

UIWebViewのページネーション

UIWebViewの新機能、paginationMode のサンプル。Webページを書籍のように pagination して表示してくれます。



関連:【iOS7】UIWebViewの新機能:UIWebPagination - Qiita

おわりに

iOSアプリに友達招待機能を追加できる『AppSocially SDK』も iOS 7 サポートしております。


関連:http://d.hatena.ne.jp/shu223/20130906/1378423853