hishidaの開発blog

EBシリーズ(EBPocket,EBWin,EBMac,EBStudio),KWIC Finder,xdoc2txt,読書尚友の開発者ブログ

読書尚友・EBPocketをマテリアルデザインに対応

Androidアプリの読書尚友とEBPocketを、マテリアルデザインに対応してみた。



マテリアルデザインiOSなどのフラットデザインに似ているが、画面のパーツが現実世界の素材のメタファになっており、厚みや奥行き、重なり、質量を持つ。
GoogleGoogle 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にして、カード形式とグリッド形式を切り替えられるようにする。
  • ファイルブラウザの機能向上