Hands-on With Ionic 2 after SAP UI5
After developing transactional and analytical apps for the SAP enterprise world, getting hands on experience on Ionic 2 was a welcome change. Here, instead of drawing a comparison table Ionic 2 vs. UI5, I would like to bring out a few points about Ionic 2 (Angular 2.0+) which SAP should consider in improving the SAPUI5 framework. Moreover, UI5 is being developed as an enterprise app framework with a very well designed Fiori concept, whereas Ionic targets consumer apps. So a direct feature by feature comparison would not give us a good insight on where UI5 can take positives from Ionic.
After developing transactional and analytical apps for the SAP enterprise world, getting hands on experience on Ionic 2 was a welcome change. Here, instead of drawing a comparison table Ionic 2 vs. UI5, I would like to bring out a few points about Ionic 2 (Angular 2.0+) which SAP should consider in improving the SAPUI5 framework. Moreover, UI5 is being developed as an enterprise app framework with a very well designed Fiori concept, whereas Ionic targets consumer apps. So a direct feature by feature comparison would not give us a good insight on where UI5 can take positives from Ionic.
UI5 lays strong emphasis on data binding with the MVC (Model, View & Controller) architecture. Being built upon the jQuery library, it uses jQuery based DOM events to achieve data binding whereas Ionic is based on Angular which allows it to use native APIs directly. There are no interceptor methods it has to call and so Angular gets notified to update the DOM unlike the SAPUI5. Also, Angular architects building blocks like components, and each of these components has its own change detector. Moreover, in Angular, we can run change detection only for the parts of the application that changed their state. This makes the core architecture of the framework much more efficient. With Fiori 2.0 concepts like Analytical page Layout, SAP should look into the performance of these layouts and evaluate if they can truly achieve the dynamic character it aims at without incorporating the modern techniques like Web Component.
These components have really brightened the future of Web application development and ionic uses them very effectively to create its elements. While in UI5 we use combination of div, span etc. tags to create a complex element. The sap.m.List, ListItems, Carousel, etc. can be effectively implemented using web components.
Here is how List looks in UI5 vs. Ionic.
And since Lists are one of the most important controls in UI5 in SAP world, we should take a look into the virtual scroll in order to further increase its performance. If we implement List with pagination in UI5, it renders the list 0-20 items at first. As we scroll the items rendered are 0-40, 0-80 and so on. This means if we have 100 items in our list then over 100 elements are added to the DOM. A Larger Dom will definitely impact the performance of the app. In Ionic 2, the items are added as 0-20, 20-40, 40-60, 60-80 etc. This means at any point only 20 elements are in the DOM and this increases the performance of large dataset list considerably.
Finally, Typescript; we all know how JavaScript has a tendency to get verbose, tangled (“spaghetti code”), and repetitive in large amounts. SAPUI5 has done a great job in implementing Object Oriented programming and other standard conventions and guidelines in the framework using JavaScript. It would be a lot simpler to implement these with Typescript. Typescript improves readability and enforces Strong correct types. Hence Typescript is going to spit out any compilation error, unlike the JavaScript counterpart which is an interpreted language. The Rich IDE support with autocomplete and code navigation features. All these will increases development speed.
Looking at the other side of the story, Ionic 2 is still new and immature but has immense potential to be a go-to framework for all kinds of applications. Yes, even for the business applications. The features which work for SAPUI5 framework to integrate seamlessly with the business line are Pre-built layouts, oData integration, Smart (Metadata-based) templates, charting library, theming, design guidelines etc. All these put together in single framework helps in delivering coherent and simple applications. For example, we can view Employee detail using the inbuilt and well-designed Object Page Layout and therefore we do not have to worry about the look and feel of each element. As of Ionic, it mostly contains basic components which are suitable to quickly build basic to intermediate level of applications. If Ionic provides few of these in-built layouts (even as a framework for consumer applications) it would help build simple and consistent business applications. Also, a metadata driven UI is important to build enterprise applications. It simply helps the IT team to develop and release their apps rapidly.
See how Fiori Guidelines can be applied to Non - SAPUI5 application: https://youtu.be/ycFrQvrc_3Q
To conclude, Ionic targets consumer apps, so it is important for them to deliver the performance and feel of using a Native iOS or Android or any other platform application. This performance and feel of a native app should also be brought to the enterprise world. Going forward if UI5 has to deliver high quality transactional, Analytical, especially the Real-time analytical dashboards, it needs to rethink about its core blocks. The Fiori designs are well thought out concepts and the range of predefined layouts offered in a single framework is tremendous. No other platform delivers this. Therefore, instead of building another SDK for the native platform if SAP gives a push to the performance of their UI5 framework it would do wonders for their Fiori platform.
Freelance Security Researcher for Blockchain Smart Contract
5yWell, I also would like to explore more options to build enterprise apps but at the moment I think that SAPUI5 is still the best options (if you're working with SAP landscapes) to use for many reasons: - OData integration. This is is something that the framework I choose should support. And I'm not only talking about integrating it in the JS part but also in the view bindings. I could not imagine working with lists/table without the ability to automatically sort/filter/expand/grow items "manually" with API calls. - UI Controls. One of the best think about UI5 is the huge UI control list they give you. Sometimes I need to create a new one (custom libraries) but it's not a big deal because it's smocking easy to do that (check out all my GitHub projects). I don't know the number but I think they have more than 200+ UI controls that cover all the possible enterprise use cases. If I switch to another framework that forces me to implement all of them, each application would be a custom one to create from scratch (until I have created templates for each scenario). It means that each app will need a lot of time, so it will cost a lot for the customer - Maturity. SAPUI5 is right now mature but it's still evolving (in better, really really better). Maybe my only complaint is that is not evolving so fast as other web frameworks are doing but we're still talking about enterprise development. You said that Ionic is "young" but the 1.0.0 release was from 2013 ;) - Tools&Integration: we're talking about enterprise systems and environment. SAP offers huge advantages when you develop SAPUI5 apps in WebIDE deploying them on SCP. And you can easily connect your apps/mobile app with other SCP services. Do other frameworks offer the same thing? Or maybe the question is: does SAP offers the same level of integration with other frameworks?
SAP BTP Architect (BTP ,CAP , FIORI, HANA HDI) at Henkel
6yits overview page (FIORI 2.0 )..??
Lead Developer at Vistex
6yApprove Purchase Order in Ionic: https://youtu.be/ycFrQvrc_3Q C
Associate Architect, Kore.ai
6yI think Ionic, Framework7 and React Native are way ahead of SAPUI5. SAP people are more inclined towards SAPUI5, but time has come to check better UI alternatives with powerful SAP data processing capabilities.