LogoLogo
What's NewDeveloper CommunitySupportStatus
  • 🚀Get Started
    • What is JourneyApps Platform?
    • Tutorial: Build your First App
      • 1. Introduction
      • 2. Create a new App
      • 3. OXIDE IDE Overview
      • 4. Hello World app
      • 5. The Data Model
      • 6. View Components
      • 7. Queries and Data Sync
      • 8. Simple Navigation
      • 9. View Stack
      • 10. Input Validation
      • 11. View Parameters
      • 12. Data Manipulation
      • 13. Responsive Apps
      • 14. Styling
      • 15. Lists
      • 16. GPS Capturing
      • 17. Relationships
      • 18. Multiple User Roles
      • 19. Deployment and Users
      • 20. Version Control
      • 21. CSV and APIs
      • 22. Conclusion
    • JourneyApps Platform Fundamentals
      • Creating a New App
        • Git-enabled Apps
      • What are Views?
      • What is the Data Model?
      • JourneyApps Syntax Basics
      • Access the Database (DB)
        • Manipulate DB Objects
        • Query DB Objects
      • View Navigation
        • Deep Linking
      • CloudCode Overview
      • OXIDE (Online IDE)
  • 💻Build your App
    • JourneyApps Syntax
      • Syntax Basics
      • Access the DB
      • View Navigation
      • Async & Await
      • TypeScript Apps (Beta)
        • runtime-build package
        • TypeScript App Troubleshooting
      • What's New in V4
        • Updating to the V4 API
    • Configure your Data Model
      • What is the data model?
      • Reference: model
        • field
        • belongs-to
        • has-many
        • index
      • Data Rules
        • Data Buckets
        • Sync Rules - Limit data synced to devices
        • Data ACLs - Limit access to data
        • Real-world example for Data Rules
        • ❔FAQs
        • Migrate to Data Rules
      • App Indexes
      • Webhooks
    • UI Components
      • All UI Components
        • actionSheet
        • Attachments
        • button
        • button-group
        • capture-coordinates
          • marker
          • marker-query
        • capture-file
        • capture-photo
        • capture-signature
        • card
          • accent
          • action
        • columns
          • column
        • component
        • context-menu
          • divider
          • item
        • CSV
        • date-input
        • datetime-input
        • dialog
          • body
        • display-3d-model
          • 📖display-3d-model Guides
            • Guide 1: Initialize and layout a 3D model in a view
            • Guide 2: Control playback position
            • Guide 3: Troubleshooting controls
        • display-coordinates
        • display-file
        • display-image
        • display-photo
        • display-signature
        • heading
        • html
          • HTML Advanced Topics
          • ❔HTML FAQs
          • 📖Guide: HTML & JourneyApps iFrame Client
        • icons
        • info
        • info-table
          • row
        • journey.photos (capture multiple photos)
        • JourneyPrinter (print PDFs)
        • grid
          • cell
          • 📖grid Examples
        • list
          • list-item
            • accent
            • asset
            • pills
              • pill
            • action
        • multiple-choice-checklist
        • navigation (Navigation drawer)
          • general-section
            • item
          • section
            • item
              • item
          • ❔navigation FAQs
        • notification
        • object-dropdown
        • object-list
          • action
        • object-repeat
        • object-table
          • action
          • column
            • action
            • edit-boolean
            • edit-date
            • edit-datetime
            • edit-integer
            • edit-number
            • edit-select
            • edit-text
            • edit-time
            • edit-typeahead
              • action
            • header-action
          • column-group
          • empty-action
          • 📖object-table Guides
            • Actions
            • Cell callouts
            • Column groups
            • Columns
            • Controlled object-table
            • Controls
            • Copy & paste data
            • Edit cells
            • Filters
            • Frozen columns
            • Fullscreen object-table
            • Mode
            • State
            • Styles
        • optionList
        • PhotonSync (transfer data offline)
        • power-bi
          • 📖Guide: PowerBI Embedding
        • scan-barcode
        • shortcut
        • sidebar
        • single-choice-dropdown
        • single-choice-radio
        • template
        • text-input
        • time-input
        • toggle
        • view
      • JS/TS Events
      • Show / Hide UI Components
      • View Templates
      • XML Fields (Attributes)
        • align-content
        • align-controls
        • align-label
        • bind
        • clear-button-visibility
        • control-order
        • disabled
        • error-message
        • icon-position
        • id
        • hide-if
        • modifier-text
        • label
        • label-case
        • label-color
        • on-change
        • on-press
        • placeholder
        • required
        • show-if
    • JS / TS APIs
      • Attachment
      • Bluetooth (Beta)
      • Broadcast
      • component
      • CSV
      • DB
      • HardwareBarcode
      • journey
        • journey.config
        • journey.container
        • journey.device
        • journey.diagnostics
        • journey.dialog
        • journey.files
        • journey.hardware
        • journey.photos
        • journey.runtime
        • journey.sensors
        • journey.viewStack
      • JourneyPrinter
      • KeyboardBarcode
      • LocalDB
      • NFC
      • OnlineDB
      • PhotonSync
      • SerialPort
      • ShortcutManager
      • TCPSocket
      • user
    • Extend your App with Custom Code
      • App packages
        • App packages overview
        • PDF report package
        • TypeScript library & unit tests
        • Manage External Dependencies
      • Custom HTML
    • Style & Customize your App
      • Style & configure UI components
        • Overview
        • Understand extendable themes
        • Use themes on a view
        • Theme specific components on a view
        • Examples
        • Debugging
        • ❔FAQs
      • Change your App Font
      • Custom Branding
        • Custom Container Features
        • Special Requirements for iOS Containers
    • Integrate your App
      • Backend integrations with CloudCode
      • Barcode Scanning
        • Barcode Scanning using Keyboard Emulation
        • Hardware Barcode Scanning
        • scan-barcode
      • Bluetooth Low Energy (BLE)
      • Broadcast API
      • HTTP requests (Fetch API)
      • JourneyApps Print (Android)
      • Maps and navigation
      • NFC
      • Opening external links/apps
      • Serial Port
      • TCP Sockets
    • Design Intuitive Apps
      • UX Guidelines
      • Write Effective Copy
  • 📱App Features
    • RealWear® Voice Control
      • Automatic Voice Commands
        • Automatic Voice Commands - Advanced
      • Manual Voice Commands
    • App, Runtime and Container Updates
    • Batch Operations (App)
    • Call JS/TS Functions from XML
    • Capture GPS Locations
    • Push Notifications
    • Translations
    • XML Format Strings
    • Webhooks (External)
  • 🌐CloudCode
    • CloudCode Overview
    • Trigger a CloudCode Task
      • Trigger CC with a Schedule
      • Trigger CC via a Webhook
      • Trigger CC from an App
      • Trigger CC from Another Task
      • Trigger CC via HTTP
    • Attachments in CloudCode
    • Timezones
    • Advanced CloudCode Topics
      • Access Multiple DBs in CloudCode Tasks
      • Batch API (CloudCode)
      • CloudCode Dependencies
      • Configure HTTPS in CloudCode
      • Deployment environment variables
      • Local CloudCode Development
      • PDF Reports using CloudCode
      • Shared CloudCode Tasks
      • Translations in CloudCode
  • 📥Backend API
    • Introduction
    • API Reference
      • Retrieve All Objects
      • Query Objects
      • Sort Results
      • Limit and Skip
      • Count Objects
      • Create a New Object
      • Retrieve a Single Object
      • Update a Single Object
      • Delete a Single Object
      • Batch Operations (v4 API)
      • Oplog API
      • Retrieve the App Data Model
      • Manage App Users and Sessions
      • Field Representation
      • Error Responses
    • API Limits
    • Update to the V4 API
  • ⚙️Technical
    • Data Synchronization Priority
    • Device Diagnostics
    • JSON1 Query Engine
    • Improve App Performance
    • Security Measures
    • Supported Platforms
      • Web Container
      • Windows Installer
    • Domain Whitelist
  • 🖥️OXIDE
    • Get started with OXIDE
      • OXIDE Overview
      • Components of OXIDE
    • Configure Testing Deployments
    • Edit and Manage Files
      • How to Navigate to a Function
      • Manage External Dependencies
    • Create and Manage App Containers
    • Debugging & Troubleshooting
      • Common Troubleshooting Pointers
      • App Diagnostics Reports
      • Build Logs
    • OXIDE Workspaces
      • OXIDE Trees
  • ❕Deprecated Features
    • Deprecated Features and Components
Powered by GitBook
On this page
  • Overview
  • App and runtime updates
  • Container updates
  • Runtime versioning in more detail
  • Runtime tracks
  1. App Features

App, Runtime and Container Updates

PreviousManual Voice CommandsNextBatch Operations (App)

Last updated 2 years ago

There are a number of update mechanisms to be aware of. This document describes the different update mechanisms as well as differences between platforms.

Note: Changes since version 4.56

Before version 4.56.0 of the container, the JourneyApps Runtime was bundled with the container instead of the application. This meant that runtime updates were outside the control of developers, and users of an app could have a wide range of runtime versions, depending on the container that they have installed.

From version 4.56.0, it is possible to select a runtime version to be used in the application. This runtime forms part of the application OTA update, ensuring that all users are using the same version.

Users running older versions of the container will not be able to download an OTA runtime version, and will get a message prompting to update the container. The same may apply in the future if a runtime version requires a new container.

If an application does not specify a runtime version, it will still use one depending on the installed container. The last runtime version available in this way is v4.59.1. For newer runtime versions, the version has to be explicitly configured for the application.

Overview

To see a full changelog of changes with each update to the Runtime and Container, please visit .

The following gives an overview of the concepts of "container", "runtime" and "app":

Description

The native application initially installed on the user's device. It is only a shell containing the sign in process, as well as native functionality for the specific platform, e.g. camera or GPS

Update Mechanism

Update Frequency

A few times per year

Version Scheme

Year.Month.Version

Description

The framework responsible for running an application, e.g. interpreting the XML and JS code that defines a specific app, as well as managing storage and data sync.

Update Mechanism

Selected by developer in OXIDE for an app. Updates over-the air along with app updates for apps with Version Management enabled under App Settings.

Update Frequency

Multiple versions per month

Version Scheme

Major.Minor.Patch

Description

The XML and JavaScript/TypeScript files written by developers in OXIDE that define the user workflows and logic.

Update Mechanism

Over-the-air when a developer deploys via OXIDE.

Update Frequency

Multiple updates per day, week, or year

Version Scheme

Defined by developer

App and runtime updates

The app and runtime are updated OTA ("over-the-air") as soon as a deploy is performed by a developer. Regular users will see a notification to update their app, after which the app may navigate back to the main view.

Developers, when using the Testing barcode to test their app, will see that updates are applied immediately, with no intervention required in the app. This makes it quick to make changes to the app and see the result of the changes.

To use functionality in newer JourneyApps versions (e.g. updates to UI Components), the runtime for the app must be updated to the newer version.

Container updates

The following table explains the differences between all the Container Update mechanisms:

Platform
JourneyApps-Branded Container
Custom-Branded Container

Android

Applied as per OS-level setting for installing updates automatically.

Need to be manually distributed and installed.

iOS

Applied as per OS-level setting for installing updates automatically.

Need to be manually distributed and installed.

Windows

N/A

Download initiated when user clicks on sync button. Applied when selected by the user, or application is restarted.

We recommend keeping users on the latest container at all times. Mobile device management (MDM) software is recommended to distribute and update applications for Android and iOS.

Runtime versioning in more detail

The Runtime uses Semantic Versioning. Breaking changes will either be behind feature flags, or be part of major version bumps (for example in version 5.0.0).

New features will be introduced in minor versions, e.g. in 4.71.0. It should generally be safe to update minor versions, but always make sure to test. There may be some visual or behavioral changes as part of minor versions.

Patch releases will only include bug fixes, and should always be a safe upgrade.

Runtime tracks

Tracks are used to classify runtime versions. The table below describes all the runtime tracks. Please note that some tracks may not be visible to all developers.

Track
Description

dev

These are highly experimental, often still under development. They are useful for quickly testing experimental features but have no guarantees regarding stability. These builds should not be deployed to production users.

beta

These have passed initial Quality Assurance (QA), and may include early-access features. This track is also not intended for production use.

rc

These have been through significant QA. It is considered production-ready but needs the opportunity to run in production environments before being considered completely stable.

stable

These are considered completely safe to use in production and should be the default track for most of apps to be on. Developers should still test their apps when selecting a new stable runtime, since there may have been changes in terms of functionality.

Dependent on OS and specific container. Read more in section.

Container updates are comparatively more complicated than app updates, in that the way in which updates can be applied depends on the platform on which the Container is running, as well as whether the standard JourneyApps Container, or a is installed.

📱
whatsnew.journeyapps.com
custom-branded container
Container updates