年末年始アプリ開発その3
2018-02-10 13:35:00 +0900 JST
Categories: Android
年末年始?知らない子ですね。
なかなか時間がとれず開発が停滞していたのですが、1月下旬あたりから少し余裕が取れたので、少しず~つですが進めていました。
おーええやん pic.twitter.com/6JOdiWNKFI
— kuluna (@kuluna) 2018年2月3日
CoodinatorLayoutを使ってスクロール時にActionBarを消した処理を入れてみました。
2列に表示されているリストはRecyclerViewのLayoutManagerを StaggeredGridLayoutManager
をすることで、高さが可変なGridLayoutを表示することができます。
recyclerView.layoutManager = StaggeredGridLayoutManager(2, StaggeredGridLayoutManager.VERTICAL)
たったこれだけであのレイアウトになるんですね。すごい。
あっ、これすごく良い pic.twitter.com/V6wqisssrc
— kuluna (@kuluna) 2018年2月4日
こちらは設定でJavaScriptを実行しないようにできるモードを追加してみたものです。明らかにロードの時間が違いますね。
AndroidのWebViewはデフォルトでJavaScriptが無効になっています。
webView.settings.run { this.javaScriptEnabled = true }
これでJavaScriptが有効になるのですが、あえて無効のままにするオプションを追加してみました。
最近のWebはJavaScriptにあまり頼らなくてもリッチな表示ができているので、ある程度のサイトはこれで読み込み速度を大幅に向上させることができます。一応メニューからブラウザで開く機能もつけたので、より詳細にページを見たい場合はブラウザで開くことができます。
ダークテーマにしてみたのと、ブコメをさくっと見られるモードを用意しました。良さげ。 pic.twitter.com/dR7HXjolwU
— kuluna (@kuluna) 2018年2月4日
このあたりから画面もFragmentで分割するようにしました。ダークテーマですがどうもRecyclerViewで表示するViewにはデフォルトでアプリのテーマが設定されないようなので、XMLにthemeを追記することでダークテーマになりました。
<android.support.v7.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="4dp"
android:layout_marginEnd="4dp"
android:layout_marginStart="4dp"
android:layout_marginTop="4dp"
android:foreground="?android:attr/selectableItemBackground"
android:theme="@style/AppTheme">
</android.support.v7.widget.CardView>
あんまり深く考えずに、テーマが適用されてない箇所があったらとりあえずこのテーマでヨロ!って感じで設定しておけばいいんだと思います。
今日一日アプリを使ってみて、コメントからBackキーを押した時に一覧に戻ってしまうのがすごく微妙だったので、コメントを非表示にするだけにしてみました。 pic.twitter.com/bXdYET2M50
— kuluna (@kuluna) 2018年2月5日
ここは普通にFragmentManagerのbackstackを・・・とやろうと思ったのですが、そうするとFragmentを毎回生成することになるので単純にブコメ表示するFragmentをshow/hideするだけにしています。そうすることで表示を切り替えても読み込みが発生せずサクサクと表示されるようになりました。
ここまでで9割ほど欲しい機能が実装終わった感じなので、あとは設定画面を少し追加すればストアに配布してみようかと思っています。