ダウンロード サンプルファイル (133.7 KB)
今年のはじめ、2019年1月14日に、Android Studioのバージョン3.3がリリースされました。このリリースにも多くの新しい機能が含まれており、今後も私たちの開発をより強力にサポートしてくれるものになりそうです。本記事では、バージョン3.3で追加された機能の概要を紹介するとともに、もっとも身近な新機能である、ナビゲーションエディタの使い方について解説します。
対象読者
- 画面遷移に慣れていないAndroid初学者
- startActivityしか使ったことがないAndroid経験者
前提環境
筆者の検証環境は以下の通りです。
- macOS Mojave 10.14.2
- Android Studio 3.3.1
Android Studio 3.3の概要
Android Studio 3.3では、これまでのアップデートと同様に多くの改善が行われました。公式ブログから、代表的な変更をいくつか抜粋します。
- 画面遷移をGUIで設定できるナビゲーションエディタが正式リリースされた
- Kotlinのバージョン1.3.11に標準対応し、非同期処理を簡便に扱えるコルーチン機能の利用がより身近になった
- 古いAndroid Studioがインストールされている場合には、アンインストールを提案して容量の削減を図る
- デバイスのメモリやCPUなどの使用状況を監視する、各種プロファイラを改善した
- フラグメントのattachやdetachのイベントログをタイムラインに表示する
これ以外にもC++開発に関する機能が改善されているなど、大幅な改善が行われました。
多くの改善の中でも、今回、筆者が特に魅力的に感じたのは、今回のリリースで正式に搭載された、ナビゲーションエディタです。本記事では、簡単に画面遷移を定義できるナビゲーションエディタの魅力と、その使い方を解説していきます。
ナビゲーションエディタの概要
ナビゲーションエディタ(Navigation Editor)は、Android Studioの画面上で、アプリの画面遷移を定義・編集するための機能です。Android Studio 3.2から実験的に搭載されていましたが、今回のバージョン3.3で正式リリースとなりました。
従来、Androidアプリの画面遷移は、プログラムを記述することでしか定義できませんでした。また、いわゆる画面遷移図と呼ばれる、全体像を実装と対応した形で把握する方法もありませんでした。
本記事で解説するナビゲーションエディタを用いることで、図1のように、画面遷移の構造をビジュアライズされた形で容易に把握することができます。
既にAndroid Studioでは、ConstraintLayoutとレイアウトエディタにより、ドラッグ&ドロップによるレイアウト構築が可能になっています。それに加えて、このナビゲーションエディタを組み合わせることで、アプリ開発の中でプログラミングが必要な部分が減ることになるのです。
ナビゲーションアーキテクチャコンポーネントの概要
さて、Android SDKによるアプリ開発に慣れ親しんだ方であれば、画面遷移と聞いて真っ先に思い浮かぶのは、 startActivity() を実行することで新しいアクティビティを起動する、あの画面遷移だと思います。では、ナビゲーションエディタで定義できる画面遷移も、やはりアクティビティを起動する画面遷移なのでしょうか。
実は、今回解説する範囲の画面遷移では、最初に起動したアクティビティ(MainActivity)をそのまま使って、それ以外に新しいアクティビティを起動しません。Googleが提供している、画面遷移のためのライブラリ、ナビゲーションアーキテクチャコンポーネント(Navigation Architecture Component)を使うことで、ひとつのアクティビティの中で画面遷移を実現するのです。
もう少し詳しく解説します。ナビゲーションエディタを使って組み立てる画面遷移図のことを、ナビゲーショングラフ(Navigation Graph)と呼びます。ナビゲーションアーキテクチャコンポーネントが提供する NavHostFragment というフラグメントに、このナビゲーショングラフを読み込ませることで、 NavHostFragment はその内部で動的にアプリの画面を表すFragmentを差し替えられるようになります。この差し替えが、ナビゲーションアーキテクチャコンポーネントを利用する場合の「画面遷移」と呼ばれるものの正体です。アクティビティとの関係を含めて図示すると、図2のようになります。
フラグメントの中にフラグメントがあるのは、なかなか見慣れず不安に思う方もいるかもしれませんが、フラグメントの中にGoogleマップを表示する等の用途で昔からよく使われている方法なので、ご安心ください。
本記事では、この仕組みを使った画面遷移の方法を解説していきます。
この記事は参考になりましたか?
- Android Studio 3.3 の新機能連載記事一覧
-
- Android Studio 3.3で自然な画面遷移を実装する
- 「ナビゲーションエディタ」をさらに使いこなす! ナビゲーションアーキテクチャコンポーネント...
- Android Studio 3.3の目玉機能「ナビゲーションエディタ」を理解する
- この記事の著者
-
WINGSプロジェクト 中川 幸哉(ナカガワ ユキヤ)
<WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書、記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
-
山田 祥寛(ヤマダ ヨシヒロ)
静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
