19. Deployment and Users
- Testing: This is what you use for iterative testing while you develop apps. When you link a mobile device on OXIDE for testing/development purposes, it is enrolled to this environment, and any changes that you make are automatically deployed to this environment so that you can immediately test the changes on a device.
- Staging: This can be used by other stakeholders to test a new version of a mobile app before it goes live. When you are building & showing demos, it is recommended that you use the Staging environment to deploy your app.
- Production: This is the live environment where your real-world day-to-day users and data is kept.
Let's say you want to release your app for demo/UAT purposes, and therefore want to deploy it to the "Staging" environment. This will allow you to carry on with developing the app in OXIDE and "Testing" environment, while other stakeholders could be performing demos of the app in the "Staging" environment completely separately. To do this, we first need to create a 'Staging' deployment.
Go to the Deployments workspace of the Punch List App. Once there, find the '+' icon in the top right corner and choose to 'Create New Deploy Config'. When prompted name the deployment 'Staging' and ensure the selected 'Environment' is also 'Staging'. Like this.
Next up we want to deploy our app in its current state to the Staging environment. Deploying is simply a two-click process: Click on the Deploy App button on the "Staging" deploy config you just added and when prompted to confirm select 'Continue'. OXIDE will now deploy the current version of your app to the Staging environment.
Previously, to link a device to our app in OXIDE (therefore, linking it to the "Testing" environment), you simply used the Test App action. To link users to your app once it has been deployed, however, we need to create user profiles for them on the JourneyApps App Backend (on the relevant environment). So go to the Data Browser for the Staging environment.
Now, add a new User object to the User table and hit save once you have entered a name and a role.
Once the user object is created you can enroll an app as that User by following the 'Enroll' link - this will take you to the enrollment details page for the specific user object.
The easiest way to test this for now would just be to use the Enrollment link to enroll on your desktop container. So, simply copy the link and paste it in a new browser window. Once you execute that link it will ask you where you want to enroll, on desktop or mobile. Simply select "Enroll on Desktop" and then "Launch" and it will make use of deep-linking with the desktop container to re-enroll your container to this Staging user.
If you refresh the user's page on the JourneyApps App Staging Backend, you should see that it now shows information about the enrolled device:
When you were developing and testing your app, you could press the 'Sync' button at any time and immediately see whatever changes you've made and most of the changes are pushed and applied to your app in real time as you are making them. This is because as a developer when you use the Test App functionality from within OXIDE you have a special kind of link / 'enrollment' between the app and the backend which allows for code changes to get pushed and applied continuously to the application.
On the "Staging" and "Production" environments, however, this is not possible but you also wouldn't want your users to be confused or disrupted by a change in the app when you deploy a new version. Therefore, the app won't refresh immediately for users in the "Staging" and "Production" environments. Instead, users will be notified when new changes are available and they will then be able to select whether or not to apply them now or later. Please note, if the user closes the app and opens it again then, in other words restarts the app, then all pending changes will automatically be applied.
JourneyApps supports a variety of ways in which you can manage your users. You have seen and used both the enrollment link and the enrollment QR Code during this tutorial, but JourneyApps also supports a basic username and password configuration for your end users, as well as support for SSO integration with your existing Identity Providers. Please reach out to your Customer Success Manager or our Developer community if you want to learn more about these user management options.