iOS 8についてデベロッパーが知っておくべきこと

デベロッパー諸君!アップルがiPhone / iPad用の最新オペレーティング・システム、iOS 8について、数々の変更を発表した。デベロッパー向けの情報を以下にまとめておく。

App Storeのアップグレード

アップルはApp Storeの使い勝手を向上させるため、アプリのセット販売とプレビュー機能を新たに提供する。ユーザーは一度の購入で、セット販売されている一連のアプリをダウンロードすることが可能となる。また、アプリの主な機能を動画で確認することもできるようになる。デベロッパーは、自分が開発した全てのアプリを組み合わせてセットを作成することができ、パッケージとして販売できる。

App Storeには現在120万個ものアプリが存在し、この数の多さは長年アップルユーザーの悩みの種となっている。アップルは最新のアップデートにおいて「見つけやすさ」を重視し、ユーザーがアプリを探す手助けをするために「explore」タブを追加している。また、新しいApp Storeではトレンド検索、関連検索などの他に、新しい「編集者のお勧め」機能が導入されるようだ。

さらに「TestFlight」の統合によって、一般のユーザーでもベータ版アプリのテストに参加できるようになる。

大量のAPI

アップルのソフトウェア・エンジニアリング責任者クレイグ・フェデリギは、iOS 8には4000もの新しい開発者用APIが用意されていると述べた。 iOS 7の時は、デベロッパー・キットに含まれていた新しいAPIは1500で、これでもデベロッパー達にとっては十分に大規模なリリースだと考えられていた。

federighi extensibility Apple WWDC 2014

新しいAPIの多くは、フェデリギが「拡張性」と呼ぶ機能を提供するためのものだと思われる。これは、iCloudやバックエンドの拡張機能を通じてもたらされるものだ。この場合の「拡張性」とはアプリ同士が互いに通信できるというサービスのことを指しており、これまでセキュリティを確保するためにほぼ「サンドボックス」状態だったiOSにとっては画期的な進展である。

「これによってシステムが拡張され、デベロッパー達は自分のサービスを他のアプリに向けて提供することができるようになる」とフェデリギは基調講演で語った。「拡張機能は独自のサンドボックス内で動作し、アップルのセキュリティ機構を経由して通信する」。つまり、デベロッパーはついにアプリ間でデータを共有させることが可能となるのだ。例えば、サードパーティのパスワード・マネージャーを使って様々なアプリにユーザー名とパスワードを入力させることもできる。

また、外部のデベロッパーにも通知センター内にウィジェットを表示させるチャンスが生まれた。

この「拡張性」によってデベロッパーは、iOSの通知センター内に動的なウィジェットを作成することができるようになるのだ。さらにアップルは、ついにサードパーティ製のキーボードを受け入れた。「SwiftKey」や「Swype」などのサードパーティ・アプリがiPhoneやiPadでも利用できるようになる。

アップルCEOのティム・クックは、iOS 8におけるデベロッパー向け機能は、2008年に行われたApp Storeのリリース以来最大級の更新だと述べている。そのうちのいくつかを見てみよう。

Touch ID

federighi touch ID api Apple WWDC 2014今後はサードパーティ製のアプリも、iPhone 5Sや未来のiOSデバイスに搭載されている生体指紋センサーを、認証やその他のセキュリティ目的で利用することが可能となる。サードパーティ製のアプリは、アップルのキーチェーン項目のロックを解除することで動作する。ただし、アプリ開発者が実際にユーザーの指紋にアクセスすることはなく、指紋情報はアプリの開発環境からは隔離されてデバイス内で安全に保たれる。

PhotoKit

新しいPhotoKitは、写真や動画を管理するための新たなAPIを提供する。iCloud Photoを使った複数端末での写真同期や、直接iOS カメラアプリ内の写真を編集する機能などが含まれる。写真データはキャッシュされ、編集の「やり直し」をすることも可能だ。

HealthKit

craig-federighi-nike-health-apple-wwdc-2014アップルはiOS 8で「Health」と呼ばれる新アプリをリリースする。HealthKitはこのアプリのための新しいAPIセットで、ユーザーの健康データをiOSデバイス上で一元管理するためのストレージの役割も果たす。

各アプリはユーザーの健康データにアクセスし、ユーザーに情報を提供することができる。その際、アプリがフィットネス・トラッキング・デバイスのサポートを実装している必要はない。つまり、iPhoneデバイス自体がユーザーの健康データをトラッキング可能だということだ。

Handoff

Handoffは、iOS 8とMac OS X Yosemiteの両方に搭載される。これはアップルデバイス同士の連携を実現するためのAPIで、iPhoneで開始した作業の続きをMacで始めたりすることが可能になる。

HomeKit

アップルはスマートホーム業界への進出を望んでおり、スマートホーム用デバイスとの通信やコントロールを行うための新しいフレームワークをリリースした。HomeKitフレームワークは、ユーザーの家にあるデバイスを見つけ、それをiPhoneやiPadと連携させるようなアプリをサポートする。ユーザーはそれらのデバイスをグループ化し、アップルのSiriを通じた音声コントロールで制御できるようになるだろう。

関連記事:アップルは、iPhoneをスマートホームのハブにしたがっている

CloudKit

アップルのiCloud製品の完全なバックエンドサービスとして、CloudKitと呼ばれる新しいフレームワークが登場した。デベロッパーは自分たちのアプリに関するデータを安全にiCloudに保管したり取り出したりすることが可能となる。CloudKitを利用すれば、ユーザーは自身のアップルIDを使って、個人情報を残すことなく匿名でアプリにサインインすることができる。

CloudKitは、デベロッパーがサーバーサイドの仕組みを勉強しなくても自分のアプリにクラウドサービスを追加できるようにすることを目的としている。CloudKitは認証と、プライベートあるいはパブリックなデータベースやストレージを提供する。CloudKitストレージは無料で利用できるが、一日あたりの使用には制限が課される。

SceneKit

SceneKitはアップルの新しい3Dグラフィック・フレームワークで、iOS 8における新機能の中でも特にゲーム開発者をワクワクさせるものの一つだろう。SceneKitには物理エンジンやパーティクルジェネレーターが採用されており、またシェイプ等の3Dオブジェクトやマテリアル、ライティングの制御も容易になるため、ゲーム内の3Dアニメーションシーンやエフェクト作成に役立つだろう。アプリ内で重力等の物理シミュレーションを行うことも可能だ。

SpriteKit

SpriteKitはiOS 7で導入された機能だが、iOS 8ではさらに改良が加えられ、カスタムOpen GL ESシェーダや照明、新しい高度な物理計算やアニメーション、Xcode内の新しいシーンエディタ等が備わっている。新たに登場したSceneKitフレームワークに完全に統合された。

Metal

SceneKitやSpriteKitはカジュアルなゲーム開発者向けにデザインされたものだ。Metalはより本格的なゲーム開発に向けた堅牢なフレームワークであり、高いパフォーマンスを得るためにiPadやiPhoneのA7グラフィックス・プロセッサに直接アクセスすることができる。Metalは、より優れたグラフィックのレンダリングや演算タスクができるように設計されている。マルチプロセッシングと共有メモリを活用するように作られており、アップルのXcodeツール内の統合型グラフィックやシェーディング言語に向けて合理化されたAPIが提供される。

Swift

Swiftは、アップルの新しいプログラミング言語だ。CとObjective-Cの両方を補完する形で iOS開発に適用される。OS X Cocoa APIやiOS用のCocoa Touchフレームワーク用の言語であり、おそらく新しい構文や機能を備えていると思われる。

Swiftについては、機会があれば別途記事にしたい。

Pocket