Improve Layout/Widget configuration reusability between Experiences

616
5
07-02-2024 03:34 PM
Status: Open
andrewdc_tt
Frequent Contributor

Experience Builder is great at creating complex groups of widgets and layouts to create an app that works exactly the way I want it. However, I find the experience of re-using my configurations easily in other Experience Builder apps (and even other pages inside the same Experience) a challenge. I'm often having redo a lot of work setting up widgets to look and function with the same settings.

Currently, it only seems to be possible to reuse widgets/layouts in the following ways:

  • Duplicate the Experience in its entirety - often overkill when I just want to reuse a particular component
  • Duplicate and move a widget/container to the pending list - however this seems to be restorable to the same page only
  • Copy and paste - this seems to be unreliable in actually working, and only within an Experience.

What I'd like to see (as a reference, the Elementor website builder tool does these things well):

  • A component library that can have groups of widgets/layout containers and configurations saved to and shared with others creating Experiences. An example use case could allow reuse of a widget controller that was preconfigured with widgets and prestyled colours, or a column containing standard help text and some widgets and images that is commonly deployed to many apps. This could be a bit like full page templates, but just for modular 'pieces' of the page that can be inserted as easily as regular widgets.
  • Better experience for copying and pasting - it should be easy and reliable to copy and paste components between pages/windows, and between Experiences open in different tabs. The ability to copy and paste the properties of a widget onto another of the same widget (rather than just duplicating it) would also be useful. 
5 Comments
SarahNoakes1

That's a great idea @andrewdc_tt 

Currently we have a number of mapping websites that have been built in-house using the JavaScript API v3. Really they are all the same site, using the same base code and each is customised via a config file.  So to add a new feature or update an existing tool, the code only has to be changed once.

We want to migrate these to Experience Builder, but this is going to mean a completely separate EXB app for each site - a much bigger site creation and maintenance overhead.  Being able to configure and re-use widgets could potentially help with this.

QuantitativeFuturist

@SarahNoakes1 I would caution against moving to ExB, the widgets they release are lacking in functionality and full of bugs. Writing anything custom is much more difficult as you need to write for the ExB stack. JS API generally has the most stable code as everything is built from there, I have seen multiple ExB implementations of JS API 4x features that are so buggy they are absolutely useless. We're heading the other direction from ExB to JS API 4x, in fact we're looking at dropping our Enterprise licence too due to the low quality software and terrible customer experience at a huge expense. Unless you are non-profit of government esri licencing is prohibitively expensive for what you actually get. 

Jianxia

@andrewdc_tt, Thank you for such great suggestions! The concept of "A component library" would be very helpful for reusing and sharing the configuration and layout design. For copying and pasting, currently you can use ctrl+c and ctrl+v to copy widgets between pages, windows, and views in an experience. There is no easy way to copy widgets between experiences. 

 

Jianxia

@SarahNoakes1, Experience Builder is a no/low code app builder. ArcGIS Maps SDK for JavaScript is full code. Depending on the requirements of your application, you may choose either of them. Understand the challenge you are facing for rewriting custom widgets and reconfiguring apps.

Jianxia

@QuantitativeFuturist , As you know, we continue migrating features from Web AppBuilder to Experience Builder through incremental releases. Could you please let us know which functionalities or widgets are you looking for that are not yet migrated over? Thanks!