AeroGear Mobile Services Terminology
- Mobile Service
A mobile service accelerates your mobile app development by providing solutions for common mobile development use cases such as Push notifications. Mobile services are hosted on OpenShift and you use the OpenShift console to provision and associate services with your mobile apps. For more information, see Mobile Services.
- Mobile App
A Mobile App is the representation of a mobile app in an OpenShift project. This allows you connect and disconnect an app with any mobile service in the same OpenShift project. For more information, see Registering a mobile app.
- mobile app
A mobile app is your code for Android, iOS, Cordova or Xamarin that uses Mobile Services.
You can associate a Mobile Service with a mobile app to allow your mobile app use the mobile service.
- Mobile Services configuration file
mobile-services.jsonfile provides the information your mobile app needs to use Mobile Services.
Your server-side code, typically Node.js or Java.
Data Sync terminology
This section describes terminology that is associated with Data Sync.
A query language for your API, and a server-side runtime for executing queries that use a type system. For more information, see GraphQL.
Apollo is an implementation of GraphQL designed for the needs of product engineering teams building modern, data-driven applications. Apollo includes two open-source libraries, Apollo Server and Apollo Client. The Data Sync Framework leverages Apollo functionality.
- Sync Server
The Sync Server is a framework for building Node.js based GraphQL API.
- Sync Client
- Data sources
Data Sync framework is typically used in conjunction with a data source for data persistence however, an app built using the Data Sync framework works without a data source.
- Data Sync framework
Identity Management Service terminology
This section describes terminology that is associated with Identity Management.
Single Sign On, the ability to share a login between multiple services
- OpenID Connect
A standard for providing identity on top of OAuth 2.0
Red Hat’s implementation of SSO and OpenID used as the identity provider
- Client ID
Is the client identifier for OpenID Connect requests, a simple alpha-numeric string
- User Attributes
Additional properties for user accounts (besides name and email) managed by Keycloak
Push Notifications Terminology
This section describes terminology that is associated with Push Notifications.
- Push Application
A logical construct that represents an Mobile App, for example, Mobile HR.
- Push Notification Message
A simple message to be sent to a Push Application.
- Sender Endpoint API
A RESTful API that receives Push Notification Message requests for a PushApplication or some of its different Variants. The Server translates this request into the platform specific details and delivers the payload to the 3rd party cloud providers, which eventually might deliver the message to the physical device.
A variant of the Push Application, representing a specific mobile platform, like iOS or Android, or even more fine-grained differentiation like iPad or iPhone. There can be multiple variants for a single Push Application (for example, Mobile HR Android, Mobile HR iPad, Mobile HR iOS free or _Mobile HR iOS premium). Each supported variant type contains some platform specific properties, such as a Google API key (Android) or passphrase and certificate (Apple).
Represents an actual device, registered with the UnifiedPush Server. User1 running HR Android app, while User2 runs HR iPhone premium on his phone.
- Administrative User Interface
(AUI) The Unified Push Admin UI Web UI that allows you manage Push Applications and Variants, view statistics and send Push Notifications to devices.
Mobile CI/CD Terminology
This section describes terminology that is associated with Mobile CI/CD.
Continuous Integration / Continuous Delivery
A tool that helps to automate the software build process.
A single run of Jenkins against a source code repository.
The result of a succesful build in Jenkins, this is the binary that can be installed on to a mobile device.
This is a file contained in the source code repository which instructs Jenkins on how to build an artifact with this source code.
Device Checks Terminology
This section describes terminology that is associated with Device Checks.
- Root Access Detection (ROOT_ENABLED)
Use it to help prevent your app running in a device that has been rooted/jailbroken. A device is considered rooted if any of the following are true:
A custom key has been used to sign the kernel
subinaries are present
This function uses the Rootbeer library to check if root access is present on the device.
This check is not available for iOS.
This check is not available for Cordova.
This check is not available for Xamarin.
- Developer Mode Detection (DEVELOPER_MODE_ENABLED)
To detect if Developer Mode has been enabled on the device the
DeviceCheckType#DEVELOPER_MODE_ENABLEDfunction can be used. This function uses Android’s Settings class.
- Debugger Detection (DEBUGGER_ENABLED)
To detect if an Android debugger is attached to the app the
DeviceCheckType#DEBUGGER_ENABLEDfunction can be used. This function uses Android’s Debug class.
- Emulator Detection (IS_EMULATOR)
To detect if the app is being run on an emulator the
DeviceCheckType#IS_EMULATORfunction can be used. This function uses Android’s Build class.
- Device Lock Detection (SCREEN_LOCK_ENABLED)
To detect if a device has a lock screen set (with pin, fingerprint, pattern) the
DeviceCheckType#SCREEN_LOCK_ENABLEDfunction can be used. This function uses Android’s KeyguardManager class.
- App Data Backup Detection (BACKUP_ENABLED)
To detect whether the application’s data is configured to be synchronized across devices the
DeviceCheckType#BACKUP_ENABLEDfunction can be used. The allowBackup flag determines whether to allow the application to participate in the backup and restore infrastructure, which might be interesting to avoid depending on your app’s needs.
- Device Encryption Detection (ENCRYPTION_ENABLED)
To detect whether the devices' filesystem is encrypted the
DeviceCheckType#ENCRYPTION_ENABLEDfunction can be used. This function uses Android’s DevicePolicyManager class.