Set up a project
Purple Experience Builder

Structure of Dynamic resources

17min
dynamic resources are the core of each app the dynamic resources are files based on web technologies, that can change some configurations (e g app menu, channels, tracking, …) the app checks for updated dynamic resources on every app start and resume this mechanism allows you to edit files on the fly, without submitting an app update dynamic resources are accessible in the following ways via purple manager they can be downloaded from the purple manager, where a preview and live version of the resources exists learn how to edit dynamic resources from purple manager via purple experience builder furthermore, they can be accessed via the purple experience builder, which is a web application in which the editing happens and doesn't require the down and upload of the files learn how to edit dynamic resources in purple experience builder https //app archbee com/docs/d14me xb2l bjrizul4sr/crr5a3ge kbqyiducujs learn more about the structure of dynamic resources docid\ okscitbqbkoqv 8jeow 5 dynamic resources consist of files that aid in configuring both the app and the web experience changes to the app configuration (such as the app menu, channels, tracking, etc ) within the dynamic resources do not necessitate submitting an app update the app checks for updated dynamic resources each time it starts or resumes web configuration elements (including views, custom js and css files, etc ) are necessary for both the app and the web they assist in constructing the entire logic of the app/website structure the minimal setup of the dynamic resources requires a default folder that contains the configuration files platform specific configuration you may add platform specific configurations this is done by adding some platform folders such as 'android', 'ios' or 'web' if two folders contain the same file, then the more specific file overwrites the more generic one, e g some file in default gets overwritten by the same file from android example let's imagine the following folder structure default storefront assets file1 css file2 css web default storefront assets file1 css when reading the path storefront/assets/file1 css from android or ios, for example via the url resource //dynamic/storefront/assets/file1 css it will give you file1 css from the default folder for purple websites, as a file of the same name is present in the folder, you will be served file1 css from web/default/storefront/assets/ at the same time, file2 css is not overridden in the web specific folder and thus will be the same on all platforms localization (translation) localization currently is only supported in apps! you still should set a locale for your website as well to ensure proper seo indexation and accessibility it is possible to add translations by adding folders such as de, en, or de de, en us next to the default folder depending on the device's preferred languages, the app loads the best fitting configuration files from these folders in earlier android versions, only the device’s system language is used the look up happens in the following way for each of the system’s preferred languages, check if there is a folder that matches the exact locale (e g de de or en us ) matches the exact language (e g use en folder for en us ) uses the same language but a different region (e g use en uk folder for en us ) in the case that there is no matching folder, the configuration falls back to the contents of the default folder native app configuration app menu the app’s side menu can be configured using the app menu xml file for a detailed explanation of all its features and configuration, see app menu xml docid\ nxi0s2kws4 m2o0vdlc31 dynamic configuration it is possible to place a config json in the dynamic resources this is a simple key value file which can be used by the app for some dynamic configuration the onboarding version key is used by the app to determine the version of the current onboarding tracking the tracking is configured by editing tracking config json for further details about configuring tracking feedback e mail the feedback e mail can be configured using the email feedback config json , email feedback subject mustache and email feedback body mustache files web configuration most of the web configuration files are situated under the path default/storefront/assets in the dynamic resources these files are divided into three categories json files these files contribute to constructing the entire app and its various components examples include views json, url json, and appbar json css files these are intended for adding custom css to override the default styling of the experience components js files generally used to introduce custom features and interact with third party elements (such as zephyr) urls json it represents the list of configuration files (json files) that need to be imported into the app views json it contains a list of views each view is assigned to a path and represents the routing logic of the app each view has a root layout that may contain other layouts and components the views json is a json file located under storefront/assets where you can store all views https //app archbee com/docs/qtjkvew7g556yo3qfoyay/cemlondywwi8h90reeafd appbar json every view is expected to have an app bar the appbar json file assists in incorporating a collection of appbars that are utilized in conjunction with the views json file within the app ads json this file aids in configuring all advertisements within the app subsequently, you only need to integrate each ad into its appropriate position within the view messages json assists users in overriding all default messages defined in the experience additionally, it enables the creation of new messages that can be utilized in the views json file these messages will be translated according to the language set in the purple manager navigations json it enumerates all the tab navigation items intended for display within the app access json it assists users in configuring some of the basic actions of the experience, such as loginaction and subscriptionaction generic widget json it aids in configuring multiple widget libraries and widget elements for utilization in the views json experience config json its purpose is to establish certain global variables and properties that are currently absent in the purple manager for experience custom css it is a css file that gets injected directly into the experience dom during the view loading process this file is generated based on all the other css files listed in the index scss scripts/custom js this is a javascript (js) file that is injected directly into the experience document object model (dom) during the view loading process customers utilize this file to include custom functions and logic that aren't accessible to the current components and features of the experience experience components experience components are the principal entities used to create a view they represent the experience ui widgets implemented in the experience project depending on the component type, you can find embedded components and views within it learn more about 'components' in the purple experience https //app archbee com/docs/d14me xb2l bjrizul4sr/i2nqgh5hbvmjyzw6ichky