この記事は CyberAgent Developers Advent Calendar 2023 16日目の記事です。

こんにちは、マッチングアプリ「タップル」</span>のiOS開発を担当している永野です。

本記事では弊チームで検討している、UIコードの生成AI技術の活用についての検討について共有させていただきます。

はじめに

優れたUIをデザインし、それを実装することは簡単ではありません。デザインと開発のプロセスには時間とコストがかかり、小さなミスがUXに大きな影響を及ぼす可能性があります。また、デザイン通りにUIを実装するのにはフロントエンドエンジニアの大きな苦労を伴います。

このような課題を解決するために、近年注目されているのがUIの自動生成技術です。

UIの自動生成とは、プログラムやAIがデザイン素材や仕様を基に自動的にUIコードを生成する技術です。この技術を活用することで、デザインから実装までの工程が効率化され、デザイナーと開発者の間の連携もスムーズになるはずです。また、繰り返しの作業や人的ミスを削減し、品質の一貫性を保つことも期待できます。

UI自動生成のアーキテクチャの検討は、このような背景から重要性を増しています。効果的なアーキテクチャは、モバイルアプリ開発のプロセスを革新し、より高品質でユーザーフレンドリーなアプリの提供に寄与します。しかし、この分野はまだ発展途上であり、多くの課題が存在します。本記事では、UI自動生成の現状、利点、課題、そして将来の展望についてチームで検討した結果をご紹介していきます。

AIが生成するマッチングアプリのイメージ

 

2. UI自動生成のメリット

UI自動生成技術の採用は、モバイルアプリ開発において多くのメリットをもたらしますが、特に下記の2点に対して大きく寄与すると考えています。

  1. 生産性の向上:UI自動生成により、デザインと開発の工数が大幅に削減されます。デザインの再現性と一貫性が保たれるため、開発者はコードの品質に集中でき、デザイナーはより創造的な作業に時間を費やすことができます。さらに、AI駆動のツールは、ユーザーの好みや行動に基づいてパーソナライズされたUIを提供することで、ユーザーエンゲージメントを高めることも可能です。UI自動生成により、100パターンの画面UIを生成し、ユーザーそれぞれに個別に最適化するごとで100通りのタイプのユーザーに最適なタイプのUIの提供が可能になります。
  2. ヒューマンエラーの削減:自動生成されたUIは、手作業による間違いや矛盾を減らし、全体的なUIの品質を向上させます。また、一貫したUIコンポーネントの提供により、デザイナーと開発者は既存の高品質なコンポーネントを再利用し、開発時間を短縮できます。加えて、多くの自動生成ツールには、デザインやコードのエラーを事前に識別し、修正を促す機能が備わっており、リリース前の品質保証プロセスを強化します。

3. 現行のUI自動生成ツールと課題

しかし、現状のプロダクトで私たちを含め、UI自動生成ツールを十全に活用できているプロダクトはあまり聞きません。特に下記の点での障害があるように感じます

  1. カスタマイズ性の欠如
    現在のUI自動生成ツールは、しばしばカスタマイズの選択肢に限界があります。これは、生成されたUIが特定のプロジェクトの独特な要件やブランドアイデンティティに完全には対応できないことを意味します。また、デザインの細部に対する制御が不足している場合、ユーザーエクスペリエンスに影響を与える可能性があります。
  2. ロジックの統合の困難さ
    多くの自動生成ツールは、デザインの視覚的側面に重点を置いており、ビジネスロジックや動的なデータの統合が難しいことがあります。これは、実際のアプリケーションの機能性と相互作用を実現するために追加の開発作業が必要となることを意味します。
  3. コードの品質とメンテナンス
    自動生成されたコードの品質やパフォーマンスは、手作業によるコードと比較して劣る場合があります。また、生成されたコードはメンテナンスが困難で、将来のアップデートや変更に柔軟に対応できないことがあります。
  4. デザインの再現性
    生成されたUIがデザインモックアップと完全に一致しない場合があります。これは、特に異なるプラットフォーム間でのUIの一貫性を保つことが困難であることを意味します。例えば、同じデザインがiOSとAndroidで異なる見た目になることがあります。
  5. 既存のUIコンポーネントの利用の困難さ
    自動生成ツールは既存のUIフレームワークやコンポーネントとの互換性が低いことがあります。これは、既存のUIライブラリやカスタムコンポーネントを活用する際に追加の調整が必要となることを意味します。

 

4. 課題へのアプローチ

現行のUI自動生成ツールの課題を克服し、より効果的なアーキテクチャを実現するためには、いくつかの重要なアプローチが必要だと考えています

  1. 画面の分離と専門化の設計
    UIの自動生成が適している画面と、手作業での精緻なデザインが必要な画面を識別することが重要です。例えば、広告や購入画面など、複雑なロジックやアニメーションが必要ない画面では自動生成を活用し、一方で、ブランドのアイデンティティを強く反映する必要がある画面ではカスタムデザインを適用することが効果的です。
  2. 状態管理と宣言的UIの活用
    現代のUIフレームワーク、例えばSwiftUIやJetpack Composeなどの宣言的UIフレームワークを利用することで、UIの状態をより容易に管理できます。これにより、UI自動生成ツールが生成したコードでも、状態変更に対応しやすくなります。
  3. 品質評価とユーザーフィードバックの統合
    生成されたUIの品質を評価するために、ユーザーテストやフィードバックを積極的に取り入れることが重要です。例えば、Firebase Personalizationのようなテクノロジーを活用して、ユーザーの反応に基づいて最適なUIを選択し、不具合のあるUIは自動的に排除することができます。
  4. カスタマイズと拡張性の向上
    自動生成されたUIのカスタマイズ性を高めるために、生成されたコードを容易に編集できる機能や、既存のUIコンポーネントとの統合を可能にするオプションを提供することが重要です。これにより、開発者は自動生成されたUIに対して細かい調整を加えることができます。

5. まとめ

UI自動生成技術は、モバイルアプリ開発に革命をもたらし、デザインと開発のプロセスを効率化しています。現在のツールは迅速なプロトタイピングを可能にする一方で、カスタマイズ性やコード品質などの課題も存在します。これらの課題に対する解決策として、より柔軟なデザインアプローチ、宣言的UIフレームワークの利用、ユーザーフィードバックの統合が重要です。将来的には、AIの進化によりこれらの課題が克服され、より高品質でユーザー中心のUIデザインが実現されることが期待されます。この技術の発展は、効果的でユーザーフレンドリーなアプリ開発の未来を形作る重要な要素です。

2019年入社のiOSエンジニアです。現在はタップルのSREチームに所属し、パフォーマンス計測や開発基盤の改善を通じて、モバイルアプリケーションの信頼性の向上を目指しています。