出典:ArcGIS Maps SDK for JavaScript - Transition plan: widgets to components
Esri は、JavaScript Maps SDK のコア API を <arcgis-map></arcgis-map> のような再利用可能なカスタム HTML 要素へと拡張する、Web コンポーネントの開発に全面的に取り組んでいます。
これは、ArcGIS 製品の内部開発にも、JavaScript Maps SDK の一部として提供されるビルド済みの UI コンポーネントにも当てはまります。 現在、SDK を使用した Web アプリの構築では、コンポーネントを使用することが推奨されています。
このアーキテクチャーの転換は、フロントエンド Web 開発の生産性を最大化します。 カスタム要素は、使い慣れた(HTML、CSS、JS)プログラミング エクスペリエンスを提供し、アプリケーション フレームワークとのシームレスな統合を可能にします。 さらに、ArcGIS のエクスペリエンスを Esri 製品の Web コンポーネントとしてカプセル化しているため、実績のあるワークフローを SDK の設定によって変更が可能なコンポーネントとして提供できます(すでにリリースされている Arcade Editor や チャート コンポーネントなど)。 SDK の上位レベルのコンポーネント群は、今後も継続的に拡充されていきます。
SDK が最初に開発された当時、Web コンポーネントの規格はまだ成熟しておらず、ブラウザーに広く採用されていませんでした。同時に、JavaScript の技術動向は常に変化しているため、特定の JavaScript フレームワークに積極的なコミットはしませんでした。そのため、私たちは ウィジェット アーキテクチャーを開発し、開発者が Web アプリケーションで使用できるよう、時間をかけて 60 以上のウィジェットを作成しました。 現在では、Web コンポーネントの標準がすべての主要なブラウザーでサポートされているため、(SDK の内部構造と同様に)ブラウザーの進化に合わせて技術を進化させることが可能になりました。
コンポーネントへの移行は大きく進展しており、ウィジェットとして提供されていたすべての機能はコンポーネントとしても利用可能です。最初はウィジェットを Web コンポーネントとしてラップしていましたが、現在では標準的な Web コンポーネントとして再実装が進められています。今回のリリース時点で再実装されたマップ コンポーネントは以下のとおりです。
すべてのコンポーネントの再実装が完了した後、slots(スロット)機能のサポートが追加される予定です。これにより、コンポーネント内にカスタム コントロールや機能を統合できるようになります。
SDK の多くのリソースは、すでにコンポーネント ベースになっています。これには、スタートガイド、プログラミング パターン、チュートリアル、サンプル集、コンポーネント プレイグラウンドとAPI リファレンスの統合などの新しいリソースや更新されたリソースが含まれます。 しかし、SDK の Web サイトには 8 年以上取り組んできたリソースが含まれているため、完全な移行には複数のリリースが必要になります。移行期間中は、推奨されるコーディング パターンをまだ反映していない(コンポーネント ベースではない)サンプルやコード スニペットが Web サイト上に見られることがあります。リリースのたびに、着実に進展していきます。
最終的には、すべてのウィジェットは非推奨となり、後に削除されます。しかし、コンポーネントへの移行にはアプリケーションの書き換えは必要ありませんが、相応の労力がかかり、計画と優先順位付けが必要であることを認識しています。多くの Esri 製品チームが同じ移行作業を行うことになります。 ウィジェットのロードマップは、この必要な労力とコンポーネント開発のロードマップの両方を考慮して策定されています。コンポーネントへの完全移行のために、以下のマイルストーンを目指しています。
ウィジェットの削除に伴い、現代化された SDK 内でビュー モデル機能をどのように公開するかについて慎重に設計を進めています。詳細についてはブログ記事「ビュー モデルの進化と JavaScript Maps SDK によるカスタム ワークフローの構築」をご覧ください。
コンポーネントを使ったアプリの作り方を学ぶためのリソースは以下のようにたくさんあります。