Technology Blogs by SAP
Learn how to extend and personalize SAP applications. Follow the SAP technology blog for insights into SAP BTP, ABAP, SAP Analytics Cloud, SAP HANA, and more.
Showing results for 
Search instead for 
Did you mean: 

Build and maintain a single app that runs  native on Android and iOS

Support for both iOS and Android is critical to the success of an enterprise mobility strategy. Over the last 15 or so years, I've been involved in a variety of mobile projects. In some cases, the devices were already selected by the customer to meet the project requirements (ruggedized, form factor, security, costs). Other projects were BYOD and in those cases the goal was widespread adoption across a wide variety of devices usually to improve employee productivity or venture into the digital enterprise. But support for both Android and iOS was essential. Project leaders want flexibility and choice to minimize costs and risks.Even if they have existing devices, being able to change or add new ones on the other OS platform is seen as a big benefit.

The mobile development kit feature of SAP Cloud Platform Mobile Services has run on iOS devices since the initial release. Today, we are announcing that mobile development kit expands its native support to include Android devices in mobile development kit (MDK) 3.0. Users get the look and feel and performance of a native app but the developer builds and maintains a single app definition. The same app runs on both iOS and Android devices. MDK 3.0 will be available in limited, early adopter release starting in November 2018.

MDK 3.0 provides a new SDK that allows developers to build clients for both iOS and Android devices. In addition, developers and administrators can use the Cloud Build Service to simply build clients for both device types as well. The MDK clients are built on the SAP Cloud Platform SDKs for Android and iOS.

Customers continue tell me that they do not have enough developers with mobile skills and experience in their organization to meet the demand for mobile apps from their business units. The solution is to have tools that let customers apply a variety of developer skill sets to increase their capacity to meet mobile app demand. MDK lets developers build cross platform native mobile apps that follow the SAP Fiori design using an easy to learn visual, drag-and-drop tool. Development is web based using a plug-in for Web IDE. The plug-in adds additional wizards, drag and drop UI elements, app templates and codeless building blocks. MDK provides robust offline and online capabilities, mobile qualities such as the camera and barcode scanner and now delivers cross platform native support. For developers who prefer VS Code, there is also an extension for VS Code to improve developer productivity especially for modifying and troubleshooting MDK apps.

How does cross platform work in MDK?

MDK for Android works the same way as MDK for iOS does, with a native client for both device types. The diagram below shows the high-level architecture of MDK. If you are not familiar with MDK, the Learning Journey (link) is a great place to start.

The developer designs and maintains an MDK app in SAP Web IDE Full Stack. When the developer is ready to deploy the app to users, she uses the MDK Deploy and Activate action that packages the app and sends the bundle to an app in Mobile Services as an app update. The MDK client has NativeScript support and the Fiori for Android & iOS UI controls. This allows the client to transform metadata it receives from Mobile Services into native code on the device. The MDK client also leverages the Fiori for iOS and Fiori for Android responsive design and guidelines to deliver the proper UI for that device and format type.



The next time an MDK client running on a user's device, iOS or Android, connects to Mobile Services, the client will get the updated app definition via the App Update feature. Below you can see same app running on the Android client and iOS client below that.






What if I only want to build apps for Android (or only for iOS)?

If you only need to support one mobile platform for one of your MDK apps, then you would only push out one of the MDK client types, the Android client or the iOS client. If that requirement changes in the future, there’s no need to change or re-write your MDK app, you simply push out the other client type.

How do I get started?

Mobile development kit 3.0 which includes support for Android and iOS will be available for early adopters starting in November. We are taking applications now for the early adopter care program. Visit the SAP influence site to apply for access, or simply click on the button below: