What is JourneyApps?
Last updated
Last updated
JourneyApps is a cloud-based software development platform to build and run custom enterprise apps. It allows you to rapidly build apps in an online IDE (called OXIDE) which are instantly deployed over-the-air and dynamically rendered as a hybrid app on various different devices (desktop, mobile, web, RealWear®).
JourneyApps is intended for building enterprise apps, including Business-to-Employee (B2E) apps and Business-to-Business (B2B) apps. This is ideal for giving employees and customers access to business processes within an app.
JourneyApps is therefore a very focused platform, and not aimed at building mass-market or "consumer" apps (B2C). If you intend to build consumer apps, JourneyApps would not be a good fit for your requirements.
Developing apps on JourneyApps happens 100% online, in your browser: You don't have to install an IDE or do a complicated development environment setup on your computer. To develop apps, you link a device to our online IDE (called OXIDE), and then all changes that you make to your app are pushed to the device via the cloud.
A major part of the power of JourneyApps lies in its global automatic data synchronization capability (PowerSync), which is the way that apps work by default. What this means is:
The cloud datastore in the Backend serves as the centrally-accessible location in which your app's data is stored.
User devices running your app automatically synchronize the data from the cloud data store to their local storage memory for offline access.
Whenever any changes are made to the data in the cloud data store via the Backend Portal (see diagram below) or APIs, the changes are immediately synchronized to each user 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 user, those changes are immediately synchronized to the cloud data store (Backend) using store-and-forward.
Each app generates its own REST API on the Backend that can be used to create, read, edit and delete data on the cloud data store.
Because of the PowerSync capability described above, JourneyApps applications can be used fully offline by default. Users can continue to use JourneyApps applications even if they do not have network connectivity.
You can build and run serverless JavaScript or TypeScript tasks through CloudCode. CloudCode is a full Node.js environment, allowing you to include any NPM packages in your tasks. Typical use cases for CloudCode tasks include:
Basic integrations with external services
Bulk operations such as archiving data
Generating reports, such as CSV files, PDF reports or Excel spreadsheets
Sending emails
JourneyApps primarily consists of the following building blocks:
OXIDE: The online IDE where developers build JourneyApps applications.
Backend: This is the cloud backend to which apps are deployed. It serves as the cloud data store for your app and also provides user management.
JourneyApps Container: Available for mobile (with support for Android and iOS), desktop (Windows), web browsers as well as wearable devices (RealWear®). When initially installed, it is simply an empty generic container. Once you link it to a specific app, your app customizations are deployed to the device over-the-air, and the app is dynamically rendered. This means that deploying new versions of your app to users is extremely easy: Once the container is installed, all app changes are deployed over the air.
JourneyApps is used both for developing and deploying/running apps. For that reason, 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 Backend:
Testing: This is what app developer(s) use for iterative testing while apps are being developed. When you link a mobile or desktop device in OXIDE for testing/development purposes, it is enrolled to this environment, and any changes that you make are automatically deployed 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 an app before it goes live.
Production: This is the live environment where your real-world day-to-day users operate and data is kept.
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 app.
The diagram below shows a typical high-level approach to 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 creating 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 the first version and put it in someone's hands.
Iteratively test on a device, all the time: OXIDE automatically deploys your app changes to the Testing environment as you are developing them, and the app on the device updates dynamically. This means that iteratively testing changes directly on a device is much easier and faster than it is in a traditional software 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 OXIDE, you click a single button to release this change to the Staging or Production environment of the Backend, and JourneyApps takes care of the rest.