次の方法で共有


iOS 8 の概要

iOS 8 では、Apple は、開発者に興奮と喜びを与える新しいフレームワークや API を多数提供しています。 このガイドでは、これらの新しい API を紹介し、iOS 8 が開発者とユーザーの両方にどのような役立つかを確認します。

iOS 7 では、iOS のユーザー インターフェイス全体の視覚的なデザインが一新され、最初の iPhone OS の登場以来、ユーザーや開発者が想定してきたものとは大きく変わりました。 IOS 8 でもこれが継続され、ユーザーが生活のほとんどすべての側面を iPhone から直接制御できるようにする数多くのフレームワークが開発者に提供されています。 たとえば、健康とフィットネスを分析できる HealthKit、古くなったパスコードに代わる LocalAuthentication を使用した生体認証、サードパーティ アプリ間の通信チャネルを開く App Extension、自宅を未来の家に変えることができる HomeKit などがあります。

iOS 7 がユーザーを喜ばせるものであったとすると、iOS 8 は、これらのさまざまな新しい魅力的なツールで開発者を喜ばせることに重点を置いています。

このガイドでは、Xamarin.iOS 開発者向けの新しい API について説明します。

iOS 8 で非推奨になった API もいくつかあります。これらについては、このドキュメントの最後で詳しく説明します。

要件

Visual Studio for Mac で iOS 8 アプリを作成するには、次のものが必要です。

  • Xcode 7 と iOS 8 以降 – Apple の最新の Xcode と iOS API を開発者のコンピュータにインストールして構成する必要があります。
  • Visual Studio for Mac – 最新バージョンの Visual Studio for Mac をユーザー デバイスにインストールして構成する必要があります。
  • iOS 8 デバイスまたはシミュレーター – テスト用に最新バージョンの iOS 8 を実行している iOS デバイス。

ホームとレジャー

iOS 8 は、HomeKit と HealthKit を使用して Apple と iOS デバイスを家の中心にしっかりと定着させるのに役立っています。 このセクションでは、これらの新しいフレームワークのしくみと、これらを Xamarin.iOS アプリケーションに統合する方法について説明します。

HomeKit

iPhone から家電を制御することは、テクノロジの新しいアプリケーションではありません。iOS アプリを使用して、多くの家庭用ネットワーク接続製品を制御できます。 ただし、HomeKit は、ホーム オートメーション デバイスの共通プロトコルを推進し、iHome、Philips、Honeywell などの特定のメーカーがパブリック API を利用できるようにして、これをさらに一歩進めています。 ユーザーにとって、これは、自宅のほぼすべての側面を 1 つのアプリケーション内からシームレスに制御できることを意味します。 Philips Hue 電球や Nest アラームを使用していることをユーザーが知る必要はありません。 ユーザーは、多数のスマート ホーム プロセスを "シーン" に連結することもできます。

HomeKit を使用すると、サードパーティ製アプリと Siri が、アクセサリの検出、個人用ホーム構成データベースへのそれらの追加、このデータの編集と操作を行い、アクセサリやそのサービスと通信してアクションを実行できます。

構成

次の図は、HomeKit アクセサリの構成の基本的な階層を示しています。

次の図は、HomeKit アクセサリの構成の基本的な階層を示しています

HomeKit の使用を開始するには、開発者は、プロビジョニング プロファイルで HomeKit サービスが選択されていることを確認する必要があります。 Apple は、Xcode 用の HomeKit シミュレーター アドインも開発者に提供しています。 これは、Apple Developer CenterHardware IO Tools for Xcode の下にあります。

詳細については、Microsoft の HomeKit ガイドを参照してください。

HealthKit

HealthKit は、iOS 8 で導入されたフレームワークであり、健康関連の情報を一元管理するための調整され、セキュリティで保護されたデータストアを提供します。 オペレーティング システムによって、健康情報のプライバシーとセキュリティが確保されており、ユーザー用のダッシュボードである Health アプリが用意されています。 アプリケーションは、ユーザーの許可を得ると、さまざまな健康情報を読み書きできます。

Xamarin.iOS でこれを使用する方法の詳細については、HealthKit の概要ガイドを参照してください。

iPhone 機能の拡張

iOS8 では、開発者が自分のアプリを使用できるユーザーをより詳細に制御できるようになりました。また、サードパーティ製アプリ間のよりオープンな通信のための機能が強化されました。 App Extension や Document Picker などの機能により、Apple のエコシステムでアプリケーションを使用する方法の可能性の世界が開けます。

App Extension

簡単に言い過ぎるかもしれませんが、App Extension は、サードパーティ製アプリが相互に通信するための方法です。 高いセキュリティ標準を維持し、サンドボックス化されたアプリの整合性を維持するために、このような通信はアプリケーション間で直接行われることはありません。 代わりに、中間にある Extension によって実行されます。

App Extension を作成する最初のステップは、正しい拡張ポイントを定義することです。これは、正しい API の動作と可用性を確保するために重要です。 Visual Studio for Mac で App Extension を作成するには、新しいプロジェクトをソリューションに追加して、既存のアプリケーションに拡張機能を追加します。

次のスクリーンショットに示すように、[新しいプロジェクト] ダイアログで、[C#]>[iOS]>[Unified API]>[拡張機能] の順に移動します。

新しい機能の作成

[新しいプロジェクト] ダイアログには、App Extension を作成するための 7 つの新しいプロジェクト テンプレートが用意されています。以下では、これらについて説明します。 拡張機能の多くは、Document Picker などの iOS の他の新しい API に関連していることに注意してください。

  • Action – これにより、開発者は、ユーザーが特定のタスクを実行できるように独自のカスタム アクション ボタンを作成できます。
  • Custom Keyboard - これにより、開発者は独自のカスタム キーボードを追加して、さまざまな組み込み Apple キーボードを追加できるようになります。 人気のあるキーボード Swype は、この機能を使用してそのキーボードを iOS に取り込んでいます。
  • Document Picker – これには、ユーザーがアプリケーションのサンドボックスの外部にあるファイルにアクセスできるようにする Document Picker View Controller が含まれています。
  • Document Picker File Provider - これは、Document Picker を使用してファイル用のセキュリティで保護されたストレージを提供します。
  • Photo Editing – これは、写真アプリケーションで Apple が既に提供しているフィルターと編集ツールを拡張して、ユーザーが写真を編集する際、より多くのコントロールとオプションを提供します。
  • Today – これにより、アプリケーションは通知センターの [今日] のセクションにウィジェットを表示できます。

Xamarin で App Extension を使用する方法の詳細については、App Extension の概要ガイドを参照してください。

タッチ ID

Touch ID は、パスコードと同様にユーザーを認証する手段として iOS 7 で導入されました。 ただし、これは、デバイスのロック解除、App Store の使用、iTunes の使用、iCloud キーチェーンの認証のみに制限されていました

ローカル認証 API を使用して、iOS 8 アプリケーションで Touch ID を認証メカニズムとして使用するには、2 つの方法があります。 現在、ローカル認証を使用してリモートで認証することはできません。

第一に、ローカル認証は、新しいキーチェーンアクセス制御リスト (ACL) を使用して、既存のキーチェーン サービスを支援します。 キーチェーン データは、ユーザーの指紋認証が成功するとロックを解除できます。

第二に、LocalAuthentication は、アプリケーションをローカルで認証するための 2 つの方法を提供します。 開発者は、CanEvaluatePolicy を使用してデバイスが Touch ID を受け入れることができるかどうかを判断し、その後 EvaluatePolicy を使用して認証操作を開始する必要があります。

Touch ID の詳細と、これを Xamarin.iOS アプリケーションに統合する方法については、Xamarin.iOS での Touch ID と Face ID に関するガイドを参照してください。

ドキュメント ピッカー

Document Picker はユーザーの iCloud ドライブと連携して、ユーザーが別のアプリで作成されたファイルを開き、インポートして操作し、もう一度エクスポートできるようにします。 これにより、直感的なワークフローが作成されるため、ユーザーのエクスペリエンスが大幅に向上します。 iCloud 同期はこれをさらに一歩進め、1 つのアプリケーションで行われた任意の変更をすべてのデバイスに一貫して反映します。

Document Picker の詳細とこれを Xamarin.iOS アプリケーションに統合する方法については、Document Picker の概要ガイドを参照してください。

Handoff

より大きな Continuity 機能の一部である Handoff は、OS X と iOS の統合に向けてさらに一歩進化しています。 これには、クロスプラットフォームの AirDrop、iPhone にかかってきた電話に出る機能、iPad と Mac での SMS、iPhone からのテザリングの改善が含まれます。

Handoff は iOS 8 および Yosemite で動作します。これを使用するには、使用するすべての異なるデバイスに iCloud アカウントでログインする必要があります。 Safari、iWork、マップ、カレンダー、連絡先など、プリインストールされたほとんどの Apple アプリで動作します。

詳細については、Microsoft の Handoff ガイドを参照してください。

統合ストーリーボード

iOS 8 には、ユーザー インターフェイスを作成するためにより簡単に使用できる新しいメカニズムが含まれています。それは統合ストーリーボードです。 単一のストーリーボードでハードウェア画面のさまざまなサイズをすべてカバーできるため、真の "一度設計すれば、何度でも使用できる" スタイルで、高速で応答性の高いビューを作成できます。

iOS8 より前は、開発者は、UIInterfaceOrientation を使用してポートレート モードとランドスケープ モードを区別し、UIInterfaceIdiom を使用して iOS デバイスを区別していました。 iOS8 では、iPhone と iPad のデバイス用に個別のストーリーボードを作成する必要がなくなりました。向きとデバイスは "サイズ クラス" を使用して決定されます。

すべてのデバイスは、縦軸と横軸の両方で、サイズ クラスによって定義されます。iOS 8 には、次の 2 種類のサイズ クラスがあります。

  • レギュラー - これは、大きな画面サイズ (iPad など) または大きなサイズの印象を与えるガジェット (UIScrollView など) 用です
  • コンパクト - これは小型のデバイス (iPhone など) 用です。 このサイズでは、デバイスの向きが考慮されています。

2 つの概念を組み合わせると、次の図に示すように、画面の向きの違いを含めたサイズのバリエーションを 2 x 2 のグリッドで表すことができます。

異なる向きで使用できるさまざまなサイズを定義する 2 x 2 グリッドを表す図

サイズ クラスの詳細については、統合ストーリーボードの概要に関するページを参照してください。

Photo Kit

Photo Kit は、アプリケーションでシステム画像ライブラリのクエリを実行し、その内容を表示および変更するカスタム ユーザー インターフェイスを作成できるようにする新しいフレームワークです。 これには、画像や動画の資産だけでなく、アルバムやフォルダーなどの資産のコレクションを表す多くのクラスが含まれています。

詳細については、Microsoft の PhotoKit ガイドを参照してください。

ゲーム

Scene Kit

Scene Kit は、3D グラフィックスの操作を簡略化する 3D シーン グラフ API です。 OS X 10.8 で初めて導入され、現在は iOS 8 にも導入されています。 Scene Kit を使用すると、イマーシブな 3D 視覚化やカジュアルな 3D ゲームを作成するために OpenGL の専門知識は必要ありません。 Scene Kit は、一般的なシーン グラフの概念に基づいて構築されており、OpenGL と OpenGL ES の複雑さを取り除き、3D コンテンツをアプリケーションに非常に簡単に追加できます。 その一方で、OpenGL 専門家にとって、Scene Kit は OpenGL と直接連携するための優れたサポートを提供する API でもあります。 また、物理学などの 3D グラフィックスを補完し、Core Animation、Core Image、Sprite Kit など、他の複数の Apple フレームワークと非常にうまく統合できる多数の機能も含まれています。

詳細については、Microsoft の SceneKit のドキュメントを参照してください。

Sprite Kit

iOS 8 および OS X Yosemite には、Apple の 2D ゲーム フレームワークである Sprite Kit のいくつかの興味深い新機能が含まれています。 これらの機能としては、Scene Kit との統合、シェーダーのサポート、照明、シャドウ、制約、法線マップの生成、物理機能の強化などがあります。 特に、新しい物理機能を使用すると、ゲームに現実的な効果を非常に簡単に追加できます。

詳細については、Microsoft の SpriteKit のドキュメントを参照してください。

その他の変更

上記で説明した iOS 8 の主な変更に加えて、Apple は多くの既存のフレームワークもさらに更新しました。 以下では、これらについて詳しく説明します。

  • Core Image – Apple は、画像内の長方形領域と QR コードの検出のサポートを向上して、画像処理フレームワークを拡張しました。 Mike Bluestein は、「iOS 8 での画像検出」というタイトルのブログ記事でこれについて説明しています

非推奨 API

iOS 8 で行われたすべての改善により、多くの API が非推奨になりました。 以下では、その一部について詳しく説明します。

  • UIApplication – リモート通知の登録に使用されるメソッドとプロパティは非推奨になりました。 これらは registerForRemoteNotificationTypes と enabledRemoteNotificationTypes です。

  • UIViewController – インターフェイスの向きを記述するために使用されるメソッドとプロパティは、Trait とサイズ クラスに置き換えられました。 これらを使用する方法の詳細については、統合ストーリーボードの概要を参照してください。

  • UISearchDisplayController – iOS8 では、これは UISearchController に置き換えられました。

まとめ

この記事では、Apple が iOS 8 で導入した新機能の一部を紹介しました。