読書尚友・EBPocketをマテリアルデザインに対応
Androidアプリの読書尚友とEBPocketを、マテリアルデザインに対応してみた。
マテリアルデザインはiOSなどのフラットデザインに似ているが、画面のパーツが現実世界の素材のメタファになっており、厚みや奥行き、重なり、質量を持つ。
GoogleはGoogle I/O 2014でマテリアルデザインのガイドラインを出したが、当初はGoogle謹製のアプリのようなUIを実現するには開発者が自前でコードを書く必要があった。2015年にDesign Support Libraryが公開されたことで、マテリアルデザインに沿ったアプリを作りやすくなった。
個人的なAndroidの開発環境をEclipseからAndroid Studioに移行したことで、これらのライブラリの導入が簡単になった。もうEclipseには戻れないと思う。
Android Studio では新しいプロジェクトを作るときのテンプレートでマテリアルデザインに沿ったアプリの雛形を生成できるので、自動生成されるレイアウトやリソースを流用したほうが作業が早い。
今回のマテリアルデザイン化の作業をまとめてみると:
- styles.xmlでマテリアルテーマを使う。
Theme.AppCompat.Light.DarkActionBar Theme.AppCompat.Light.Dialog
- 配色はマテリアルデザインガイドにあるものを使用する
- 従来のFragmentActivityやActionBarActivityのかわりにAppCompatActivityを使う
- ActionaBarのかわりにToolBarをつかう。(ただしAppCompatActivityで従来のActionaBarも使える)
- Design Support Libraryの部品を使う。今回使用したクラスは、
android.support.design.widget.CoordinatorLayout android.support.design.widget.AppBarLayout android.support.design.widget.NavigationView android.support.v7.widget.Toolbar
- サポートライブラリの定義をbuild.gradleに追加
compile 'com.android.support:appcompat-v7:23.4.0' compile 'com.android.support:design:23.4.0' compile 'com.android.support:support-v4:23.4.0'
EBPocketのほうはマテリアルデザインの導入を機にかなりUIを見直したので、操作性が向上したと思う。
- ActionBarメニューは本文に関するメニュー(共有、ブックマーク登録、ページ内検索)だけ残し、他はナビゲーションドロアに移動。
- グループ選択とグループの編集がナビゲーションドロアでできるようにした。グループ切り替えが迅速にできるようなった。
- ブックマーク、最近の項目、履歴を共有で外部アプリに渡せるようにした。
- オーバースクロールによる前画面移動をオプションでオフにできるように。
- SearchViewの検索履歴ポップアップをデフォルトでオフにした。
EBPocketの今後の課題
- PDIC,MDict,StarDictでブックマークを保存できるようにする
- App Indexngに対応する。Google検索にアプリ検索を表示する機能。従来は端末内検索という機能があったが、Kitkat以降削除され、App Indexingが推奨されるようになった。
ただしApp IndexngはWebサービスも必要で、アプリだけ登録する場合は申請フォームから申請の必要があるらしい(まだ十分に調べていない)
- 要望の上がっているところではAnki連携。ただ私がまずAnkiになれないといけない。
- あとは単語帳とか、英語学習的な機能を充実できれば。
読書尚友の今後の課題
- 本棚をRecycleViewにして、カード形式とグリッド形式を切り替えられるようにする。
- ファイルブラウザの機能向上