Compose を導入する理由
コードを削減
記述するコードの量の減少は、開発のすべての段階に影響します。作成者は目の前の問題に集中できるようになり、テストとデバッグの作業量が減り、バグの発生率が低下します。レビュー担当者またはメンテナンス担当者にとっては、読み、理解し、レビューし、保守する必要があるコードが減ります。
Compose を使用すると、Android ビューシステムを使用する場合と比べて、少ないコードで多くのことができます。ボタンであれリストであれアニメーションであれ、何を作成する場合でも、記述するコードが少なくなります。以下では、パートナーの皆様の声をご紹介します。
- 「同じ Button クラスで、コードのサイズが 1/10 になりました。」(Twitter)
- 「画面の大部分を占める、RecyclerView で構築された画面でもコードが大幅に削減されています。」(Monzo)
- 「アプリでリストやアニメーションを作成するのに必要な行がとても少なくって喜んでいます。機能ごとに記述するコード行がわずかで済むので、顧客に価値を提供することにより集中できるようになりました。」(Cuvva)
作成するコードは Kotlin でのみ記述され、Kotlin と XML に分割されることはありません。「すべてのコードが同じ言語で記述され、多くの場合は同じファイルに格納されるので、Kotlin と XML の間を行ったり来たりするより、コードをトレースするのがはるかに簡単になります。」(Monzo)
Compose で記述されたコードは、作成するコンテンツのメンテナンスを簡素化する手段になります。「Compose のレイアウト システムは概念的にシンプルなので、理解するのが簡単です。複雑なコンポーネントのコードも簡単に読解できます。」(Square)
直感的に楽しめる
Compose では宣言型 API を使用します。つまり、必要なのは UI を記述することだけであり、残りの処理は Compose が行います。API は直感的で、簡単に見つけて使用できます。「私たちのテーマレイヤは非常に直感的で判読が容易です。通常であれば複数のレイヤで構成されるテーマ オーバーレイを介して属性の定義と割り当てを処理する複数の XML ファイルにまたがる機能を、単一の Kotlin ファイル内で実現できるようになりました。」(Twitter)
Compose では、特定のアクティビティまたはフラグメントに関連付けられない小さなステートレス コンポーネントを作成します。それにより、再利用とテストが容易になります。「私たちは、ステートレスで、使いやすく、保守が容易で、直感的に実装 / 拡張 / カスタマイズできる新しい UI コンポーネントのセットを提供することを目指しています。Compose は、この目標を達成するための確かな手段を与えてくれました。」(Twitter)
Compose では、状態は明示的であり、コンポーザブルに渡されます。そのため、状態に関する信頼できる唯一の情報源が存在し、状態はカプセル化されて分離されます。アプリの状態が変更されると、UI が自動的に更新されます。「何かについて判断するときに考慮すべきことが減り、自分でコントロールできない動作や十分に理解されない動作が少なくなります。」(Cuvva)
開発を加速させる
Compose は既存のすべてのコードと互換性があります。ビューから Compose コードを呼び出すことも、Compose からビューを呼び出すこともできます。Compose では、Navigation や ViewModel などの一般的なライブラリの大半と Kotlin コルーチンが機能するので、必要なときに必要な場所で導入を開始できます。「私たちは相互運用から Compose の統合を開始し、すべてが問題なく機能することを発見しました。ライトモードとダークモードなどについて考えずに済むこともわかり、開発全体が信じられないほどシームレスになりました。」(Cuvva)
Android Studio のフルサポートとライブ プレビューなどの機能を利用することにより、コードの反復処理とリリースを高速化できます。「Android Studio でプレビューに要する時間が大幅に短縮されました。複数のプレビューを作成できることも時間の節約に役立っています。多くの場合、さまざまな状態やさまざまな設定(エラー状態やフォントサイズなど)で UI コンポーネントをチェックする必要がありますが、複数のプレビューを作成できるので簡単にチェックできます。」(Square)
パワフル
Compose を使用すると、Android プラットフォーム API に直接アクセスし、マテリアル デザイン、ダークテーマ、アニメーションなどを組み込んだ美しいアプリを作成できます。「Compose では、単なる宣言型 UI を超えるものを作成できます。ユーザー補助 API やレイアウトなど、あらゆる種類の機能が改善されています。Compose を使用すると、作りたいものを実際に作るためのステップが簡素化されます。」(Square)
Compose では、アニメーションを使ってアプリに生き生きした生命を吹き込む機能を迅速かつ簡単に実装できます。「Compose ではアニメーションを簡単に追加できるので、色やサイズや高度の変化をアニメーション化しない理由が見当たりません。」(Monzo)「何も特別なことをしなくても、静止画面を表示するのと同じようにアニメーションを作成できます。」(Square)
マテリアル デザインと自身のデザイン システムのどちらを使用する場合でも、Compose を使えば、希望するデザインを柔軟に実装できます。「マテリアル デザインをその基盤から切り離すことは、私たちが独自のデザイン システムを作成するうえで非常に役立ちます。独自のデザイン システムでは、マテリアルとは異なるデザイン要件が必要とされることが多いからです。」(Square)
Twitter、Square、Monzo、Cuvva がどのように Compose を利用しているかについては、詳細な事例紹介をご確認ください。