HUOXIU

製品ワークフローの最適化: ROI を向上させるコンポーネント ライブラリの構築

「コンポーネントライブラリ」という概念は、ここ2年間でインターネット業界で人気が高まっています。その主な価値は明確です。フロントエンドページの迅速な構築、設計・開発におけるコミュニケーションコストの削減、そしてユーザーエクスペリエンスの標準化を可能にします。中小企業のニーズに応えるため、オープンソースのコンポーネントライブラリがますます増えています。しかし、オープンソースは汎用性を重視し、個々の企業の具体的なニーズを満たすことができません。そのため、多くの企業が独自のコンポーネントライブラリを作成し始めています。

コンポーネントライブラリの構築にはコストがかかるため、2つの結果を避ける必要があります。1つは、包括的または強力であるにもかかわらず使い物にならない、もう1つは、特定のビジネスニーズを満たせず、努力が無駄になるというものです。では、より高い投資収益率でビジネスに適したコンポーネントライブラリを構築するにはどうすればよいでしょうか?

コンポーネントベースプロジェクトの全体フローチャート


I. 事前準備

コンポーネント ライブラリを構築する前に、徹底した準備が不可欠であり、この準備には 2 つの並行した手順が必要です。

一つのアプローチは、ビジネス開発の現状を把握し、問題点を特定し、コンポーネントライブラリに関する設計チームと開発チームのコア要件を伝え、開発チームと共に実装ソリューションを検討するというものです。もう一つのアプローチは、設計チームがページを包括的にレビューし、インターフェースコンテンツを整理・要約した上で、デザインガイドラインを策定するというものです。

1. 現在のビジネス状況を理解する
ビジネス開発の現状と課題を理解し、コアニーズを把握することは、どこから着手すべきかを判断する上で不可欠です。iQiyiモバイルプラットフォームのビジネス状況を見てみると、1) 長年にわたるバージョンアップにより、機能とコンテンツが継続的に追加され、新旧のスタイルやページが大量に存在しています。2) 開発者の分業体制は細かく分かれており、実装方法は場所によって異なり、統一された標準がありません。3) プラットフォームには多くの細分化された業務があり、それぞれが独立して運営されています。

この状況により、オンライン上には一貫性のない類似コンテンツが蔓延し、同じコンテンツが複数の場所で繰り返し実装され、単一の要素を変更するために複数の個別の変更が必要になるという問題が発生しています。全体的な設計・開発プロセスには時間がかかり、ユーザーエクスペリエンスの迅速な反復と最適化を妨げています。


2. インターフェースレビューと設計仕様の開発

コンポーネントを構築するには、まずコンポーネントの設計スキームを決定する必要があり、コンポーネントの基礎は完全な設計仕様になります。

400ページを超える内容を徹底的に検討した結果、インターフェースの内容を要約、整理、追加、削除、修正、そして洗練させ、最終的にiQiyiモバイルアプリのデザインガイドラインを策定しました。このデザインガイドラインの定義は長くなるため、ここでは詳しく説明しません。

インターフェースコンテンツを合理化し、標準を策定するプロセスの中で、さまざまなビジネスや役割のニーズをより深く理解し、どのコンテンツがより再利用しやすいかを発見し、どのコンポーネントを構築すべきかを決定できます。

3. 中核的要求

プラットフォームの観点から見ると、統一されたユーザー エクスペリエンスと効率性の向上という中核的なニーズと、社内のさまざまなビジネス ユニットの通常のニーズを組み合わせると、iQiyi のモバイル コンポーネント ライブラリが達成する必要のある主な目標は次のとおりです。

  • 標準化された制御用コンポーネントを使用することで、恣意的な組み合わせや不要な小さな違いを減らすことができます。

  • コンポーネントは、ビジネスのコンテンツとブランドの違いを満たす必要があり、仕様が更新された場合にも統一された調整をサポートする必要があります。

  • クラウド内で動的かつ均一に調整する機能や、さまざまなディメンションからコンポーネントをクエリおよび管理する機能を備えています。


II. コンポーネントのセットアップ

包括的なページレビューと要件に関する議論を通じて、色やコントロールアイコンといった基本要素に加えて、再利用性の高いコンポーネントを主に2つのカテゴリに分類しました。「基本コンポーネント」(ポップアップ、メニュー、トーストなど)は基本的な機能を実装し、ビジネスコンテンツを表示する「ビジネスコンポーネント」(社内ではカードと呼んでいます)は、ビジネスコンテンツを表示するコンポーネントです。基本コンポーネントの要件は比較的単純で、業界定義もほぼ一貫していますが、カードコンポーネントはiQiyiのビジネス特性をよりよく反映しているため、以下の議論では主にカードコンポーネントに焦点を当てます。

1. 適切な粒度を選択し、構成関係とフレーム タイプを定義します。

コンポーネントライブラリの構築というと、多くの人は「原子-分子-組織-テンプレート-ページ」構造を用いるアトミックデザイン理論を思い浮かべるでしょう。このアプローチは、より厳密で包括的な標準を可能にするため、設計仕様の策定に適しています。しかし、特定の業務アプリケーションで使用されるコンポーネントライブラリとなると、実際の状況に基づいて粒度を考慮する必要があります。

コンポーネントの粒度が細かくなるほど、詳細な仕様をより適切に実装できるようになります。しかし、結果として得られる組み合わせは非常に多様になり、全体として見ると多くの非標準化の可能性が生じます。さらに、共通要素で構成されるコンポーネントが互いに結合されているため、1つの要素の変更が広範囲に及ぶ影響を及ぼし、制御不能な状態につながる可能性があります。

そのため、カードコンポーネントを構築する際には、カード内のすべての要素に参照関係を作成しませんでした。代わりに、再利用性を高めるために「ブロックカード」という粒度を主に採用しました。つまり、異なるブロックモジュールとカード構造を定義しました。カードは複数のブロックで構成され、ビジネスロジックはカードコンポーネントを使用してページデザインを完成させます。


2. コンポーネントはすぐに呼び出すことができ、拡張性と互換性も備えています。

検索と迅速なアクセスを容易にするために、カードの構成要素には名前と、対応するコンテンツが明確に定義されている必要があります。カードにあまりにも多くのバリエーションを組み込めると、特定の通話中に内容が分かりにくくなります。一方、カードの変数が少なすぎると、ニーズを満たすために過剰な数のカードを作成する必要があり、カード間の類似性が非常に高くなります。

カード コンポーネントの拡張性と明示性のバランスをとった後、最終的に各カードのフレームワーク構造だけでなく、フレームワーク内の各モジュールにバリエーション用によく使用される複数のモジュールを組み込むことも定義しました。

さまざまなカードフレームの例
カードはフレームワークに準拠した複数の組み込みブロックをサポートします。

コンポーネントを使用する場合、2 種類のビジネス要件があります。1 つは、コンポーネントを直接再利用し、バージョンが変更されたときに同時に有効になることを期待することです。もう 1 つは、コンポーネントを使用するが、ビジネス ブランドのニーズに応じてローカル調整を行い、調整された部分はコンポーネントのバージョン変更の影響を受けないことです。

前者の要件については、コンポーネントを直接再利用できます。これらのコンポーネントはコンテンツ全体を定義し、使用中に特定の要素/モジュールの表示/非表示をサポートします。後者については、「コンポーネント派生」関係(「親子」関係と解釈できます)を設計しました。これにより、ビジネスユーザーはローカルな調整を行うことができ、その後のコンポーネントのスタイル変更によって調整内容が上書きされることはなく、調整されていない部分は元のコンポーネントに更新されます。これにより、フレームワークとスタイルの一貫性が確保され、デザインの再設計時に「すべてを変更する」という問題点を解決しながら、ブランド差別化というビジネスニーズにも応えることができます。

カードコンポーネントの使用例


3. 統合管理のためのコンポーネント バックエンドを構築します。

コンポーネントライブラリの全体的な構成は次のとおりです。プラットフォーム設計側はコンポーネントのコンテンツを定義し、フロントエンド側はコンポーネントのスタイルを構築し、バックエンド側はコンポーネント管理プラットフォームを構築します。コンポーネント管理プラットフォームはコンポーネントの展開と管理を担い、開発者とビジネスユーザーがコンポーネントをより合理的かつ標準化された方法で利用できるようにし、その後の保守と検索を容易にします。
コンポーネントの実際の利用プロセスでは、以前はビジネス側が既存コンテンツを再利用したい場合、オンラインコードの特定の部分と同じだと伝えるだけで、開発者はオンラインコードをコピー&ペーストしていました。現在では、プラットフォームの製品チームと設計チームが適切なコンポーネントを選択し、開発者がコンポーネントバックエンドを通じて展開と配布を管理することで、再利用可能なコンテンツがコンポーネントとしてのみ使用されるようにしています。
コンポーネントバックエンドは、ビジネス固有の管理もサポートします。垂直統合型ビジネスでは、独自のニーズに合わせてプラットフォーム上に独自のコンポーネントライブラリを構築し、独立した保守・管理を行うことを検討できます。

呼び出し関係を標準化・明確化することで、コンポーネント管理プラットフォーム上で各コンポーネントの使用状況を照会できるようになります。また、その後の設計イテレーションにおいて、コンポーネントの変更による影響範囲を明確に把握できるため、設計上の決定と変更の効果を保証できます。


4. Sketch プラグインを使用して、設計と開発のプロセスを効率化します。

デザインツールと開発コードを統合することでのみ、効率を向上させ、より良い結果を得ることができます。そのため、開発チームには独自のSketchプラグインの開発も依頼しました。このプラグインは、自動注釈、ワンクリックでのテキストの高さ変換、コンポーネント名の直接表示、ダークモードのカラーキーと値の変換、デザイン案のコードへの変換といった機能を提供します。これらの機能は、コンポーネントベースではない要件の効率も向上させます。


III. コンポーネントの範囲と再利用性を高めることで効率を向上します。

要件と設計の有効性を損なうことなく、効率性を真に向上させるには、ソリューション設計において可能な限りコンポーネントを活用することが不可欠です。新しい要件に対応するためにコンポーネントを使用するだけでなく、既存のページコンテンツも可能な限りコンポーネントに置き換えることで、再設計時に「ワンサイズフィット」アプローチを実現し、効率性を向上させることができます。
コンポーネントに置き換え可能なオンラインコンテンツを特定するために、デザイナーはまず、頻繁に使用されるインターフェースを徹底的にウォークスルーし、置き換え可能なコンテンツを特定します。次に、開発チームは第2レベルおよび第3レベルのページのスタイルコードとコンポーネントをスキャンし、類似性を調べます。類似性が高いスタイルについては、手動で評価を行い、コンポーネントとして使用できるかどうかを判断します。再利用性の高いスタイルは、新しいコンポーネントに割り当てられます。

IV. コンポーネント化の結果

1四半期にわたるコンポーネント構築と交換を経て、カードコンポーネントは自社事業におけるオンラインカバレッジ43%を達成しました。コンポーネント利用の需要において、「設計・開発・テスト」の全体的な効率は約40%向上し、クライアント側の全体的なエクスペリエンスは約25%向上しました。
さまざまなページの綿密なレビューと設計仕様の洗練、毎週午後から夕方にかけての開発チームとのソリューションに関する議論、製品マネージャーなどのコンポーネントのスケジュールと実装、プラットフォームの観点からのさまざまなビジネス関係者とのコミュニケーションと交渉などを通じて...コンポーネント化プロジェクト全体において、オーナーである設計チームは、ソリューションの綿密な議論と洗練、ビジネス関係者との継続的なコミュニケーション、開発チームとの優れた綿密な協力を通じて、このような成果を達成しました。
最後に、コンポーネント化は効率性を向上させ、ユーザーエクスペリエンスを統一する上で優れた方法ですが、デザインプロセスにおいてコンポーネントの使用を過度に重視し、デザインイノベーションの可能性を失ってはなりません。むしろ、製品価値を深く理解し、デザインスキームを包括的に検討した上で意思決定を行い、両者のバランスを取り、価値を最大化する必要があります。