Fortunately, there are a number of open source and commercial components which provide integration for AngularJS including AngularUI, AngularUI Bootstrap, Kendo (and Angular-Kendo), Wijmo and others.
Designed for Single page apps
Cross browser compatibility
AngularJS relies on jqLite/jQuery that provides cross-browser compatibility. However integration with 3rd party libraries may require cross browser compatibility. Note: AnugularJS (1.3 and above) has dropped IE8 support while Sencha ExtJS 5 will continue to support IE8. If IE8 support is a requirement for your enterprise customers, ExtJS should be considered.
ExtJS standalone charts are the industry's most powerful and most advanced, are plugin free and sufficient for most business applications.
AngularJS D3 Charts which are basically the integration with D3 charts makes its presence amazing in charting and graphing capabilities. Fall in love with D3 charts at D3.js.
Sencha recommends using Sencha Touch for mobile versions of the application. Components like NestedList are far better than Grids for usability on mobile devices. However, this may mean separate effort for mobile versions of your app.
Responsive web apps using ng-touch library, angular-gestures and angularJS responsive modules.
Cross platform native mobile applications/Hybrid apps
Possible with Sencha Touch and Apache Cordova/Phonegap integration.
Possible with Trigger.io, Cordova/Phonegap integration, Ionic framework which is optimized for AngularJS and is used for developing rich and robust mobile applications.
Sencha touch is used to develop mobile sites.
AngularJS responsive modules (angular-responsive, angular-deckgrid etc), UI Bootstrap, AngularJS responsive directives, angular-gestures and the ngTouch library.
Most of the single page apps which work behind authentication may not require indexing for SEO. For public pages, either you can use static HTML/CSS or if you do need to use dynamic content, consider Ajax based SEO.
Consider Ajax based SEO with either Prerender.io or headless browser support in your web-server.
Sencha cmd tools for ExtJS 4.x+ and Sencha sdk tools for upto ExtJS 3.x
3rd party Grunt tool
Package Manager tools
Sencha cmd tools
Yeoman, Grunt and Bower
Licensing and Support
License: open source or commercial
Per-seat / per-server commercial license and open source under GPL license.
Full documentation suite, tutorials, videos examples, trainings
Support: general discussion, reporting bugs and making feature requests
Web-based public and premium (paid support subscribers only) support
Complete fun and satisfaction: no management concern of integrating new releases and bug fixes from the selected 3rd-party libraries throughout the application's development lifecycle
Angular Scenario Runner and Batrang require Deferred Bootstrap and hence Deferred Bootstrap concept is introduced to allow end to end tests.
Use ExtJS if: You want to use handy components delivered with Sencha Ext JS. It is a huge time saver. You do not want to worry regarding cross compatibility issues while Programming and Developement. It is a big plus. You or your client need specialized licensing or an accountable party to call for support. If separate rich desktop applications (with Sencha ExtJS) and mobile web applications (with Sencha Touch) is valuable. If paid support contracts and a per-seat / per-server commercial license is affordable.
Use AngularJS if: Smaller Footprint is required. Responsive design is a requirement for your application. Your organization find value in automated testing and automated testing is a part of your development culture. It would be cheaper to integrate existing 3rd-party components which are free. Your team is comfortable with CSS and dealing with cross-browser compatibility issues. If the team will be able to manage integrating new releases and bug fixes from the selected 3rd-party libraries throughout the application's development lifecycle.
SAP/FedEx Web services integrations and RESTIntegration with AEM. Created service data object to simplify the integration of web services by following eclipse module framework. Also REST exposure to WAS business services for the purpose of Adobe Experience Manager Web Content Management integration.
As the ODATA protocol is getting famous nowadays, and so many APIs avail different services/data as ODATA service, how an ABAPer can male use of it?
Here is one of the way to call an external API and get the data into ABAP system.
Step 1. Use class CL_HTTP_CLIENT to get an object of type IF_HTTP_Client. There are different methods for getting this object. example: by the API URL or by HTTP Destination etc.
In below code snippet I have used API URL to get the object. Once the object of type IF_HTTP_Client is received, then execute the instance methods SEND() and RECEIVE() to establish Connection and Dispatch of Data and receive HTTP Response.