現在JavaScriptの設定が無効になっています。このページを利用するにはJavaScriptの設定を有効にしてください。2014の16日目の記事です。一覧はこちらこんにちは。Calendar16日目を担当します、Androidエンジニアの里山です。本日はAndroidのナビゲーションについてのお話を書こうと思います。Lollipop」として正式に発表されました。9」が発表されました。(12月16日現在では両端末とも日本で発売されています)また、Nexusシリーズを始めとする端末にもLollipopが配信されはじめ、いよいよ、Lollipop時代が到来したと言ってもいいのではないかと思います。手元にLollipop端末のあるエンジニアの方も多いのではないでしょうか。Design」でしょう。Designの元にユーザーに提供されることをGoogleは求めています。以上」をターゲットにアプリ開発を行っていることと思います。Android4.x系でUIが大きく刷新されたとき、多くのエンジニアが直面したのがナビゲーションの刷新でした。Lollipopでもナビゲーションに変更があります。Lollipopがリリースされたことによって、今後ナビゲーションはどのように変更されるのでしょうか。2.x系やAndroid4.x系以上をターゲットにしているアプリで今から対応できることはあるのか、筆者が気になった部分について調べてみました。ActionBarの代替としてのToolbarLollipopでは、Toolbarという仕組みが導入されました。ToolbarはLayoutファイル内でActionBarを扱えるように一般化されたものです。ActionBarを否定するのではなく、拡張して使いやすくしたものと捉えられるでしょう。特徴を述べると以下のようなところでしょうか。Appsで、左上のメニューアイコンがクルッと回り矢印に変わるのを最近頻繁に見られると思いますが、これらはToolbarを使っています。21に入ってきましたので、Lollipop以下のバージョンのOSでも利用できます。簡単な導入方法は以下のとおりです。</style></resources>定義したテーマをActivityなどのandroid:themeに設定します。2.ToolbarをレイアウトXMLに配置AppComaptのToolbarは、android.support.v7.widget.Toolbarです。このWidgetをレイアウトXML上に配置します。<省略>レイアウトXML上に、他のViewと同じように配置できるのが特徴です。3.ActionBarActivityにToolbarをセットするActionBarActivityのsetSupportActionBarにレイアウトXMLからfindViewByIdしたToolbarをセットします。それ以降は、既存のActionBarと同じように利用するだけです。Theme.AppCompat.NoActionBar以外のテーマを利用する必要がある場合は、setSupportActionBarせずにToolbarを単純なWidgetとして利用することも可能です。}〜省略〜Toolbarを使う利点Toolbarを使う利点は以下のようなことではないかなと思います。21)で、ActionBar.NAVIGATION_MODEがdeprecatedになりました。ActionBarのTabとSpinnerの利用が非推奨となります。実質的にはすべてのVersionにおいてdeprecatedと考えて良いかと思います。ActionBar上でのTabもSpinnerも非推奨にTabの代替案はSlidingTabLayoutGoogleの方からTabの代替案として提示されているのが、SlidingTabLayoutです。Developersに公開されている参照実装です(2つほど実装があります)。http://d.android.com/samples/SlidingTabsBasichttp://d.android.com/samples/SlidingTabsColors簡単な説明が、YoutubeのDevBytesでも公開されています。http://youtu.be/tRg_eDfQ8fk特徴としては以下のようなものです。Googleアプリなどでも使われているAppStructureに異変AndroidDevelopersのAppStructureページにはアプリ構成に関する説明があります。match」、同時に利用しないという事が書かれています。AppsでもNavigationDrawerとTabの同時利用例が出始め、ある種の異変が起こっています。Tab」と「Spinners」が「格下げ」されたようにも見えます。いずれにせよ、ナビゲーションを検討する側の選択肢は広がったのかもしれません。ViewベースになったTab。アプリ最適化に関するガイドラインを出しました。Designに関するガイドラインがあり、以下のようなことが書かれています。them.つまり、TabはActionBarの一部として見えるように表示ActionBarとTabは離さずに配置となっています。Checklist」という投稿があり、Tabについて、要約すると以下のように書かれています。I/Oのソースを参考にタブはスワイプ動作に対応することViewPagerを使うタブの選択に関しては色の変化やテキストの下の線の表示で判断させるタブのテキスト下の線はタブ間のスワイプでスムーズにスライドさせる意外と細かく書いてあります。TabはView階層に放たれたとはいえ、アプリのMaterialDesignらしさを維持するためには、ある程度の「規約」を意識しながら実装することになるでしょう。まとめLollipopのナビゲーションについて少しだけ調べてみましたが、ナビゲーション周りがView階層にとき放たれたということが印象的です。自由度が上がっている反面、開発者が注意して「Androidらしさ」を考えながら実装していくことが求められます。今回のまとめは以下の様なことです。ナビゲーション周りはView階層にほとんど統合レイアウトを考える側、レイアウトする側の自由度はあがったFrameworkが管理するのはほぼCallBackのみToolbarは柔軟性のあがったActionBarデザイン適用のコストダウン移行コストも学習コストもダウン、アプリを今風にするきっかけに使えるSupportLibraryで利用できるので、新規アプリは積極的に利用すべきTabはdeprecated。Buttonをはじめ、Lollipop、MaterialDesignという観点での新しいナビゲーション要素はまだまだあります。多くのキャッチアップが必要です。今回Nexus6のような、大型画面のファブレットがレファレンス端末として発売されたのも、大型画面でのナビゲーションに対する検討の議論が活発になる要因になると思われます。4.xへの移行期ですし、SupportLibraryにActionBarが登場したのも2013年の6月のことで、MaterialDesignどころではない開発者の方も多いかもしれません。今は新しいUI/UXをなるべく早く利用することでStoreで差別化できる面白い時期です。身近な要素としてナビゲーションを再考してみるのはいかがでしょうか。Inc.の登録商標または商標です。JAPANでは情報技術を駆使して人々や社会の課題を一緒に解決していける方を募集しています。詳しくは採用情報をご覧ください。JAPANのサービス開発を支える技術やデザイン、文化を発信しています。Reserved.このページの先頭へ。