4D開発において、コンポーネントの管理というタスクは一般的にかなりの労力を必要とします。しかし、4Dの新機能のコンポーネントマネージャー機能を使用することで、コンポーネント管理は大きく進化しました。
コンポーネントを特定のComponentsフォルダに配置する制約がなくなったことにより、この機能は、2つの重要な要素から成り立っています。 dependencies.json および environment4d.json ファイルです。これらのファイルは、開発者にアプリケーションの依存関係をより良く可視化し、コンポーネントパスをカスタマイズする柔軟性を提供します。
開発中のコンポーネントマネージャー・インターフェース
問題の核心に入る前に、現在、4Dコンポーネントと、プロジェクトのComponents フォルダ内にあるコンポーネントは、デザインメニューからアクセス可能な新しいプロジェクト依存関係スクリーンから見ることができるということをお伝えしておきます。
この画面では、プロジェクトの依存関係を見ることができるだけでなく、近い将来には新しいコンポーネントを追加したり、それを管理したりすることもできるようになります。
dependencies.jsonによる構造化された管理
コンポーネントの管理は、dependencies.json という、アプリケーションが使用するコンポーネントを列挙したマニフェストファイルを通じて行われます。このマニフェストファイルは、これらの重要な要素のロードを簡素化することで、依存関係管理のための明確な構造を保証します。
その利点は、すべてのプロジェクトが(GitHub Desktop などを通して)フラットな構造で管理され、エイリアスや重複したコピーの作成が不要になることです。これは特に相互依存のコンポーネントを扱う場合に重要です。
dependencies.json の一例:
{ "dependencies":{ "MyComponent" :{} } }
この場合は、読み込みたいコンポーネントであるMyComponentは、パッケージフォルダの隣に配置されていることを意味します。
environment4d.jsonを使ったカスタマイズ
デフォルトのパス(パッケージフォルダの隣)が合わない場合でも、個人の作業環境ファイルのコンポーネントへのパスを定義することが可能です。environment4d.jsonは環境のカスタマイズを可能にします。コンポーネントへの絶対パスまたは相対パスを指定することで、このマニフェストは、各プロジェクトの特定のニーズに応じてパスを適合することができます。
直接的な利点は、各開発者が自分の環境ファイルをデータベースの親フォルダーに持つことができるため、例えばコミットするかしないかを決めたり、ディスク構成に対応したりすることができることです。
environment4d.jsonの一例:
{ "dependencies":{ "myComponent1" : "../MyComponent1"、 "myComponent2" : "./MyComponent2"、 "myComponent3" : "file:///Users/jean/MyComponent3" } }
開発者のための実践的管理
もし、environment4d.jsonが、特定の依存関係に対して存在しない場合、または、このファイルが、dependencies.jsonに挙げられている依存関係についての情報を欠いている場合、4Dは、dependencies.jsonに記載されている名前を利用して、パッケージフォルダの隣にある依存関係を取得します。
全てのコンポーネントの状態を一箇所で見る
プロジェクトの依存関係画面では、dependencies.jsonとenvironment4d.jsonで宣言されたコンポーネントを表示し、各依存関係の情報(名前、ソース、ディスク上の依存関係へのアクセスなど)だけでなく、依存関係の状態(別の依存関係と競合しているかどうか、依存関係が正常にロードされたかどうか、ロードされていない場合はその理由)を取得することもできます。
コンポーネントマネージャー機能は、4Dエコシステムにおける特筆すべき進歩です。dependencies.jsonとenvironment4d.jsonを活用するこの新しいアプローチは、開発者により強化されたコンポーネントの管理を提供します。 詳細はドキュメントをご覧 ください。また、コンポーネントマネージャに関する今後のアップデートにもご期待ください!