Desktop appDesktop apptypeAn application you run locally with a desktop user interface. It may be distributed as an installer or built from source; it is the workspace itself, rather than a library, command-line tool or hosted utility.See every one →What this type is →by a community orgby a community orgoriginPublished by a community organisation, so it outlives any one maintainer.See every one →Starting point

abap2UI5 mobile shell

A generic native iOS and Android shell that loads one abap2UI5 endpoint in a WebView and hands the ABAP app the phone's scanner, push token and biometric check through a JavaScript bridge.

An abap2UI5 app runs in a browser, which puts the device features of a phone out of reach. This repository holds two shells, Android in Kotlin and iOS in SwiftUI with WKWebView, that load one configured URL, render it with the regular abap2UI5 frontend and inject bridge/native-bridge.js, the shim both bundle byte-identical, so an ABAP app calls window.abap2ui5Native for getDeviceInfo, showToast, scanBarcode, getPushToken and biometricConfirm, each returning a promise. The shell holds no app-specific code and knows only the endpoint, so a change to an app never needs an app-store release, and the bridge answers the main frame of the configured origin alone. Beside the shells sit the sample app zcl_test_mobile_poc, which scans through the framework control z2ui5.cc.NativeBridgeScan, and a push client for SAP Mobile Services that is copied into an ABAP Cloud system by hand.

Facts

Last pushLicenceMIT

Where it sits

Lives in
Provides
Mobile appsBTPMobile appscapabilityBuilding a native iOS or Android app over business data: onboarding, offline sync against an OData service, device features, and the client that runs on the phone. Distinct from a web app opened in a phone's browser; operating a web app with a finger is [touch operation](capability:ui5-touch-uis).
Part of
abap2UI5abap2UI5artifactOne ABAP class implementing z2ui5_if_app is the whole app: the browser loads a generic UI5 shell once, and every interaction after that is an HTTP roundtrip back into ABAP.
Serves
Requires
abap2UI5abap2UI5artifactThe backend the shell points at: the WebView renders the regular abap2UI5 frontend, and the sample app needs a release carrying the framework control z2ui5.cc.NativeBridgeScan.
Optional
abapGitabapGitartifactInstalling the ABAP side of the repository: abapGit installs abap/src/ with the sample app. The push client in abap/push/ carries no .clas.xml and is copied into an ABAP Cloud system by hand.SAP Mobile ServicesSAP Mobile ServicesartifactPush: the device registers against the Mobile Services push runtime API and the ABAP client sends through its backend push API, which takes Mobile Services credentials beside a Firebase project and an APNs key.

Who is behind it

abap2UI5abap2UI5OrganisationMaintains this
In the atlas: maintains 18
@abap2UI5
maintaineroblomov-devPersonContributes to this
In the atlas: maintains 4, contributes to 44
@oblomov-dev
1 contributor

What it declares

Every artifact

Type
Desktop app
Origin
By a community org

As a desktop app

Runs on
does not say
Distributed through
does not say

Connections7

abap2UI5 mobile shell connectionsabap2UI5 mobile shellPROVIDES→ provides1provides stated Runs abap2UI5 apps on a phone as a generic native client: one endpoint in a WebView, set by managed configuration, a stored preference or QR onboarding, with a biometric app lock, screenshot protection, and barcode scanning, push token and biometric confirmation reached from ABAP through the bridge. Offline sync is out of scope by design. abap2UI5/mobile-shell — repository: https://github.com/abap2ui5/mobile-shell abap2UI5/mobile-shell — README: https://github.com/abap2ui5/mobile-shell abap2UI5/mobile-shell — Distribution & hardening: https://raw.githubusercontent.com/abap2UI5/mobile-shell/main/docs/DISTRIBUTION.mdMobile appsNEEDS→ connects to2connects to stated The shell loads the one configured abap2UI5 endpoint into the WebView, and every interaction after that is a JSON roundtrip over HTTPS to the ABAP backend. abap2UI5/mobile-shell — PLAN.md: https://raw.githubusercontent.com/abap2UI5/mobile-shell/main/PLAN.md abap2UI5/mobile-shell — PLAN.md, architecture: https://raw.githubusercontent.com/abap2UI5/mobile-shell/main/PLAN.mdabap2UI5connects to stated If: push notifications are activated The Android shell registers the device against the Mobile Services push runtime API, and the ABAP class `zcl_test_mobile_push` sends an alert with a deep-link URL to all devices of a user through the backend push API. abap2UI5/mobile-shell — PLAN.md: https://raw.githubusercontent.com/abap2UI5/mobile-shell/main/PLAN.md abap2UI5/mobile-shell — PLAN.md: https://raw.githubusercontent.com/abap2UI5/mobile-shell/main/PLAN.mdSAP Mobile Servicesif→ needs1needs stated The backend the shell points at: the WebView renders the regular abap2UI5 frontend, and the sample app needs a release carrying the framework control `z2ui5.cc.NativeBridgeScan`. abap2UI5/mobile-shell — README: https://github.com/abap2ui5/mobile-shell abap2UI5/mobile-shell — PLAN.md: https://raw.githubusercontent.com/abap2UI5/mobile-shell/main/PLAN.mdabap2UI5→ optionally needs2optionally needs stated If: the repository's ABAP sample app is installed in a system Installing the ABAP side of the repository: abapGit installs `abap/src/` with the sample app. The push client in `abap/push/` carries no `.clas.xml` and is copied into an ABAP Cloud system by hand. abap2UI5/mobile-shell — AGENTS.md: https://raw.githubusercontent.com/abap2UI5/mobile-shell/main/AGENTS.md abap2UI5/mobile-shell — README: https://github.com/abap2ui5/mobile-shellabapGitifoptionally needs stated If: push notifications are activated Push: the device registers against the Mobile Services push runtime API and the ABAP client sends through its backend push API, which takes Mobile Services credentials beside a Firebase project and an APNs key. abap2UI5/mobile-shell — README: https://github.com/abap2ui5/mobile-shell abap2UI5/mobile-shell — Distribution & hardening: https://raw.githubusercontent.com/abap2UI5/mobile-shell/main/docs/DISTRIBUTION.mdSAP Mobile ServicesifLINEAGE→ part of1part of stated abap2UI5/mobile-shell — README: https://github.com/abap2ui5/mobile-shell abap2UI5/mobile-shell — PLAN.md: https://raw.githubusercontent.com/abap2UI5/mobile-shell/main/PLAN.mdabap2UI5

README

quoted from abap2UI5/mobile-shell under MIT, read
abap2UI5/mobile-shell/README.mdOn GitHub

mobile-shell

PoC: running abap2UI5 apps on iOS and Android in a generic native shell built for the SAP mobile stack (SAP Mobile Services + SAP BTP SDK), with the UI rendered by the regular abap2UI5 frontend in a WebView and native device features exposed through a small JS bridge. This is a source repository in the abap2UI5 ecosystem, for developers who want to try abap2UI5 apps on a phone. The code is edited here and checked by CI. It is a proof of concept with no releases, not a product.

Start here: PLAN.md — goals, architecture, phases, risks.

DirectoryContent
bridge/Bridge contract v1 + shared JS shim (source of truth) + contract tests
android/Android shell — WebView, ZXing scan, QR onboarding, app lock, FCM push, managed config
ios/iOS shell — WKWebView, VisionKit scan, app lock, APNs push, managed config (XcodeGen)
abap/src/: sample app (abapGit-installable, scans through z2ui5.cc.NativeBridgeScan); push/: Mobile Services push client, installed by hand (ABAP Cloud only)
docs/Distribution & hardening, device test runbook, detailed open-work plan

Status: Phases 0–4 implemented in PoC scope (see the status table in PLAN.md). What still needs external accounts: the BTP SDK onboarding flow (SAP repositories), and push activation (Firebase project, APNs key, Mobile Services credentials). Online-only by design: abap2UI5 is a server-roundtrip architecture, offline sync is explicitly out of scope.

MIT, read

Details

Sources3
GitHub APIdiscovered herechecked
github.com/abap2UI5/mobile-shelltree, pushes, contributors, CIchecked
README.mdquoted, and what the entry declareschecked

Sources are graph entities: the same page may back several entries, and an unreachable source flags every row that rests on it.

Compatibility and provenance
discovered viaGitHub API
first seen in the atlas
ecosystem and domainabap, ui-and-frontend-bridge
Contributors1

From the repository’s contributor list, .

History in the atlas1
  1. First seen.
For your agent
Ref
artifact:abap2ui5-mobile-shell
JSON
/artifacts/abap2ui5-mobile-shell.json
MCP
Connecting an agent