Monzo は Compose を使用して堅牢で高品質のアプリを構築

Monzo は、デジタル金融サービスを提供する銀行およびアプリです。同社の使命は、すべての人にお金が役立つようにすることです。Monzo のデザイン システムはマテリアル デザインから逸脱し始めたため、常に進化するカスタム コンポーネントを簡単に記述して維持する方法が必要になり、Jetpack Compose を選択しました。

Koo の取り組み

Compose では、マテリアル デザイン コンポーネントはデザイン システムに依存しない基盤 API のレイヤとして提供されます。Monzo は、基盤となる API を使用して、マテリアル コンポーネントをリファレンスとして独自のコンポーネント ライブラリを構築しました。最初は 1 つの画面ずつ移行し、今ではすべての新しい画面で Compose を使用しています。現在、すべての Android エンジニアが本番環境で Compose を使用しています。「大きな問題は発生しなかったため、一部の新しい機能で Compose の使用を開始し、最終的にはすべての新しい機能で使用することに自信を持つことができました。」

結果

Monzo のチームは、新しい 画面を簡単に構築できるコンポーネントを作成しました。「すぐに使えるコンポーネントにより、Compose を学習しながら画面 を構築する作業がはるかにスムーズになりました。スロットベースの API は、多くの小さなビルディング ブロックから大きなコンポーネントを簡単に構築できる優れたパターンです。」

Compose を使用することで、Monzo チームは高品質のアプリを構築し、以前はスプリントで実現できなかった魅力的な機能を追加することができました。「たとえば、アニメーションです。Compose ではアニメーションの追加が非常に簡単なので、色、サイズ、高度の変化などのアニメーションを実装しない理由がほとんどありません。このような「あると便利な」アニメーションは、View システムでの労力と複雑さを考えると、実現する価値がないことがよくあります。」

コードが短くなり、読みやすく、理解しやすく、保守しやすくなりました。「宣言型コードは、変更可能な UI 階層を操作するコードよりも推論がはるかに容易です。すべてのコードが同じ言語で記述され、多くの場合は同じファイルに格納されるので、Kotlin と XML の間を行ったり来たりするより、コードをトレースするのがはるかに簡単になります。XML のテーマとスタイルについては、まだ触れていません。Compose では、テーマ設定が非常にわかりやすくなっています。テーマは、定義したプロパティのみで構成され、値はデバイス間で一貫しています。また、Kotlin で記述されているため、IDE での検索と追跡が非常に簡単です。」

Compose を使用することで、Monzo チームはアプリを簡単にテストし、アプリのアクセシビリティを確保できるようになりました。「Compose を使用することで、脆弱性の少ないテストを記述し、確実に実行して、アプリがユーザーの手元で実際に動作するという確信を深めることができました。セマンティクス システムを通じてテストすることで、画面が少なくともデフォルトで合理的にアクセス可能であることを確認できます。」

始める

詳しくは、Compose をご覧ください。