3 Installing and Setting up the Application - JET Mobile
Prerequisites
You must have downloaded the Retail Store Operations Cloud Service package from OSDC (edelivery.oracle.com) and extracted the apk file from the /SOCS-JET folder.
You must have a separate IDCS application provisioned:
Format: RGBU_SIOCS_< EnvType><EnvIndex >_SOCS_JETMOBILE
Example: RGBU_SIOCS_DEV1_SOCS_JETMOBILE
Platform-Specific Requirements
End User Device Android OS Version
Android | 10.0+ |
Note:
Please note that even though Android 10 is the minimum version, for keeping in mind long term compatibility, we recommend Android 12+ .Pre-Installation Notes
For the Android builds (APKs) of the JET Mobile Application there are versioned and standard builds. Only one standard build can be installed on a device at any given time, as all standard builds will have the same Android bundle identifier. Versioned JET mobile builds have their version numbers included in their Android bundle identifiers so multiple versions of the “same” app can be installed on a device at any given time. Example bundle identifiers are:
Standard: oracle.retail.sim.mobile.client
Versioned: oracle.retail.sim.mobile.client.v250101
In addition to different bundle identifiers, standard and versioned APK builds will have different names appear on the operating system – where the versioned build will have the version as part of its app name. Examples:
Standard: Oracle SOCS
Versioned: SOCS251010
Note:
The above section pertains to Android JET mobile builds only. For Apple iOS builds, customers have the ability to specify their own application name and unique bundle identifier (see Building JET Mobile as an iOS Application).Configuring Application Settings
This section describes the configuration that is required (and some that is optional) prior to building and deploying the Oracle SOCS application.
Definitions of JET Mobile
Configuring the application includes Configuring Service End Points mainly for allowing the application to authenticate users, and connect to web services.
The client application configuration can be input manually using the UI that will appear after the EULA is displayed if the configuration is empty or incomplete.
Alternatively, the application configuration can be setup via an Android compatible MDM.
In both cases there are 3 configuration settings that are required.
When entering these settings using an MDM it is important to use the correct key and type for each value.
In Android, these MDM settings are referred to as Managed Configurations.
Base Service URI:
For example the full SIOCS service URI would be:
Note:
The <Region Name> and <Customer Subnamespace> part of the URL should be replaced with the one specific to your environment. This will be the same as your cloud service Application URL provided in the Welcome email.The base URI does not need to include the suffix “siocs-client-services/internal” but it will be removed if it is included.
MDM managed configuration properties:
Key: siocsBaseUri
Type: String
IDCS Base URI:
This is the base URI for the IDCS tenant.
MDM managed configuration properties:
Key: idcsBaseUri
Type: String
OAuth Client ID:
This is the IDCS public client app that was provisioned in IDCS for this mobile client application.
Format: RGBU_SIOCS_< EnvType><EnvIndex >_SOCS_JETMOBILE_APPID
Example: RGBU_SIOCS_DEV1_SOCS_JETMOBILE_APPID
MDM managed configuration properties:
Key: oauthClientId
Type: String
Configuring DataWedge Profile for Scanning
Note:
This is applicable to Honeywell / Zebra / Symbol / Motorola Android devices only.-
Click on the Menu Bar at the top right corner. Select New Profile.
-
Enter the profile name.
-
Select the newly created profile.
-
-
Make sure only these are checked:
-
Profile enabled - enable/disable this profile
-
Barcode Input - enable/disable scanner input
-
Intent Output - enable/disable output via intent
-
-
Under the APPLICATIONS group select Associated Apps:
-
Select the oracle.retail.sim.mobile.client identifier.
-
-
Under the INTENT OUTPUT set:
-
Intent action to oracle.retail.sim.mobile.ZEBRA_SCAN (For ZEBRA Device)
Intent action to oracle.retail.sim.mobile. HONEYWELL_SCAN (For HONEYWELL Device)
-
Intent category to android.intent.category.DEFAULT
-
Intent delivery to Send via Broadcast Intent
-
-
Save the settings and you would be able use the hardware buttons to provide scan inputs to the JET mobile application.
Configuring Oracle MICROS devices for Scanning
-
Enter the scanner Output Method Settings:
-
Toggle on “Broadcast”.
-
For “Broadcast of scan result” set the value to “oracle.retail.sim.mobile.MICROS_SCAN”.
-
Set “Key Value” to “data”.
-
Set “Original Byte” to “source_byte”.
-
-
Save the settings and restart the JET Mobile application. Any scan from the Oracle MICROS device should now automatically be sent to the app.
Building JET Mobile as an iOS Application
The SIOCS JET Mobile application is distributed for iOS as a .framework archive which needs to be imported and built into an iOS application that can then be distributed internally to customers’ organizations.
Prerequisites
In order to build the JET mobile application, there are several prerequisites that need to be obtained from the Apple Developer organization.
-
An Apple Developer account
-
An Apple MacBook is necessary to build a native iOS app.
-
Latest version of the XCode development application
Note:
Mapping XCode to iOS version compatibility is somewhat complicated due to Apple’s changing support policy every year. So please consult Apple developer documentation for details:
https://developer.apple.com/documentation/xcode-release-notes/
-
An application Provisioning Profile of type ‘Enterprise’ obtained through the Apple Developer account is necessary to distribute an app internally.
-
An application Signing Certificate, also obtained through the Apple Developer program
-
After XCode has been installed on the MacBook, the provisioning profile and certificate also need to be installed.
Building the Application
In XCode, a project must be created and configured to use the distributed JET Mobile .framework before being deployed. Follow the steps below:
-
Open XCode → New Project.
-
Select iOS option on top of dialog → App type project → Next.
-
Enter Product Name (of your choice) → Select your Developer Team → Enter custom bundle identifier of your choice (it needs to be unique).
-
Set Interface to Storyboard → Language to Objective-C → Storage to None → Hit Next.
-
Select directory for the project → Hit Create.
-
Copy the OracleSOCS.framework distributed by Oracle to the project directory.
-
Select click the project on the left panel → Under the General tab in main area → Select the build target → Frameworks, Libraries section → Hit + and select the OracleSOCS.framework.
-
Delete all generated files except for main.m and Assets folder.
-
Right click the project on the left panel → Add Files → From the OracleSOCS.framework: CDVLaunchScreen.storyboardc, config.xml, OracleSOCS-Info.plist, raf_icon_rw_delete.png, raf_icon_rw_light_bulb.png, and the "www" folder.
-
Select the project on the left panel, select the build target. Under the "Build Settings" category:
-
Under the "Packaging" subcategory enter "OracleSOCS.framework/OracleSOCS-Info.plist" for the "Info.plist File" entry.
-
Under the "Info.plist Values" set the "Launch Screen Interface File Base Name" setting to "CDVLaunchScreen".
-
Clear the entry of "UIKit Main Storyboard File Base Name".
-
-
Select click the "Assets" item under the project at the left panel and select "+" at the bottom → Import → Select OracleSOCS.framework/AppIcon.appiconset folder.
-
Note the name of the imported icon set. It's likely something like "AppIcon 1".
-
-
Select the project in the left pane, select its build target. Under General → App Icons and Launch Screen → Set "App Icon" to that value above (i.e. AppIcon 1).
-
This concludes the mandatory steps. Other settings can be customized like App Bundle ID, Application Name, etc.
-
Archive the project, and distribute the archive based upon your Apple Developer provisioning settings.
-
Your project should resemble the structure below:
Figure 3-1 Building the Application
Contents of main.m
#import <UIKit/UIKit.h>
#import <OracleSOCS/OracleSOCSAppDelegate.h>
int main(int argc, char * argv[]) { @autoreleasepool { return UIApplicationMain(argc, argv, nil, @"AppDelegate"); }
Using Zebra External Scanning Framework
For applications running on native iOS, in order to utilize the functionality of external Zebra bluetooth scanning hardware, one needs to download and embed the Zebra framework into the project.
- Download the
ZebraScanningFramework.xcframework
from the Zebra website: https://www.zebra.com/us/en/support-downloads/software/scanner-software/scanner-sdk-for-iOS.html - Within the xcframework directory, go into the ios-arm64 folder and move out the ZebraScanningFramework.framework folder into your JET Mobile project directory.
- Select click the project on the left panel → Under the General tab in main area →
Select the build target → Frameworks, Libraries section → Hit + and select the
ZebraScanningFramework.framework
. Make sure it is set to embed in the build.
Running JET Mobile as a Browser-Based Application
Jet Mobile can also be launched as a web application on Android, Windows and iOS platforms. Please note that web application does not support scanning.
For optimal user experience and efficiency, mobile devices with built-in scanners such Zebra or Honeywell would still be preferred.
Browser based application can be launched as follows:
https://rex.retail<.Region Name>.ocs.oraclecloud.com/<Customer Subnamespace>/siocs-mobile-web-client
Details on Item Images
If configured, the JET mobile application will display images for items that have been entered into the system. Different sizes of images are supported in the application for optimal performance.
Image Sizing
There are two different image sizes used in the SOCS mobile application. These sizes exist to improve performance where different sizes of images are displayed by not using excess bandwidth (for example high resolution images being loaded and scaled down to a small space).
Thumbnail Images
Thumbnail images are the main images utilized in the application. These images are intended for areas in the application where smaller images are displayed (for example lists of items). The suggested resolution of these images is about 128x128px to 256x256px depending on the resolution and DPI of the mobile device's screen running the application. Any higher resolution images are scaled down, and the increased bandwidth to load the images is merely wasted and can cause decreases in performance. Thumbnail images are loaded asynchronously after the screen is populated, and there is a configurable amount of background threads to increase the rate multiple images are loaded into the application.
High Resolution Images
High resolution images, denoted by the size code 'H' in the system, are loaded on demand by a user. These images are meant to be large up to full screen images of an item. Thus, the suggested resolution of these images is up to the screen resolution of the device. These images can be 600x600 pixels to 800x800 pixels or even greater.
Network Considerations
Images are sent as a URL from the server to the JET mobile application. The JET mobile application webview then will load and display the image that corresponds to the URL the server provided. Therefore the end user devices need network access to any image URL endpoints for the images to be loaded and rendered.