About
HTML5/CSS/JavaScript seem to become the primarily stack of technologies to develop UI/frontend applications. The Hi5 project aims at providing an Eclipse 4 API port for web developers.
The following is the architectural overview of the idea behind the project:
Picture: overall architecture of the Hi5 idea
Server side
On the server side (backend) the infrastructure of the Eclipse RCP platform is handling requests that the web client doing. This includes collecting all available E4 fragments and merging them into the application model. Next, the merged application model is transformed into a HTML DOM representation which then sent to the client via HTTP.
With the Eclipse Communication Framework (ECF) there is also great support for a service driven development approach as OSGi services can serve as web services, for example, using ECF's JAX-RS integration.
Client side
On the client side you can use your favorite framework/library to provide a smooth and reactive UI. By default, jQuery, jQuery UI and jQuery mobile are used.
Deployment modes
The application can be deployed in several modes:
- server/client mode: Eclipse RCP backend runs on a server and the client runs in a web browser
- local mode: Eclipse RCP backend runs locally and the client runs in a JavaFX WebView instance
Demo
The following screeshot shows a demo application running in the "local mode", i.e. the client is run using the JavaFX WebView as renderer:
Summary
With HTML5/CSS/JavaScript gaining more and more attraction to developers, this approach makes absolutely sense. It allows for going with the trends of the web developer communities (with regards to UI toolkits) but relying on the Eclipse 4 and OSGi platform as a robust and modular backend.
Links
[1] Hi5 GitHub repository: https://github.com/erdalkaraca/hi5
Wait.. how is this different/superior than http://www.eclipse.org/rap/ ?
AntwortenLöschenI do not think this solution is superior to RAP. With RAP you program against SWT APIs and it renders a mirrored state of the UI in the web browser. Here, we have a strict separation between business logic (backend, web services, OSGi (remote) services) and UI representation (web browser). There are also many cool UI libraries in the HTML5/CSS/JavaScript world that we do not have in SWT.
LöschenVery promising results! Thanks for sharing! Can't wait to try :)
AntwortenLöschenWe can cover almost everything in RCP UI area if we add EMF Forms into the mix :)
And with the addition of Xtext Web -- almost everything in IDE UI area.
The only missing thing is GEF4/HTML5 diagram editor :)
Thanks for the feedback! I am still at the beginning. Will post another article once the project is in a usable state.
Löschen