Appleは先日,iOSのアプリケーションに関して,2月1日までにiOS 7に対応しなければならない,という告知を行った。iTunes Storeに新たなアプリケーションやアップデートを提出する場合には,開発にXCode 5を使用することと,アプリケーションをiOS 7に最適化することが必須となる。iOS7に対応するには,現行のiOS Human Interface GuidelinesとiOS 7 UI Transition Guideに従ったUIの変更や,iOS APIの新バージョンを採用することなどが必要だ。
ユーザーインターフェイスの変更
iOSの7のユーザーインターフェイスでは,コンテンツを明確に表現することが重視されている。開発者はスキューモーフィズム(現実の物を模したユーザインターフェース)や影,枠線といったグラフィック要素の使用を避けて,画面全体をユーザへのデータ提示に使用しなければならない。また,ユーザインターフェース要素は中心的な存在であったり,表示されるコンテントからユーザの気をそらすものであったりしてはならない。コンテント表示の明確化を目指すのに加えて,新しいiOSインターフェースデザインのコントロールは画面上に占めるスペースも少なくなり,これまでより多くのコンテント表示が可能になっている。Appleは開発者に対して,プログラムでUI要素を配置するのではなく,可能な限り自動レイアウト機能を使用するようにアドバイスしている。
UILabel, UITextField, UITextViewのテキスト処理がTextKitをベースとしたものになった。これによってカーニングやハイフネーション,あるいはテキスト要素への画像埋め込みなどの機能が実現されている。また,ポイントやピクセルを使用したフォント指定に代えて,テキストのスタイルによる指定を行うことが可能になった。iOSのテキストスタイルはHTMLのものに近く,”headline” や “body” といった値を指定することができる。実際にレンダリングされるサイズは,ユーザの設定するズーム設定などに従ってiOSが計算する。
さらにiOS7は,新しい設計要素やテクニックもUIデザイナに提供する。
- 半透明: ビューの半透明化が可能になった。 不透明なビューとは違って,コンテントの下にあるものをユーザに意識させることができる。iOS User Interface Guidelinesによれば,これはスライドインメニューや設定パネルのように,一時的にオーバーレイするビューで特に有効な機能だ。
- 奥行き: User Interface Guidelineではデザイナに対して,ユーザに提示するオブジェクト間の関連性を表現する手段として,奥行きと階層化の使用を推奨している。奥行きの印象を与えるため,iOSはユーザインターフェースに疑似3D効果を備える。デバイスを前後や左右に傾けることで,ユーザはコンテント上に浮かんでいるオブジェクトの下をのぞくことができる。
iOS APIの拡張
iOS 7では,アプリケーションの状態を最新にする手段として,新たに3つのマルチタスクモードが提供されている。"フェッチ" モードでは,アプリは定期的にデータ更新をチェックすることができる。開発者がアプリケーションの最小更新間隔を定義すると,iOSがバックグラウンドでアプリをローンチしてデリゲートメソッドを呼び出してくれるので,その中で新しいデータを受信すればよい。ネットワーク状態が良好であるなどの状況をiOSが判断して,更新時間に到達する前にアプリを起動する場合もある。"リモート通知"モードでは,アプリケーションの更新にプッシュ通知が使用される。 iOS 7までは,ユーザが通知を受信してアプリケーションを起動し,アプリがコンテントを更新するまで待たなければならなかった。今後は通知を受信したアプリケーションがバックグラウンドで状態を更新して,それが完了した後にユーザへの通知を行うようになる。
MapKitは高度なオーバレイ処理を提供する。マップにオーバーレイを追加する場合にも,さまざまなレベルを定義できるようになった。また,MKOverlatViewが廃止されたので,新クラスMKOverlayRenderedに置き換える必要がある。MKDirectionsを使えば,マップアプリケーションにスイッチしなくても,アプリに経路情報を問い合わせることができる。さらにはMKMapSnapshotterを使って,マップリージョンのUIImageを座標や高度,ピッチといったパラメータに基づいて生成,表示することができる。
アプリケーションはAirdropやピアツーピア接続を使って,相互に通信することが可能だ。どちらのAPIも近接デバイス検出をベースとしているので,インターネット接続は必要ない。アプリに特定のファイルタイプを登録しておいて,Airdrop経由でそれを受信することもできる。ファイルが新たに受信されるとiOSがアプリケーションをローンチして,デリゲートメソッドをコールしてくれる。ピアツーピア接続を使うことで,近接するデバイス間でサービスの公開と検出が可能になる。一度セッションが確立されれば,デバイス間でメッセージやデータを交換することができるようになる。
デバイスがiOS 7をサポートしていなくてもアップデートを提供することは可能だ。その場合は,ユーザがApp Storeからアプリケーションの旧バージョンをダウンロードすることになる。