Customizing web app and keeping up to date without losing changes

477
1
Jump to solution
01-08-2021 01:36 AM
PeterMorlion
New Contributor

Hello,

This might be a simple question, of which I suspect I know the answer, but I want to be sure. I'm just getting started, so apologies if I'm missing something that is clearly stated somewhere in the docs.

We used the web app builder to get a web app up and running. Now we want to customize certain pieces. I can mess around with the code, but my concern is that the customizations would be lost when we upgrade to a newer version of web app buider (i.e. our changes would be overwritten).

What is the recommended approach here? Start with the web app builder and write our own widgets from scratch (perhaps based on existing widgets)? Or write a web app from scratch without the builder? Or is there another way?

I'm guessing it will be to use web app builder and write our own widgets, but I just want to be sure I'll be taking the correct path going forward.

1 Solution

Accepted Solutions
LefterisKoumis
Occasional Contributor III

Hello Peter.

I developed WAB's custom widgets and also modified ESRI widgets to fit the needs our customers.

For the modified ESRI widgets, I kept track of the changes by keeping a log. Github is another option to keep track of your changes.

Every time there was a new version of WAB, I just posted the custom widget by updating the app's config.json file. For the ESRI's customized widgets, I had to re-apply the changes.

In 2019, ESRI announced that the WAB 2D it will not upgraded to use the newer JS API library, version 4.x

WAB 2D is using the older JS API 3.x library.

Instead, they introduced the Experience Builder (EB) to replace WAB in the near future.  So, all the new tools and widgets which are based on the JS API 4.x cannot be used in the WAB 2D. That was a major shift because WAB 2B is based on Dojo but the EB is based on the ReactJS.  You can see that since last year there were very few upgrades done on the WAB2D, since ESRI moved to a different direction.

So, it is my opinion, that  if you are getting started in the development of web-based apps, to spend time to learn ReactJS and Typescript and utilize the JS API to create custom widgets. I personally will not use EB. Just use HTML5, css3 and JS API 4.x to develop web-based apps. I am also spending time to become familiar with the esri-calcite effort. The templates will assist you creating apps which use the JS API 4.x and websites which will be in compliance with the ADA requirements. That's my two cents.

https://esri.github.io/calcite-web/

 

 

View solution in original post

1 Reply
LefterisKoumis
Occasional Contributor III

Hello Peter.

I developed WAB's custom widgets and also modified ESRI widgets to fit the needs our customers.

For the modified ESRI widgets, I kept track of the changes by keeping a log. Github is another option to keep track of your changes.

Every time there was a new version of WAB, I just posted the custom widget by updating the app's config.json file. For the ESRI's customized widgets, I had to re-apply the changes.

In 2019, ESRI announced that the WAB 2D it will not upgraded to use the newer JS API library, version 4.x

WAB 2D is using the older JS API 3.x library.

Instead, they introduced the Experience Builder (EB) to replace WAB in the near future.  So, all the new tools and widgets which are based on the JS API 4.x cannot be used in the WAB 2D. That was a major shift because WAB 2B is based on Dojo but the EB is based on the ReactJS.  You can see that since last year there were very few upgrades done on the WAB2D, since ESRI moved to a different direction.

So, it is my opinion, that  if you are getting started in the development of web-based apps, to spend time to learn ReactJS and Typescript and utilize the JS API to create custom widgets. I personally will not use EB. Just use HTML5, css3 and JS API 4.x to develop web-based apps. I am also spending time to become familiar with the esri-calcite effort. The templates will assist you creating apps which use the JS API 4.x and websites which will be in compliance with the ADA requirements. That's my two cents.

https://esri.github.io/calcite-web/