OpenUI5 Frequently Asked Questions
General Questions
1) What is OpenUI5?
OpenUI5 is an Open Source web UI toolkit released under the Apache 2.0 license by SAP. SAPUI5 is SAP's JavaScript frontend toolkit and uses large parts of OpenUI5. The technology stack both projects are built on is often referred to as UI5 in short. It is built on web standards like JavaScript, HTML5, and CSS3.
OpenUI5 applications run inside the browser and independent from the server. It includes a large number of UI controls (more than 180) and extensive framework functionality like Model-View-Controller support with declarative UIs, two-way data binding, HTML templating, routing and much more. Read more about the key features.
2) I've never heard of it. Is it actually used?
Yes! The Open Source version of UI5 is only available since some months, so this is probably why you have not heard of it. But many companies and organizations have already developed their own UI5 applications or are using applications built with UI5, look here for some examples. Some of them are using the closed-source version "SAPUI5", which has been available to SAP customers for quite some time, but since it's been open-sourced, more and more are now using the free version "OpenUI5".
And of course SAP itself is clearly betting big on UI5, with 1000+ developers using it: the entire new family of SAP "Fiori" applications is built using UI5. What's more, parts of the SAP Business Suite are being rebuilt with UI5 as we speak. That's hundreds of important applications that are already being used by many big companies throughout the world.
3) What is the difference between SAPUI5 and OpenUI5?
First of all: OpenUI5 is not just a limited appetizer for SAPUI5! In fact, both libraries use the exact same programming model and core functionalities like MVC or data binding. It differs only in the number of frontend controls that are included, and that is mostly down to organizational reasons only - all of the important controls are part of OpenUI5. OpenUI5 was released by a group of SAP JavaScript developers and mostly contains the code this group is responsible for. Additional libraries are not included. And no, we have no intention of commercializing UI5 overall.
4) SAP? Doing Open Source? Why?
One reason is that we, the developers, are Open Source fans and used a lot of Open Source libraries within UI5 (e.g. jQuery is the very foundation of it, Handlebars, LESS, Crossroads,…). We therefore think it is only fair to give something back and make UI5 free as well. There was also a big push from developers outside our company who liked SAPUI5 a lot and wanted to use it for non-SAP projects. Finally, in December 2013, UI5 was open-sourced under the name "OpenUI5".
But of course it is also highly beneficial for our company if there are more developers getting the chance to contribute to it (bug reports or code). SAP has really changed and has started to embrace Open Source with OpenUI5 not being the only open source distribution but another chance to publicly show how SAP is becoming more open.
OpenUI5 and Me
1) What skillset do I need?
If you strip it right back, OpenUI5 is nothing more than JavaScript, CSS and HTML. So if you are a Web Developer familiar with these technologies and have developed using frontend toolkits before, you should be good to go. We have to emphasize that OpenUI5 is not only a widget factory but an full-blown application toolkit. As is the case with any other serious development toolkit, it will take some time to become a pro.
2) How can I learn it?
To kick things off, take a look at our getting started section here. After that, you can read a more detailed introduction and finally refer to the developer guide and the API for full details and professional usage here. And if you happen to get stuck somewhere along the way, just check out the usual suspects such as Stack Overflow and the SAP developer network SCN.
3) What are typical use cases and example apps?
As the whole toolkit was built around business requirements, the primary use case for OpenUI5 is building device adaptive business applications. Usage scenarios in this field span a wide range, ranging from simple approval tasks to complex processes. And of course the stability and reliability of OpenUI5 applications can benefit any other use case you might encounter in your web projects.
4) What does the community look like?
The OpenUI5 community is growing rapidly. There are vital discussions and postings on Stack Overflow and personal as well as professional blogs. And of course you can also benefit from the public SAP Developer Community SCN, where the topic is discussed frequently with up to 2000 entries per month. What's more, we frequently attend public community events and Open Source conferences. Find out what we experienced at OSCON in 2014 as an example.
5) How can I contribute?
We use GitHub for bug reports, collaborative bug-fixing and code contributions. Every developer using our toolkit is highly encouraged to report bugs or help the community to solve open issues. The basic guidelines and how-tos are summarized on this GitHub page. Read them and you'll be good to go. Detailed information on how to use the GitHub Bugtracker can be found here.
OpenUI5 vs. other Toolkits
1) How does it compare to other web toolkits and frameworks?
OpenUI5 is best described as a one-stop-shop toolkit. It has everything you need to build web applications, while leaving enough flexibility to extend. And by the way, it's the only one that gives you full functionality for free. While other popular toolkits come as a free trial with paid premium versions for full functionality, OpenUI5 comes as a complete product by itself – no upsells, no paid premium.
Compared to most other libraries, OpenUI5 is a complete and comprehensive package. With other libraries, you often find yourself adding more and more small libraries, hoping and crossing your fingers that they work well together. In OpenUI5 we've taken care of this. We bundled some of the best JS libraries available, made sure they play well together, and enriched them with even more functionality.
Business applications in particular make long-term stability and reliability of the technology stack a primary requirement. OpenUI5 is built around this. Tight integration of selected open source libraries is our main concern, while long-term stability and cross device compatibility is our main design principle. The result is a sophisticated toolkit for mission-critical applications that comes to you for free. And stays free.
Technical Details
1) What tools/IDEs are supported?
This is basically up to you as there's no specific IDE required. Most of our developers use Eclipse, but some prefer simple text editors, WebStorm IDE or others. To the best of our knowledge, UI5 plugins and add-ons are currently available for Eclipse, Sublime Text and WebStorm IDE.
2) Where can I deploy my OpenUI5 apps?
In terms of a frontend toolkit, all you need to deploy and run OpenUI5 applications is a standard web server.
3) Can I use my own / 3rd party plugins / libraries with OpenUI5?
Of course. At SAP for example, we use d3.js a lot for visualization and charting. And there are examples available on the developer community for how to use public APIs like the ones made available by Google Maps (example here) or Twitter for feeding your apps with data and content.
4) How can I test OpenUI5 apps?
UI5 comes together with QUnit, the jQuery unit-testing framework, and we use it heavily for our own unit tests. For application-level tests, you could use Selenium (we use it as well), and there is a new tool "OPA" (One Page Acceptance tests), published with version 1.24.
5) What browsers does it support?
One major design principle was to support a broad range of different browsers and devices. To put it in one sentence: Internet Explorer 9 and higher are supported, as well as other current browsers (Chrome, Safari on Mac, Firefox newest versions, plus Firefox ESR version and the native browsers of Android 4+, iOS5+, Blackberry 10+, and Windows Phone as of platform version 8.1 update 1). Check this section in the developer guide for detailed information.
6) What data formats can be fed into?
Any data source that can be reached by a URL is fine. If it delivers the data in XML or JSON format, the respective model of UI5 can be used directly, otherwise you can fetch the data yourself and transform it to JSON/XML - or write your own custom model.
If you have a data source that can handle the OData protocol (http://www.odata.org/), e.g. SAP Gateway, that's even better because UI5 has its own model for that: server-side sorting, filtering and paging support is built-in.