An end user can access the application (App) in many ways from very different devices:
▪ from Browsers (Chrome/Edge/Firefox/Safari) on different platforms (Windows/macOS/Linux/iOS/Android)
▪ from the native app on mobile (Android/iOS)
▪ from the native app on the desktop (Windows/macOS/Linux)
It is possible to develop unique Apps for every kind of device, but to develop and maintain these is very expensive.
▪ Different skill sets are required to develop these Apps for various platforms
▪ Redundant code in different Apps
▪ Hard to keep consistency across these Apps
To satisfy these requirements in a more efficient way we introduced an application stack or architecture, and named it the Universal Application.
The Universal Application includes a group of client Apps for every mainstream platform (Android/iOS/macOS/Linux/Windows) but these are only shell Apps. The core idea of Universal Application is to share the same (similar at least) content across these Apps as much as possible:
▪ Identical business flow at the UDTT server
▪ Identical way to interact with the business flow via UDTT ClientEngine-OpenAPI
▪ Every UI element written in the same way (HTML5/CSS3/React/etc)
▪ Access Device sensors (Camera/Location) in the same way (via Web API)