DroidKaigi 2020 カンファレンスアプリの早期コントリビュータをしました
DroidKaigi 2020 カンファレンスアプリの早期コントリビュータとしてリポジトリが公開される前にベースの作成に携わりました。
早期コントリビュータとして何をしたのかと、Jetpack Compose に挑戦していたのでそのことについて書いていこうと思います。
YouTube に Fireside Chat で DroidKaigi 2020 のアプリについてや開発の話や勉強になる PR の紹介もしているのでぜひ見てみてください。
早期コントリビュータとして自分がしたこと
・style や color のベースを実装
・DarkTheme のベース実装
・ちょっとしたデザインの調整
自分が出した PR はこちらになります。
style や color の定義
他の人がコントリビュートする土台づくりとしての実装だったので、公式の何かを参考にしながら実装しようと思い、material-components のサンプルプロジェクトを参考に DarkTheme を考慮しつつ style の定義をしました。
DarkTheme の色を考えるときに attribute を増やすのか color のリソース増やすのかを結構迷って相談しながら後者で実装していきました。
ベストプラクティスあれば教えて欲しいです…
Backdrop の DarkTheme てどうなるの?
Android の material-component のライブラリにはない Component で DarkTheme の時にどうなるのだろうかと思っていました。
Backlayer は Primary だけどそのまま DarkTheme にしたら眩しそうであるとか、Frontlayer は 1dp の elevation であることを考慮しておそらくこうなるだろうで実装、他のコントリビュータやデザイナーに見てもらいながら進めました。
Compose チャレンジ
Jetpack Compose で実装しようと手元で挑戦していました。以下は 0.1.0-dev04 までの実装の話になります。
実装できた範囲としては
・セッション一覧の表示
・Drawer からの画面遷移
・DarkTheme
になります。
・毎回バージョンが上がるたびに破壊的な変更が入りその差分を追うのがすごく大変
・kapt を使うとビルドできない問題
・既存の仕組み ( Navigation や LiveData ) が今のところサポートされていない
のような問題に遭遇しました。
kapt が使えない問題の回避策として Jetpack Compose だけでモジュールを作成し、他のモジュールでは kapt を使用するという感じにしてみました。(Dagger が使えないので大変になりそうなことには変わりないのですが、ビルドが通らないのはどうしようもないので…)
リストの表示までで力尽きたのですが、既存のアプリで Compose に置き換えるのはかなり大変そうだと思いました…
今回カンファレンスのベース作りという貴重な体験をすることができました。
声をかけていただいたオーガナイザーの @takahirom さんにはこの場を借りてお礼を言いたいと思います、ありがとうございました。
今回途中までしか Compose で実装できなかったので来年までに Compose 力をつけておこうと思います💪
この記事が気に入ったらサポートをしてみませんか?