Tutorials → JourneyApps: The Big Picture
This tutorial provides a high-level overview of what JourneyApps is and its methodology for building apps.
What is JourneyApps?
In essence, JourneyApps is a cloud-based technology platform to build and run custom enterprise mobile apps.
|JourneyApps allows you to rapidly customize & graphically
model business processes in an online editor...
|...which is instantly deployed over-the-air and dynamically
rendered as a native tablet or smartphone-based mobile app
JourneyApps is for Internal Business Apps
JourneyApps is intended for building enterprise apps for your workforce — sometimes also called Business-to-Employee (B2E) apps. This is ideal for giving your employees access to business processes on their mobile devices. JourneyApps was designed from the ground up to be the fastest platform for building these kinds of apps.
JourneyApps is therefore a very focused platform. By virtue of its capabilities and functioning, it is not aimed at building mass market or consumer mobile applications. If you intend to build apps for a wide audience outside of your organization (for example, your customers), JourneyApps might not be a good fit for your requirements.
JourneyApps is Fully Cloud-Based
Everything that you do with JourneyApps happens online, in your browser: There is no software to install, no IDE to configure, no device connectivity setup to perform. To develop apps, you link a device to our online App Editor by scanning a barcode, and then all changes that you make to your app is pushed to the device via the cloud.
Components of JourneyApps
JourneyApps consists of the following components: (refer to the diagram below)
- App Editor: This is where an app developer signs in to build JourneyApps apps.
- App Back-end: This is the cloud back-end to which apps are deployed. Therefore, it serves as the cloud datastore for your app, and also provides user management.
- Mobile/Chrome App: This is either a native mobile app (with support for Android and iOS) or a desktop app (running as a Chrome app), which, when initially installed, is simply an empty generic container. Once you link it to an App Back-end, your app customizations are deployed to it over-the-air, and the app is dynamically rendered. This means that deploying new versions of your app to users is extremely easy: You don't have to distribute new binaries.
Environments and Staged Deployment
Keeping in mind that JourneyApps is used both for developing and deploying/running apps: It is necessary to keep your real-world or live data and users separate from the data and users that you use for testing purposes during the development process. For this purpose, JourneyApps provides 3 different environments of the App Back-end:
- Testing: This is what app developer(s) use for iterative testing while apps are being developed. When you link a mobile device on the App Editor for testing/development purposes, it is enrolled to this environment, and any changes that you make is automatically deployed to here 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.
- Production: This is the live environment where your real-world day-to-day users and data is kept.
Global Automatic Data Sync
A major part of the power of JourneyApps lies in its global automatic data synchronization capability, which is the way that apps work by default. What this means is:
- The cloud datastore in the App Back-end serves as the centrally-accessible location in which your app's data is stored.
- Mobile devices running your app automatically synchronize the data from the cloud datastore to their local storage memory for offline access.
- Whenever any changes are made to the data in the cloud datastore via the Data Browser (see diagram below), the changes are immediately synchronized to each mobile device running your app. This process happens automatically in the background without any user intervention.
- Similarly, whenever any changes are made to the data from a particular mobile device, those changes are immediately synchronized to the cloud datastore (App Back-end) through the use of our Store and Forward function.
- Each app generates its own REST API that can be used to create, read, edit and delete data on the cloud datastore (App Back-end)
Apps Can Be Used Offline by Default
Because of the features described above, JourneyApps apps can be used fully offline by default.
- The Offline Sync functionality makes data available to users to access offline.
- The Store and Forward functionality stores any data that the user has captured on the device's permanent memory until such time as it can be successfully synchronized with the cloud datastore (App Back-end). This means that users can continue to use the app to capture data even if they do not have network connectivity.
An App Consists of a Data Model and Views
Building an app on JourneyApps involves the customization of two kinds of things:
- Data Model: This describes the data that your app makes use of (in more technical terms: object types with their attributes and relationships)
- Views: This defines the layout and logic for the actual screens in your mobile app.
The JourneyApps Approach to Building Apps
The diagram below shows a typical high-level approach of how you would build an app on JourneyApps. This approach is very similar to a standard software development methodology, however, take note of the following key differences with JourneyApps:
- Go directly from idea to app creation: Normally when developing apps, much time is spent to create specification documents and wireframes to design the application before development commences. It's so easy and fast to develop apps on JourneyApps that often it's best to go directly from idea to first version and put it in someone's hands.
- Iteratively test on a device, all the time: The JourneyApps Editor automatically deploys your app changes to the Testing environment as you are developing them, and the mobile app refreshes its screens dynamically, even if you are in the middle of a process. This means that iteratively testing changes directly on a mobile device is much easier and faster than it is in a traditional mobile development context, and therefore is the recommended approach to use.
- One-click deploy to production: In a traditional mobile development scenario, releasing the app to live users is often a risky and laborious process. With JourneyApps, deploying to production is simply a one-click process. Once you are satisfied with a change that you've developed in the App Editor, you click a single button to release this change to the Staging or Production environment, and JourneyApps takes care of the rest.
It is recommended that you read the How to Build Apps tutorial next for an in-depth technical guide on how to build apps.