Android M (Marshmallow) の新機能の紹介

 

本ガイドでは、Xamarin.Android を使用して、Android 6.0 Marshmallow の新機能を含むネイティブ アプリの開発に役立つ情報を紹介します。

本ガイドでは、Android 6.0 Marshmallow の新機能の概要を紹介し、Android Marshmallow 対応の Xamarin.Android を使用して開発を進めるための準備や Xamarin.Android アプリで Android Marshmallow の新機能の使い方を理解するためのサンプル アプリケーションを紹介します。

 

概要

Android 6.0 Marshmallow (Android Lollipop の次期メジャー Android リリース) は、Google から入手可能です。Xamarin.Android では、以下を含む Android Marshmallow をフル サポートしています:

  • API 23/Android 6.0 Bindings – Android 6.0 では、以下で説明します新機能用に多くの新しい API を追加し、ターゲット API Level 23 で、これらの API は Xamarin.Android アプリで利用可能です。Android 6.0 API の詳細は、Android 6.0 APIs を参照してください。

Marshmallow のリリースでは、主に "polish and quality" に注力し、Xamarin.Android 開発にとって魅力的な多くの新機能を提供しています。以下の機能が含まれます:

  • ランタイムでのアプリのアクセス権限の管理 – 本拡張機能によって、ユーザーは、ランタイムでケースバイケースに応じてセキュリティ権限を承認できます。

  • 認証の強化 – Android Marshmallow 以降では、アプリで指紋センサーを使用してユーザーの認証が可能で、新しい 資格の確認 機能によって、パスワードの入力の必要性を最小限にします。

  • アプリのリンク – 本機能は、Web ドメインを持つアプリを自動的に関連付けることによって、App Chooser (アプリ選択) のポップアップの表示の必要性をなくすのに役立ちます。

  • 直接共有直接共有のターゲット を定義して、ユーザーは素早くかつ直感的に共有できます。本機能で、ユーザーは他のアプリとコンテンツを共有できます。

  • 音声対話 – この新しい API で、対象のアプリに音声対話機能を組み込むことができます。

  • 4K Display Mode – Android Marshmallow では、アプリで 4K をサポートするハードウェアでの 4K 表示の解像度をリクエストできます。

  • 新しいオーディオ機能 – Marshmallow 以降では、Android では MIDO プロトコルをサポートしました。新しいクラスを提供し、デジタル オーディオ キャプチャー、プレイバック オブジェクトを作成し、オーディオの関連付けや入力デバイス用の新しい API のフックを提供します。

  • 新しいビデオ機能 – Marshmallow では、アプリがオーディオをレンダリングしたり、ビデオを同期してストリーミングするのに役立つ新しいクラスを提供し、本クラスではまた動的なプレイバック レートのサポートも提供します。

  • Android for Work – Marshmallow には、企業での利用やシングル ユーザー デバイス用の拡張コントロールが含まれます。デバイスのオーナーによるサイレント インストールとアンインストール、システム アップデートの自動承認、証明書管理の改良、データ使用のトラッキング、権限管理、および作業ステータスの通知などが含まれます。

  • マテリアル デザインのサポート ライブラリー – 新しい Design Support Library では、デザイン コンポーネントとパターンを提供し、対象のアプリにマテリアル デザインのルック アンド フィールを簡単に組み込むことができます。

  • Chrome カスタム タブ – 本機能を使用して、Chrome の機能を対象のアプリに効果的に呼び出すことができ、ユーザーは Web ブラウザーを別に起動して切り替える必要があります。

さらに、Android Marshmallow では多くのコアな Android ライブラリーのアップデートがリリースされ、これらのアップデートでは Android Marshmallow と Android の以前のバージョンの両方に新しい機能を提供します。本記事では、Android Marshmallow でアプリをビルドする基本的な方法、Android 6.0 の新機能のハイライトの概要を紹介します。

 

要件

Xamarin ベースのアプリで新しい Android Marshmallow の機能を使用するには以下が必要です:

  • Xamarin.Android – Xamarin.Android 5.1.7.12 またはそれ以降をインストールし、Visual Studio または Xamarin Studio のいずれかで使用します。

  • Xamarin Studio または Visual Studio – Xamarin Studio を使用する場合、version 5.9.7.22 またはそれ以降の Xamarin Studio が必要です。Visual Studio を使用する場合、version 3.11.1537 またはそれ以降の Xamarin.VisualStudio が必要です。

  • Android SDK – Android SDK Manager で Android SDK 6.0 (API 23) またはそれ以降をインストールします。

  • Java JDK 1.7 – Android Marshmallow の開発には、アプリケーションのコンパイルに JDK 1.7 が必要です; JDK 1.7 は Oracle から入手可能です。

 

入門ガイド

Xamarin.Android で Android Marshmallow を使用するには、Android Marshmallow のプロジェクトを作成する前に、最新のツールと SDK パッケージをダウンロードしインストールする必要があります:

  1. Stable channel から最新の Xamarin のアップデートをインストールします。

  2. Android 6.0 Marshmallow SDK パッケージとツールをインストールします。

  3. 新しい Xamarin.Android のプロジェクトを作成し、Android 6.0 Marshmallow (API Level 23) をターゲットにします。

  4. Android Marshmallow 用にエミュレーターとデバイスを設定します。

以下のセクションで各ステップを説明します:

 

Xamarin のアップデートのインストール

Android 6.0 Marshmallow のサポートを含む Xamarin にアップデートするには、Update Channel を Stable へ変更し、すべてのアップデートをインストールします。Update Channel からのアップデートのインストールの詳細は、Change the Updates Channel を参照してください。

 

Android 6.0 SDK のインストール

Android Marshmallow 向けの Xamarin.Android のプロジェクトを作成するには、最初に Android SDK Manager を使用して、Android 6.0 SDK をインストールする必要があります:

  • Android SDK Manager を起動し (Xamarin Studio では、Tools > Open Android SDK Manager… を使用; Visual Studio では、Tools > Android > Android SDK Manager を使用)、最新の Android SDK Tools をインストールします:

  • また、最新の Android 6.0 SDK パッケージもインストールします:

Android SDK Tools revision 24.3.4 またはそれ以降をインストールする必要があります。 Android SDK Manager 使用して Android 6.0 SDK のインストール方法に関しては、SDK Manager を参照してください。

 

Xamarin.Android プロジェクトの開始

新規に Xamarin.Android のプロジェクトを作成します (もしくは、スタートとして既存の Android Marshmallow サンプル プロジェクトをダウンロードして使うこともできます)。初めて Xamarin で Android の開発をする場合、まず Hello, Android を参照して、Android プロジェクトの作成方法を習得することを推奨します。

Android のプロジェクトを作成する場合、Android 6.0 MarshMallow をターゲットとしてバージョン設定する必要があります。Marshmallow 用にプロジェクトのターゲットを設定するには、API level 23 (Xamarin.Android v6.0 Support) 用にプロジェクトを設定する必要があります。Android API level の設定に関しては、Understanding Android API Levels を参照してください。

 

Emulator または Device の設定

エミュレーターを使用する場合、Android AVD Manager を起動し、以下の設定で新規のデバイスを作成します:

  • Device: Nexus 5, 6, or 9.
  • Target: Android 6.0 - API Level 23
  • ABI: x86

たとえば、以下のように、Nexus 5 のエミュレーターとしてこの仮想デバイスを設定しています:

Nexus 5, 6, または 9 などの物理デバイスを使用する場合、Android Marshmallow のプレビュー イメージをインストールできます。対象のデバイスを Android Marshmallow へのアップデートに関しては、Hardware System Images を参照してください。

 

新機能

Android Marshmallow で導入された多くの変更は、Android のユーザー エクスペリエンスの向上、パフォーマンスの向上、バグの修正にに注力しています。ただし、Marshmallow では Android プラットフォームのコアな基盤への大規模な変更も導入されています。以下のセクションでは、これらの拡張を紹介し、対象のアプリで Android Marshmallow の新機能を使い始めるのに役立つリンクを紹介します。

 

ランタイムでのアプリのアクセス権限の管理

Android の Permissions (権限管理) システムは、Android Lollipop 以降、大幅に最適化され簡素化されてきました。Android Marshmallow では、インストール時ではなく、ランタイム時にケースバイケースで権限管理を承認できます。Android Marshmallow およびそれ以降で本機能をサポートするには、ランタイム時にユーザーに権限管理を確認するようにアプリをデザインします (権限管理を必要とするコンテキストで)。アプリのインストールとアップデートのプロセスがスムーズになるので、本変更でユーザーはより簡単にアプリをすぐに使い始めることができます。

Xamarin.Android アプリでランタイム時の権限管理に関する詳細は、Requesting Runtime Permissions in Android Marshmallow を参照してください。Xamarin では、Android Marshmallow (およびそれ以降) でランタイム時の権限管理の動作方法を紹介したサンプル アプリを提供しています: RuntimePermissions

サンプル アプリでは以下の内容を紹介しています:

  • ランタイム時の権限管理の確認とリクエスト方法。
  • Android M デバイスの権限の宣言方法。

このサンプル アプリを使うには:

  1. Camera または Contacts ボタンをタップして、権限管理のリクエスト ダイアログを表示します。
  2. 権限管理を承認して、Camera または Contacts のフラグメントを表示します。

Android Marshmallow の新しいランタイム時の権限管理機能に関する詳細は、Working with System Permissions を参照してください。

 

認証機能の強化

Android Marshmallow には、以下、パスワード入力を必要としない二つの認証の拡張機能があります:

  • 指紋認証 – 指紋スキャンを使用してユーザーを認証します。

  • 資格の確認 – デバイスをロックしない時間をベースにユーザーを認証します。

以下で紹介するリンクとサンプル アプリが、これらの新機能の学習に役立ちます。

 

指紋認証

指紋のスキャンをサポートするデバイスでは、新しい FingerPrintManager クラスを使用して、ユーザーを認証します。Android Marshmallow の指紋認証の機能の詳細は、Fingerprint Authentication を参照してください。

Xamarin では、以下のサンプル アプリを提供して、アプリで登録した指紋を使用してユーザーを認証する方法を紹介しています: FingerprintDialog

このサンプル アプリを使うには:

  1. Purchase ボタンをタッチして、指紋認証ダイアログを開きます。
  2. 登録した指紋でスキャンして認証します。

本サンプル アプリでは、指紋リーダー付きのデバイスが必要ですのでご注意ください。 本アプリでは、指紋 (またはパスワード) を保存しません。

 

音声対話

Android Marshmallow で導入された新しい音声対話の機能では、アプリのユーザーは音声を使用して、アクションを確認したり、オプション リストから選択ができます。音声対話の詳細は、Overview of the Voice Interaction API を参照してください。

以下のサンプル アプリでは、Xamarin.Android アプリで Voice Interaction (音声対話) API の使い方を紹介しています: Voice Interactions

 

資格の確認

Android Marshmallow の新しい 資格の確認 機能を使用して、デバイスをロックしない時間をベースにユーザーの認証をしないようにできます。 これをするには、KeyGenerator の新しい SetUserAuthenticationValidityDurationSeconds メソッドを使用します。KeyGuardManagerCreateConfirmDeviceCredentialIntent メソッドを使用して、アプリ内から再度ユーザーを認証することができます。Android Marshmallow の本新機能の詳細は、Confirm Credential を参照してください。

Xamarin では、サンプル アプリを提供し、アプリでデバイスの資格の使い方を紹介しています (PIN, パターン, またはパスワードなど): ConfirmCredential

このサンプル アプリを使いには:

  1. デバイスでセキュアな画面ロックを設定します (Secure > Security > Screenlock)。
  2. Purchase ブタンをタップして、セキュアな画面ロックの資格を確認します。

 

Chrome カスタム タブ

Chrome カスタム タブ でアプリからユーザーを離さずに Cherome のパワーでウェブサイトを簡単にエレガントに表示できます。本機能の詳細は、Chrome カスタム タブを参照してください。

Xamarin.Android アプリで本機能を活用するには、Chrome Custom Tabs for Xamarin.Android NuGet パッケージをダウンロードしてインストールしてください。

Xamarin ではまたサンプル アプリを提供し、Xamarin.Android で Chrome カスタム タブを紹介しています: Xamarin.ChromeCustomTabs。本サンプル アプリを使う前に、最初に対象のデバイスまたはエミュレーターに Chrome for Android (version 44 またはそれ以降) をインストールする必要があります。現在、the Google Play Store の Chrome Dev で入手可能です。

One you have installed Chrome Dev をインストールしたら、サンプル アプリを起動する前に以下を実行してください:

  1. ブラウザで以下を入力してください:
chrome://flags
  1. Enable Hosted Mode と探して、Enable をタップしてください。

 

マテリアル デザインのサポート ライブラリー

Android Lollipop では、新しいデザイン言語として Material Design を導入して、Android のエクスペリエンスをリフレッシュしました (Xamarin.Android アプリでのマテリアル デザインの使い方に関しては、Material Theme を参照してください)。Android Marshmallow では、Google は Android Design Support Library を導入して、アプリ開発者はより簡単にマテリアル デザインのルック アンド フィールを採用できるようになりました。本ライブラリーには以下のコンポーネントが含まれます:

  • CoordinatorLayout – 新しい CoordinatorLayout ウィジットは、FrameLayout に似ているが、よりパワフルです。child view のコンテナーまたは上位レベルのレイアウトとして CoordinatorLayout を使用でき、layout_anchor 属性を提供して、他の view に関連する view をアンカーできます。

  • Collapsing Toolbars – 新しい CollapsingToolbarLayout は、折り畳みアプリバーで、Toolbar のラッパーです。(注意: アプリバー は、以前は アクション バー と呼ばれていました。)

  • Floating Action Button – アプリのインターフェースでプライマリーのアクションを示す丸型のボタンです。

  • Floating Labels for Editing Text – 新しいい TextInputLayout ウィジット (EditText をラップする) を使用して、ユーザーがテキストを入力する際にヒントを隠したり、フローティング ラベルを表示します。

  • Navigation View – 新しい NavigationView ウィジットは、ユーザーをナビゲートしやすいようにナビゲーション矢印を使うのに役立ちます。

  • Snackbar – 新しい SnackBar ウィジットは、ライトウェイト フィードバック メカニズム (トーストと同様) で、スクリーンのボタンで簡単なメッセージを表示したり、スクリーンで他のすべてのエレメントを表示します。

  • Material Tabs – 新しい TabLayout ウィジットは、水平のレイアウトを提供し、アプリで上位レベルのナビゲーションを実装する方法としてタブを表示します。

対象の Xamarin.Android アプリで Design Support Library を活用するには、Xamarin の Xamarin Support Library Design NuGet パッケージをダウンロードしてインストールしてください。

Xamarin ではサンプル アプリを提供し、Xamarin.Android で新しい Android Design ライブラリーを紹介しています: Cheesesquare。 本サンプルでは、Design ライブラリーの以下の機能を紹介しています:

  • Collapsing toolbar
  • Floating action button
  • View anchoring
  • NavigationView
  • Snackbar

Design ライブラリーに関する詳細は、Android Developer のブログ Android Design Support Library を参照してください。

Xamarin.Forms 1.5.1 で Andoird アプリがビルドできなくなった場合の対処方法に関しては、こちらをご参考ください。

 

その他のライブラリーのアップデート

Android Marshmallow に加え、Google ではコアな Android ライブラリーに関連するアップデートを発表しています。Xamarin では preview-release NuGet パッケージでこれらのアップデートをサポートする Xamarin.Android を提供しています:

  • Google Play Services – 最新バージョンの Google Play Services には、新しい App Invites 機能が含まれ、友達とアプリを共有できます。本機能の詳細は、Expand Your App's Reach with Google's App Invites を参照してください。

  • Android Support Libraries – これらの NuGets では、Android framework APIs の後方互換のバージョンを提供する一方で、ライブラリー API のみで利用可能か機能を提供します。

  • Android Wearable Library – 本 NuGet には、Google Play Services のバインディングが含まれます。ウェラブル ライブラリーの最新バージョンは Android Wear プラットフォームに新機能を提供します (カスタム アプリのより簡単なナビゲーションを含む)。

 

まとめ

本記事では Android Marshmallow の新機能を紹介し、Marshmallow で Xamarin.Android の開発を進めるのに必要な最新のツールとパッケージのインストールと設定方法を紹介しました。また、Xamarin.Android の開発向けに Android Marshmallow の最も画期的な新機能の概要も紹介しています。

 

 


Infragistics Infragistics
エンタープライズ向け統合 UI 開発コンポーネント。WinForms、モバイル、Web 用の UI コントロール。
CData ドライバー CData ドライバー
50 以上のデータ ソースへのアクセスをプログラミングなしで可能にするデータベース ドライバー。
SmartBear Software SmartBear
GUI テスト / プロファイラー / 負荷テスト / API テスト: ソフトウェア テストの自動化/工数削減/品質向上。
/n software IP*Works! /n software IP*Works!
クロスプラットフォーム対応のインターネット アプリケーション開発向けコンポーネント スイート。
UXDivers Grial UI Kit
Xamarin Forms 対応の XAML ベースの UI、UX テンプレートを提供
XFINIUM.PDF XFINIUM.PDF
Xamarin 対応のクロスプラットフォーム PDF 開発ツール
Aspose Aspose
.NET/Java で Word、Excel、PowerPoint、PDF などの Office ファイルを操作できる API ライブラリ。
Visual Studio Microsoft Visual Studio
最新の統合開発環境!アプリケーションの迅速かつ高品質な構築を支援する開発環境を提供。