Web アプリケーション開発方法を選択する際のヒント

1520
0
07-23-2025 06:09 PM
Labels (1)

Web アプリケーション開発方法を選択する際のヒント

はじめに 

ArcGIS では Web アプリケーションの開発方法としてノーコード、ローコード、スクラッチの 3 種類の開発方法があります。実際に Web アプリケーションを作成する際にどの開発方法を選択するか悩む方もいるかと思います。そういった方向けに各開発方法の特徴とメリット、デメリットをお伝えし、今後の開発手法を選択する際のヒントになればと思います。 

それでは、各開発方法の特徴とメリット、デメリットを見ていきます。 

ノーコード 

ノーコード開発は、文字通りソースコードの記述を必要とせずに、テンプレートを使用して数ステップでアプリケーションの作成や、ウィジェットやエレメントと呼ばれる機能のパーツを組み合わせてアプリケーションを作成する開発手法になります。 

ArcGIS では、以下の 3 つのノーコード製品があります。 

 

それぞれの製品の特長としては以下の通りです。 

ArcGIS Instant Apps:テンプレートを使用して数ステップでアプリケーションを作成できます。作成したい要件のテンプレートがあればすぐにアプリケーションを作成できるのが特徴です。 

ArcGIS Dashboards:独自のデータを使用したダッシュボード アプリケーションを作成できます。あらかじめ用意されているエレメントを選択するのみ直感的にダッシュボード アプリケーションを作成できるのが特徴です。 

ArcGIS Experience Builder:ウィジェットと呼ばれる機能を組み合わせることで独自のアプリケーションを作成できます。ドラッグ&ドロップの操作で柔軟なアプリケーションを作成でき、非開発者でも自由度の高い独自のアプリケーションを作成できます。 

 

ノーコード製品を使用することのメリットとして以下のようなものがあげられます。 

  • ソースコードを必要とするアプリケーションでは開発者によるプログラミングでの開発が一般的だが、ノーコードでは非開発者でも独自のアプリケーションを作成できる 
  • ArcGIS では ArcGIS Online または ArcGIS Enterprise でビルダー画面が配信されているため、Web ブラウザーがあれば他に開発環境を用意しなくても開発ができる 
  • アプリケーションの要件に追加があった場合に、アプリケーションの設定や機能を追加することで対応できる 
  • ArcGIS Online および ArcGIS Enterprise のバージョン アップによって新しい機能を使用することができる 

 

一方、デメリットとしては以下のようなものがあげられます。 

  • 既存で用意されている機能で作成したいアプリケーションの要件を満たせる場合はいいが、必要とする機能が用意されていない場合はその機能はあきらめる必要がある 
  • UI に関して、決められたものを使う必要があり、UI にもこだわりたいという方には向かない 

 

ローコード 

ローコード開発は、基本的にはノーコードの機能を使用し、ノーコード機能には実装されていない機能のみをソースコードを記述して独自の機能を作成して、ノーコードの機能と組み合わせてアプリケーションを作成する開発手法になります。 

ArcGIS では、以下のローコード製品があります。 

 

製品の特徴としては以下の通りです。 

ArcGIS Experience Builder (Developer Edition):ノーコードの ArcGIS Experience Builder のローコード版になります。基本的な機能としては ArcGIS Experience Builder で提供されている機能を使用し、そこに独自の機能を作成することで低コストに拡張性のあるアプリケーションを作成することができます。 

 

ローコード製品を使用することのメリットとして以下のようなものがあげられます。 

  • ノーコード製品の機能だけでは実現できないが、独自の機能を作成し組み合わせることで従来のスクラッチ開発よりもコストを低減して開発ができる 
  • 作成した独自の機能は 1 つのアプリケーションだけでなく複数のアプリケーションで使いまわすことができる 

 

一方、デメリットとしては以下のようなものがあげられます。 

  • ローカル環境での開発になるため独自の開発環境を用意する必要がある 
  • プログラミングに関する知識が必要になるため、そういった技術を持った開発者が必要 
  • 機能単位での開発になるため、既存の機能との連携関係を考慮した設計をする必要がある 
  • 単一の機能単位でみるとローコード開発ではアプリケーションの操作画面 + ビルダーの設定画面を作る必要があり、スクラッチ開発に比べて開発コストが大きくなる 
  • 上記により、複数の機能を作成しようとする場合、スクラッチ開発よりも開発工数がかかる可能性がある 
  • 作成したアプリケーションや機能を配信する際は、別途 Web サーバーが必要になる 
  • ノーコードで新規に追加された機能を使用したいという場合には、改めて新しいバージョンでアプリケーションや機能をコンパイル、デプロイし直す必要がある 

 

スクラッチ 

スクラッチ開発は、一からソースコードを記述して独自のアプリケーションを作成する開発手法になります。 

ArcGIS では以下のスクラッチ製品があります。 

 

製品の特徴としては以下の通りです。 

ArcGIS Maps SDK for JavaScript:一から独自のアプリケーションを作成するため、要件にあった柔軟なアプリケーションを作成できます。様々なフレームワークを使用した開発や外部の API と連携したアプリケーションを作成することができます。また、自社で管理している Web アプリケーションに ArcGIS の地図を埋め込むことができます。 

 

スクラッチ開発を使用することのメリットとしては以下のようなものがあげられます。 

  • ノーコード、ローコードでは実現できないアプリケーションの作成が可能 
  • UI から機能まで必要な要件を満たすアプリケーションを開発することができる 
  • ArcGIS だけでなく外部の機能と連携したアプリケーションを開発することができる 
  • 自社で管理する Web アプリケーション上に ArcGIS の地図を埋め込むことができる 
  • 使い慣れたフレームワークでの開発が可能 

 

一方、デメリットとしては以下のようなものがあげられます。 

  • 一から開発を行うため開発工数が大きくなる 
  • 機能変更や拡張が必要な場合はアプリケーションのソースコードを書き換える必要がある 
  • プログラミングを行う必要があるため、開発の知識を持った技術者が必要 
  • 作成したアプリケーションを配信する際は、別途 Web サーバーが必要になる 

 

それぞれの開発手法について表にしたものが以下になります。 

RyukiHIRAMATSU_0-1753318955937.png

 

ノーコードは開発コストを抑えてアプリケーション開発でき、メンテナンス性が高いですが、機能や UI を拡張することができないため要件が満たせない場合があります。一方でスクラッチ開発は開発コストが大きくなり、メンテナンス性も低くなりますが、機能や UI は自由に作成できるため要件に忠実にアプリケーションを作成できます。ローコードはノーコードとスクラッチ開発の間を取ったような開発手法になります。ただし、ビルダーの設定画面を構築することや、他のウィジェットとの兼ね合いを考慮した開発を行う必要があるため、1 機能あたりの開発コストが大きくなります。そのため、多くの機能を開発する場合はスクラッチ開発の方が、開発コストが低くなる可能性がありますのでご注意ください。 

 

まとめ 

ArcGIS ではノーコード、ローコード、スクラッチ開発と 3 種類の開発方法がありますが、それぞれの開発方法にメリットがある一方でデメリットもあります。求められている要件によって開発手法を変えることで開発工数を最適化できますので、各開発方法の特徴を理解して最適な開発方法を選んでいただけたらと思います。 

 

参考リンク 

  • ESRIジャパン Web サイト 

ArcGIS Instant Apps 

ArcGIS Dashboards 

ArcGIS Experience Builder 

ArcGIS Experience Builder (Developer Edition) 

ArcGIS Maps SDK for JavaScript 

  • Esri 社(米国)Web サイト 

ArcGIS Instant Apps 

ArcGIS Dashboards 

ArcGIS Experience Builder 

ArcGIS Experience Builder (Developer Edition) 

ArcGIS Maps SDK for JavaScript 

  • ArcGIS Developers 開発リソース集 

ArcGIS Experience Builder (Developer Edition) 

ArcGIS Maps SDK for JavaScript 

Labels (1)
Version history
Last update:
‎07-23-2025 06:09 PM
Updated by:
Contributors