Hi to all,

in the last years I worked a lot with Angular (https://angularjs.org/) for my JavaScripts and Bootstrap (http://getbootstrap.com/) for layout and some nice components. These two were a combination, which worked really help together for me. In fact, there are even many additional libraries, which provide assistance in combining these two frameworks. So while Angular can handle the application architecture and can control the data flow, bootstrap provides a nice starting point for user interaction and styling. As of now, I will treat Angular and Bootstrap as one unit to compare with UI5.

Everything is just my point of view and I’m still pretty new to UI5. If you have a different opinion about anything here, i’d love to hear from you. And because I really like lists and tables, lets start with one, comparing different parts/features. I gave everything up to three stars:

Feature UI5 Angular / Bootstrap
Databinding (one-way, two-way) *** ***
Modules *** ***
Predefined Compontents (Layout, Tables, Forms, Buttons, …) *** *
Internationalisation *** ***
Routing *** ***
Testing * (not sure yet) ***
Support for different Data (REST, XML, JSON, OData,…) *** ***
Customizable * ***
Learning Curve *** *

As you can see, basically both ways work fine for me. That’s why I will focus on the differences that matter to me. As far as I can see, concerning predefined components/widgets/whatever UI5 is the strongest JS-library I’ve ever seen. Bootstrap also covers the basic needs, like tables, lists, datepicker, grid-layout, etc., but with UI5 I can build tons of apps without ever having the need for my own custom component.

Testing is a big topic for me and I’m still not sure, which is a good way to go in regards to UI5-testing. I tried out QUnit-Tests and they worked well. I’m still not sure about how to test certain areas or what is the right thing to test. On the other hand, I know there is good support for mocking data. Angular has a well-build testing library to mock and test everything I ever needed. It integrates great with testrunners and testframework, e.g. Karma and Jasmine, and can be also be run in a Continuos Integration Environment like Jenkins. Maybe UI5 is much more advanced in testing and I will learn this soon.

Customizing is a different story. Angular and bootstrap can be customized really, really good. Adding custom styles and functions, wrapping directives, integrating parts of it with your own code, etc. is easy. With UI5 its also possible to customize and e.g. extend predefined components. I think the strong point of UI5 (and Fiori) is, that it gives you a way how your app should work out-of-the-box. If you or your customer has some special wishes how something should look or feel, you have to jump out of this box and build (nearly) from scratch. (opinions from more experiences developers is greatly welcome 🙂 )

The learning curve in UI5 is really low. Getting into it and expanding my knowledge was, after a dumb start, really great. Angular on the other hand has a light start and soon you hit a wall. Going over this wall takes time and patience and afterwards its getting fun again.

Finally, I think Angular and Bootstrap are there to help you develop your way, while UI5 is showing you its own shiny way.

To report this post you need to login first.

3 Comments

You must be Logged on to comment or reply to a post.

  1. Christopher Solomon

    Nice comparison. I am trying to find more info on server side JS handling. Also, I have not seen how Angular works with OData (have only used it with JSON). What did you see/find?

    On a completely separate note…..I am looking for a better server and client side framework that can easily work with a MySQL database (and/or services)…..something other than the old LAMP stack or newer MEAN stack…..ideas? (and I have only looked at Meteor briefly)

    (0) 
    1. Peter Bösenberg Post author

      There are some Angular-Plugins which work very nicely with Odata. When I tried them out, I realized that I either didn’t configure them properly or there were some which just don’t work with Odata 2, but only with Odata 3 upwards. So basically I haven’t found any which gave me similar benefits from Odata like UI5 does. But if you only want to use it as a plain REST-Service, even angular-resource  would be enough.

      (0) 

Leave a Reply