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

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

Ultimate Guitar の取り組み

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

結果

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

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

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

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

始める

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