こんにちは! Bonfire運営の森本です。
1/16に令和2年最初の「Bonfire Android #6」をヤフー社内で開催しましたので、そのイベントの様子をレポートします。Bonfire Androidは、Androidアプリを開発する上で浮かんでくる課題や、進化を続ける開発環境、言語機能とどう向き合っているかについて情報共有する会です。
第6回となる今回のテーマは「Payアプリを支える技術」です!
特にここ一年で国内で「キャッシュレス」は非常に大きく盛り上がりを見せ、お財布なしでも外出もできるようになってきたと実感しています。今回は、モバイルの決済の分野の最前線でサービスの開発をされている4名の方にご発表いただきました。
早い開発速度と高い品質を求められる中、各社どういった課題をどうやって解決しているのかなど多くのお話を聞くことができました。
当日のつぶやきのタイムラインはこちらで確認いただけます。
新 Kyash Card を支える技術
田中 嘉紘さん 株式会社Kyash
最初の登壇者は、株式会社KyashでAndroidアプリを担当されている田中さんです。
Kyashでは現在、Androidエンジニアのリソースが実質1.2人という限られた中、100画面を超えるアプリの開発を行っています。このエンジニアリソースの不足や新規メンバーの学習コストという課題の中、より標準に寄せた機能を利用することでそれらを解決するお話を、いくつかの例を挙げ発表していただきました。
今では当たり前に使われるようになったConstraintLayoutも、ただ相互にViewを配置していくと複雑な構成になり、保守が大変になります。そこで、「Previewで一見してわからない複雑さは保守できない」課題の対応としてGuideLineなどを使って解決した実例をKyashカードのデザインレイアウトを交えてお話いただきました。
他にも登録画面など複数の画面にわたるデータやイベントの共有でSharedViewModelの注意点やアニメーション、Kakaoライブラリを利用したUIテストなどについてもお話いただきました。
また、KyashアプリにはAndroidエンジニアにはおなじみの、バージョンを連続でタップすると何かがおきるあの機能がひそかに実装されているとのことでした。
API通信の状態をsealed classを使って表現する
菊間 英行さん 株式会社メルペイ
3人目の登壇者は、株式会社メルペイでAndroidエンジニアとしてメルペイの開発をされている菊間さんです。菊間さんはDroidKaigiのスタッフもされており、開催に向けての準備も行ってくださっています。
API通信時の初期値表示、通信中のProgress表示、成功時のデータ表示、失敗時のエラーや再読み込みの表示など多くの画面で必要になる通信の状態管理について、RemoteDataKというライブラリをメルペイでは利用しているとのことです。このライブラリはもともと内部で使っていたものをOSS化したもので、必要な要件を満たしたライブラリとして利用できているようです。
sealed classを利用することでLoadingやSuccessといった通信状態と読み込み量やレスポンスのデータなどの値の両方がうまく表現することができ、扱いやすくなります。
実際のコードをベースに紹介いただき、どうやって扱うかなどもわかりやすかったのではないでしょうか。
PayPay Androidアプリについて
前原 理来 PayPay株式会社
最後の登壇者は、PayPay株式会社の前原です。現在新卒1年目でヤフーに入社後、PayPayに出向しPayPayのAndroidアプリの開発をしています。
PayPayはサービスを開始して1年でユーザー数が2000万人を超えました。会場内で利用したことがあるか聞くと多くの方が使ったあことがあると挙手をしました。
PayPayは週1リリースのスピード重視のアジャイル開発のスタイルをとっており、去年は両OS合わせて120回という驚異的なリリース回数を実現しています。
この開発サイクルを維持するために以下のような工夫をしていると説明がありました。
- 仕様等の調整ごとはなるべく早く
- ブランチ戦略の見直し
- 開発前に不安なところはあらかじめ方針相談する
- QA期間に素早くbugfixを行う
PayPayでは開発の基本方針をしっかり維持して開発をすすめているように感じました。火曜にはreleaseブランチが自動できられるブランチ戦略、リリースするときには常に2つ3つ先のバージョンのリリースアプリの開発が始まっているなど、高速リリースにかける執念が感じられました。
また、Single ActivityでありながらFragmentを利用していない、との話のときは多くの人が驚いてツイッターがかなり盛り上がりました。
開発方針はチームやプロダクトにもよって何がよいかは変わってくるかもしれませんが、いろいろと参考にして自分のチームでも活かせそうだと感じました。
おわりに
今回は「Payアプリを支える技術」について4名の方にご発表いただきました! 開発速度を上げたい、品質を上げたいなどの課題に対して、実際に現場で利用できるようなお話も多かったのではないでしょうか。私も新しい情報をインプットできたので開発に活かしていきたいと思いました。また、今後もAndroidアプリに関するさまざまな課題を共有できる場としてBonfire Androidを開催できればなと思っています。ご興味がありましたらまた、connpassにて告知しますのでぜひご参加下さい。
写真: 立花 健吾
こちらの記事のご感想を聞かせください。
- 学びがある
- わかりやすい
- 新しい視点
ご感想ありがとうございました