Oracle Mobile Application Framework 2.2.0 Release Notes

New Features In This Release

1. New UI Components to support for latest Mobile Patterns:
  • Swipe to reveal : Allows user to swipe on a row in a list to reveal actions
  • New layout components, Masonary Layout & Flex Layout for building Dashboards and Grid layouts
  • Pull to refresh : Allows user to swipe down and refresh the contents
  • Zoom & Fade animations for popups
  • Support for configuring scroll position on List
  • Data Visualization Enhancements : Stock Charts, Chart Drill Events, Timeline Overview and Vertical Orientation
  • Mobile Alta 1.4 skin with support for Google Material Design for Android L
2. Databinding improvements with enhanced support for building modular applications:
  • Support for nested DataControl context
  • Allows developers to build recursive navigation flows using Task Flows
  • Isolate state at the Taskflow level
  • Manage the number of Taskflow/DC instances maintained in the navigation stack
    • Example: Opportunity List -> Opportunity Detail -> Account Detail (from the account associated with the Opportunity) -> Related Opportunity List -> Opportunity Detail (with a different Opportunity than previous)
3. Full support for Android back button:
  • Support for overriding the default back button behavior
  • “__back” navigation rule is used by default
4. Performance Improvements:
  • 30% overall performance improvement compared to previous release
  • Major Performance improvements in the following areas:
    • JSON Parsing : New parser based on JSONP
    • New Optimized JVM : 30-40% performance improvement in Java processing
    • UI performance improvements to improve the page rendering time

Features Deprecated In This Release

Features in the below list are deprecated starting with the MAF 2.2.0 release. The deprecated features will continue to work in this release, however customers should plan on making changes to their apps to stop using these features.  In the next major release of MAF (2.3.0) these features may be removed from the product.                

  Feature description Alternative Who is impacted
1. WebService Data Control for SOAP services: This DataControl is used to fetch data from back-end systems using SOAP services. We recommend customer to move to JSON based REST services as they perform much better and generally much more suited for mobile app consumption. MAF provides REST Service Adapter and JSON Bean serialization API with builtin security support to make it easier for customers to use REST services. For Customers who do not have a choice to change the services they should consider mobile middleware or MBaaS products like Oracle Mobile Cloud Service, Oracle API Gateway, etc. to convert the SOAP services to mobile friendly REST services. Customers using SOAP services to access application data from back-end systems.
2. MobileFusionFX skins: Old skins based in iOS 6 & Android 4.0.x look & feel. We recommend customers to switch to Mobile Alta skin which supports the latest look & feel on iOS & Android platforms. Customers can move to the new Mobile Alta skin by updating the skin family and version in maf-config.xml as follows:


Customers implementing custom skins or using custom css styling that relied and MobileFusionFX styling may need to adjust their css as needed.
Customers using old skins.
3. Allow Login in Sliding Window: This feature allowed users to login using a sliding window rather than the primary window. There should be no real functional impact due to this change. Login page will be displayed in the primary window of the app. It is recommended that customers remove the following entry from their maf-config.xml:

Customers setting <allowLoginInSlidingWindows> element in maf-config.xml to true.
4. Mobile & Social Authentication Type: This feature allowed customers using Oracle Mobile & Social Server to authenticate users using social identity. Customers can use OAuth 2.0 support in MAF to achieve similar functionality. Customers using Oracle Mobile & Social Server to authenticate mobile app users using social identity providers like facebook, google+ etc.

Known Issues In This Release

  Bug Number Description Platform Workaround
1. 21812769 While upgrading a MAF application, if the application contains changes in the preferences, the MAF framework is unable to read those changes. Both The following workaround can be used within the MAF application, to set the preferences in runtime using the following code snippet:
ValueExpression ve = AdfmfJavaUtilities.getValueExpression("#{}", String.class);
AdfELContext context = AdfmfJavaUtilities.getAdfELContext(); GlobalLocks.getLock(GlobalLocks. EL_EVAL_AND_DATACHANGE_GLOBAL_LOCK);
try {
ve.setValue(context, oldServerURL);
} finally {
context.setResolvingSetValue(false); GlobalLocks.releaseLock(GlobalLocks. EL_EVAL_AND_DATACHANGE_GLOBAL_LOCK);

2. 21323276 While uploading an IPA file of large size to the Apple App Store, a warning message is displayed. "The resulting API analysis file is too large. We were unable to validate your API usage prior to delivery. This is just an informational message." iOS This warning message does not block the app from getting uploaded to Apple App Store. It just gives a warning indicating that it cannot do API analysis before upload. This analysis would check if you use any restricted API's from the SDK and warn you so that you could fix it before uploading. There is no workaround to fix this warning.
3. 21187498 Exception occurs while loading data using fetch policy FETCH_FROM_CACHE_SCHEDULE_REFRESH. Both None
4. 18856673 Within a MAF application, EL conflicts will occur if AMX resource bundles used in fragments or pages use the same name for their bundles. Both Customers are recommended to use unique names for resource bundles.
5. 21694961 Previously logged in credentials are not flushed after app is deleted and re-installed, so the previous user name remains displayed in the login screen.  Both Customers can avoid this issue by not enabling the "Show the remember use name" option in the Login Connection configuration.
6. 18469085 A deadlock is possible if you attempt to show a sliding window from a feature LifeCycleListener activate method the first time the feature is activated. Both methods must be invoked in a separate thread in the LifeCycleListener methods.
7. 20232366 CommandLink action does not get fired when it is in a panelPage's header facet. Both The commandLink could be relocated into the primary or secondary facet.
8. 21666562 The DeviceManager.updateContact() method is not updating all the contact fields. It is updating only the name, email, phone number and url. The remaining fields like Organization, Note and Categories are not getting updated. Android None
9. 21954269 Setting application scope variable to null does not invoke data change event. Both None
10. 19346534 ResetFeature on Android hardware causes a flash while changing features. It shows the previous state of the feature before it reinitializes. Android None
11. 21867411 The app is using credentials used in the local credential store for validating the user even if there is a fresh login. Both None