Monzo は、デジタル金融サービスを提供する銀行とアプリです。同社の使命は、すべての人のためにお金を役立てることです。Monzo のデザイン システムはマテリアル デザインから逸脱し始めていたため、常に進化するカスタム コンポーネントを簡単に作成、維持する方法を必要としており、Jetpack Compose を選択しました。
Ultimate Guitar の取り組み
Compose では、マテリアル デザイン コンポーネントは、デザイン システムに依存しない基盤 API のレイヤとして提供されます。Monzo は、マテリアル コンポーネントをリファレンスとして使用し、基盤 API を使用して独自のコンポーネント ライブラリを構築しました。最初は 1 つの画面ずつ移行し、現在はすべての新しい画面で Compose を使用しています。現在、Compose はすべての Android エンジニアが本番環境で使用しています。「大きな問題は発生しなかったため、一部の新しい機能に使用し始め、最終的にはすべての新しい機能に使用することにしました。」
結果
Monzo チームは、新しい画面を簡単に作成できるコンポーネントを作成しました。「Google が提供するコンポーネントにより、Compose を学びながら画面を作成することがよりスムーズなエクスペリエンスになります。スロットベースの API は、多くの小さな構成要素から大きなコンポーネントを簡単に構築できる素晴らしいパターンです。」
Compose により、Monzo チームは、以前はスプリントで実現できなかった魅力的な機能を追加し、より質の高いアプリを構築できました。「アニメーションはその一例です。Compose ではアニメーションを簡単に追加できるため、色、サイズ、エレベーションの変更など、アニメーション化しない理由はほとんどありません。このような「あったら便利」なアニメーションは、ビューシステムで労力と複雑さをかけて実装する価値がない場合が多い。」
コードが短くなり、読みやすく、理解しやすく、メンテナンスしやすくなりました。「宣言型コードは、変更可能な UI 階層を操作するコードよりも推論がはるかに簡単です。また、すべてのコードが同じ言語で記述され、多くの場合は同じファイルに格納されるので、Kotlin と XML の間を行ったり来たりするより、コードをトレースするのがはるかに簡単になります。XML のテーマやスタイルについては、言及すらしません。Compose ではテーマ設定がはるかに理解しやすくなります。テーマは、定義したプロパティのみで構成され、値はデバイス間で一貫しています。Kotlin で記述されているため、IDE で検索して追跡するのが非常に簡単です。」
Compose により、Monzo チームはアプリを簡単にテストし、アプリがアクセス可能であることを確認できました。「Compose は、アプリがユーザーの手元で実際に動作することを脆弱性が少なく、信頼性の高いテストを作成して、大きな信頼を得るのに役立ちました。セマンティクス システムでテストすることで、画面が少なくともデフォルトでアクセス可能であることも確認できます。」
始める
詳しくは、Compose をご覧ください。