Build an Extension App with App Views
This guide will provide an overview on how to use the Symphony App Developer Kit (ADK) to build an extension app that has app views. This app will add entries into the left navigation that will each launch a separate app view. The project will use React and ADK's React and Webpack configuration for app view generation.
Create Project
Create a working directory and initialize it using npm
.
Install Dependencies
Install the Symphony ADK, the ADK React and Webpack configurations, React itself, Symphony UI Toolkit for UI Components, Typescript, Webpack and the required loaders.
Open the project directory in an editor of your choice
Add Script Commands
Edit the package.json
file, replacing the scripts
section with the following:
This adds two commands:
npm start
for starting the development web servernpm run build
to launch the production build process
Add Configuration
Create a .babelrc
file with the following contents:
Create a webpack.config.js
file with the following contents:
Add Application Manifest
Each extension app requires a manifest (also known as the bundle.json
file) to describe the application. Create a file named bundle.json
with the following contents:
Build the App
We are now ready to start building the app. Create a src
directory and a file named index.js
(or index.ts
if you're using TypeScript) within it.
The code ADK.start()
initializes the ADK with an app id (adk-example
) that must correspond with the value provided in the bundle.json
manifest from the previous step.
Once the initialization is complete, we use ADK.navigation.add()
to add an item to the left navigation bar. This item will have the label "ADK View A" and clicking on it will use ADK.modules.open()
to open a module with the app view called view-a
. This parameter can either be an actual navigational route (e.g. view.html
) or a string that will correspond to a JavaScript or TypeScript file with the same name located in the src/views
directory.
Let's proceed to build the app view itself in a file named view-a.jsx
(or view-a.tsx
if you're using TypeScript) within src/views
.
The contents of this app view are entirely arbitrary. You can choose not to use Symphony's UI Toolkit and employ other component libraries of your choice. The only required line here is calling ADKReact.createView()
at the end, passing in your component and a configuration object pointing to the same app id as before.
For aesthetics, let's define some styling in src/views/view-a.css
.
Start the App
We can now start the app using:
This starts a local development server on https://localhost:4000
. Note that this is a TLS-enabled site because all extension apps need to be loaded from TLS-enabled sites. However, because this is a development server, the certificate is self-signed and not trusted by any browser.
Visit https://localhost:4000 in your browser to accept the security warning about the untrusted self-signed certificate. Skipping this step will cause the extension app to not load within Symphony in the next step.
Load the App in Symphony
There are 2 ways to load an extension app into Symphony. For development purposes, we will be using the bundle injection method to temporarily load the app into the current session.
Beyond local development testing, you should get your pod administrator to create a corresponding app entry in the Admin Portal by uploading the bundle.json
file.
We can now load the app by injecting the bundle URL as a parameter named bundle
behind a pod URL. For example, if you are using the developer sandbox located at develop2.symphony.com, visit the following URL in your browser:
Test the App
Acknowledge the warning about being in developer mode. You should notice that a new left navigation item appears and opens an app view when clicked on.
Next Steps
Now that you have built a view-driven Extension App, you can proceed to build out your view and add more as required to complete your app.
Add Buttons and Handlers to an Extension AppAdd BDK to an Extension App for Circle of TrustLast updated