RemoteUI Client Software is available for Android and iOS.
Currently, the Android Client is available for download as open preview. The iOS Client is under active development and will be available soon.
RemoteUI Apps feel like native applications as the Clients natively render their user interfaces (UIs). Even in 3G and 4G Networks, there is nearly no perceivable difference to locally running apps.
The RemoteUI Client technology is also available for integration into other applications. Hybrid applications with RemoteUI based functionality and locally running logic are realizable this way.
RemoteUI Applications run within Java Web Servers with WebSocket support. Currently the following servers are supported:
While the RemoteUI App Framework itself has no dependencies to JEE APIs, you can integrate it with existing JEE technology e.g. via Spring's EJB support. A Java Web Server with RemoteUI Apps runs in many environments. E.g. run it on a Raspberry Pi for embedded scenarios. Or run it as highly available Internet service by using any cloud technology that can run Java applications.
RemoteUI uses a descriptive layout language for its platform-independent description of user interfaces.
The RemoteUI Protocol is the binary representation of this layout format and all commands and events that Client and Server exchange to build an interactive user interface.
The protocol is hierarchical so that important information is transferred first. An advanced prefetching mechanism is realized on top of this. Before UI resources are probably needed, they are already transferred to the client, so that waiting times are minimized.
With the RemoteUI App Framework you develop your own RemoteUI Applications. We have built many technologies into the framework to make development of RemoteUI Apps fast, reliable and easy. Here are some examples:
For detailed information on how to develop your own RemoteUI Apps with the RemoteUI App Framework please have a look at the development page.
The RemoteUI protocol and layout descriptions are understood by all RemoteUI Clients. The clients render your layouts with their native UI elements. When required, the RemoteUI App Framework allows you to define platform specific layout and logic. So you are able to create an optimal user experience for your applications on every supported client platform.
RemoteUI Apps run on the server in a Java Virtual Machine. So you can run the server on any platform that supports Java. In addition, the server is available for the Android Operating System.
The RemoteUI layout language supports the advanced UI widgets you would expect from a rich client framework. There are Lists, Buttons, Sliders, Date Choosers, Drag & Drop, Maps and more. All RemoteUI Clients render these descriptions with the native UI widgets offered by the operating system. This results in optimal performance and the native look the users expect on the specific platform.
Additionally RemoteUI Applications automatically follow certain design guidelines for the supported platforms (e.g. navigational patterns).
RemoteUI has built-in support for responsive application design. Typically you define different layouts and sometimes different logic for diverse hardware form factors. As the RemoteUI Client and Server execute a handshake on connection, the server exactly knows the client's hardware. It automatically chooses the right layout files, scales images to the required pixel density and adapts to system specific UI patterns.
RemoteUI's layout language supports pixel independent sizes and automatic resizing for all widgets. This allows you to create great layouts for every device from phone to tablet.
When developing the RemoteUI System, a major focus was performance in mobile scenarios. As you have diverse limitations on the client and possibly slow network connections, we have optimized the system in many ways to offer best performance even under these conditions. Here are some of the actions taken:
RemoteUI applications run on the server so that access is instantaneously and easy controllable. The RemoteUI Protocol is implemented on top of the WebSocket protocol which itself is initiated with an HTTP handshake. As a result, existing HTTP security mechanisms like HTTP Basic Authentication or Digest Access Authentication are directly applicable to RemoteUI services. For confidentiality, RemoteUI supports the encryption of its connection with TLS.
For scenarios with very high confidentiality, RemoteUI Clients can be extended with an encrypted cache. The encryption prevents plain text information remaining on the device after a RemoteUI session. Even in case of theft or loss, the device will not relinquish confident information.
RemoteUI is the perfect solution for BYOD scenarios, where you need full access control for enterprise applications and data. RemoteUI Apps are rolled out by server-side deployment. So you have the advantages of a web application with the great performance and user experience of a native application for your users.
RemoteUI integrates with existing server technologies. Install your RemoteUI application as an additional facade to your business logic, that might already exist as Java application, EJBs or Web Services.
The RemoteUI Server runs on embedded hardware. Integrate it into your vehicles and let users connect! Use RemoteUI as extension to existing HMI concepts for applications like rear-seat entertainment, remote status (e.g. in electric car scenarios), remote configuration and more.
RemoteUI is a great alternative to HTML based applications. Integrate RemoteUI Client components in your infotainment hardware and remotely control rich internet applications. Operate RemoteUI Servers e.g. in your own automotive cloud or as mobile device integration technology.
The applicability of RemoteUI Server in embedded systems opens up a variety of application areas:
With the RemoteUI App Framework you can build Java-based web applications to be used with the RemoteUI client. In the following video you see the actual version of the Demo application showing some preliminary features of the framework from a client perspective.
In this video we use RemoteUI for remotely controlling another mobile device. The RemoteUI Client is connected via WLAN to the RemoteUI Android Server running on a mobile phone. With the help of the RemoteUI Protocol, the server sends the device's current UI to the connected client.