Slide 1

Slide 1 text

© KAUCHE, Inc. Jetpack Compose 化をしてリリースしたらお問い合わせを増やしてしまった話

Slide 2

Slide 2 text

© KAUCHE, Inc. 自己紹介 - 2022 年 7 月に正社員で入社(Android 2 人目) - Android メインだけど最近バックエンドにも手を出したり - 直近 - モジュール構成の見直しをしたり - もうすぐリリース予定の新機能の実装をしたり - 検索のフィルターを作ったりしました(今日はここのお話)

Slide 3

Slide 3 text

© KAUCHE, Inc. 検索機能について カウシェについては sintario さんが説明してくれたので割愛。 アプリのアーキテクチャは Google が出している推奨アーキテクチャに似たものです

Slide 4

Slide 4 text

© KAUCHE, Inc. 検索機能について(〜 2022/08/31, v1.42.0 まで) 検索ワードを入れて検索ができるシンプルな もの、v1.41.0 で Jetpack Compose 化

Slide 5

Slide 5 text

© KAUCHE, Inc. 検索機能について( 2022/09/01, v1.43.0〜) フィルターとソートをできるように

Slide 6

Slide 6 text

© KAUCHE, Inc. Jetpack Compose 化した手順 1. すぐ旧実装に戻せるように Feature Flag を仕込んでコントロールできるようにする 2. 初見画面だったのでまずはわかりやすい見た目から実装していく 3. テキスト入力時の挙動が複雑だったので触りつつロジックを実装 4. 完成 ※ 旧実装と新実装を共存させており、近々消す実装も多かったのでテストを書かない判断をしました。 ここも改善ポイントだったかもしれない

Slide 7

Slide 7 text

© KAUCHE, Inc. リリース後 - 特に目立ったクラッシュはなさそう - TextField 長押しして範囲選択したら落ちる、という Jetpack Compose の不具合によるものはあったが Feature Flag の切り替え処理を消して古い実装の削除に着手予定、、でした

Slide 8

Slide 8 text

© KAUCHE, Inc. ここで QA チームから連絡が

Slide 9

Slide 9 text

© KAUCHE, Inc. しくじり

Slide 10

Slide 10 text

© KAUCHE, Inc. しくじり、つまりこういうこと 「炭酸水」というワードで検索したい ↓ 変換するために「た」から入れる ↓ 検索が走りテキストも確定されてしまって変換できない ↓ 😇

Slide 11

Slide 11 text

© KAUCHE, Inc. その後のプロダクトチームでの対応 - Feature Flag を切り替えて古い実装を参照するようにして hotfix - 事象の修正対応をして改めてリリースし、無事解決

Slide 12

Slide 12 text

© KAUCHE, Inc. その後 QA チームと議論し対策したこと - 工数を広げすぎずに今回の事例をどう防げたか?で考えて対策すべき - 1、2 個テストケースを追加すれば Try できそう ↓ TextField 周りはたくさんの観点があるが、全角ローマ字入力モードのテストは必ず見ておく

Slide 13

Slide 13 text

© KAUCHE, Inc. 学び 機能要件を満たせているかの QA も大事だが、 操作性が悪くなっていないかなどの観点でも QA をすべき

Slide 14

Slide 14 text

© KAUCHE, Inc. 今後より強固にするためにどうするといいか試行錯誤中 - UI テストを書く? - これからどんどん機能追加がされていくので コスパが悪そう - ひとまずユニットテストは書く - 実はこの画面は 1 Screen でできている ので入力画面と検索画面分けても良さ そう

Slide 15

Slide 15 text

© KAUCHE, Inc. まとめ - 検索のフィルター機能を実装するにあたり、Jetpack Compose 化したときのしくじりをお話しました - 実際にカウシェで行った対策と今後の展望についてお話しました - 今後行っていきたい恒久対応についてお話しました - もし、うちだとこうしてるよ!みたいな事例があったら教えて下さい