Cloud build feature in Mobile Service now supports Mobile Development Kit clients
I’ve been using the new Cloud Build feature in SAP Cloud Platform mobile service for development & operations to build Mobile Development Kit clients. It’s kind of a hidden feature but reduces the learning curve for the non-developers working with mobile development kit apps. Cloud Build, as the term implies, allows developers and administrators to build mobile development kit clients by prompting for a couple pieces of information and then building a client app without requiring that technical development tools be installed on your local computer. The key benefits of using this method are reduced development time and simplified technical requirements.
There are a lot of important new features in the 2.1 release of mobile development kit. You can read about it in Sue Berry’s blog here.
I am not a professional developer. Mobile development kit, however, allows me to build apps in Web IDE in the cloud. Until this feature was released I would have to install the correct tools, download the SDK, figure out how to build the client. I could also ask other developers to build the client container app for me. That put a dependency on others before I could even test my app. I’m happy to say that with the latest release of Mobile Services, cloud build now supports two new client types – Mobile Development Kit and SAP Asset Manager – in addition to the Fiori client that’s been there for some time.
Basically, the service builds an executable binary (an app or client) in the SAP Cloud Platform. Once the build is done, you can download the client and distribute to mobile devices via your mobile app management solution of choice or other means (email, internal web page, etc.). The client includes all the correct coordinates and server values to correctly connect to the Mobile Service end points and download and run the associated metadata app that you created in Web IDE. The only onboarding the end users do is to authenticate their user id (plus accept the EULA and set up pin or fingerprint access for the client).
Some use cases for using cloud build to create mobile development kit clients:
- Create an end-to-end demo to show others a sample app from a browser, no mobile without having to install any development tools on your computer.
- Proof of concept where you want to focus on capabilities in WebIDE and how the app runs on mobile devices instead of also spending time creating a developer environment on your computer.
- Development cycle where the developer wants to remain in WebIDE and test the app on mobile devices. This includes extending the testing to other users.
- Deployment to production where there is no requirement to brand or customize the client or to add any extensions or resource files to the client.
On the other hand, customers can also download the client from the SAP Store and build a custom client on their own computer. The 2.1 release includes several improvements to this process as well. Below are a few reasons to continue to do that.
- Your requirements include branding, extensions and resource files.
- Ability to change client version value for troubleshooting.
- Control over the build process and artifacts.
- Ability to step through and debug rules.
- Developer preference and convenience.
How do you use this feature?
First, if you haven’t already, you need to create at least one signing profile for iOS in mobile services. A signing profile includes your Apple signing certificate and provisioning profile. Learn how to do that here. Make sure that the id in your signing profile (com.this.that) matches the application id of your mobile services app or the build will fail. Here’s what the upload signing profile page looks like.
Once you have at least one signing profile, you are ready to build a client.
From the Mobile Service main screen, click on Mobile Applications.
.. then select Native/Hybrid.
Click on the app you defined for Mobile development kit to view the details and the Assigned Features.
Click on + to the right of Assigned Features to open the list of additional features you can add to this app. Select Cloud Build from the list. Click OK to add the feature and start the Cloud Build page.
In this example, I want to build a mobile development kit client so I can start testing a metadata app I created in WebIDE on an iPad or iPhone. I select the Client Type of Mobile Development Kit.
Now the rest of the page opens with fields and options for mobile development kit. Note that the device app name, display name and details get default values from the app name.
You can and should change these to make them more meaningful to you and your users, as in the below example.
Url Scheme is optional. It basically allows other apps to communicate with this app using the scheme. The cloud build service will add this text in the app as the url scheme name. More about this concept on the Apple developer site here.
In all most all cases you will encrypt the database, so leave that checked. You may want to not encrypt the database in the client if you are troubleshooting an issue and want to inspect the database. In that case, uncheck the box.
You can also optionally upload your own app icon to replace the default mobile development kit client app icon. Make sure it’s 152 x 152 pixels and that the file size is 1MB or less.
Click on the Build History tab to start a new build and to see and download previous builds.
Click on Build (far right on top of the row titles). That will pop up a dialog where you select the signing profile. As noted above, be aware that build will fail if the bundle id in your signing profile does not match the application id of the mobile services app.
Click OK to start the build process.
When the build process completes you will see the status change to Build Complete or Build Failed. If the build fails, there is a log of the build process to help you fix the issue and start a new build.
You can download the binary to your computer and then use your choice of deployment methods to distribute the app to users and devices.
You can also install directly to an iOS device by clicking Install to bring up a page with a QR code that you can scan from your device. You can also copy the URL and share that with others via email.
You can also view the detailed build logs to give you guidance should the build fail. When you click on the row or the “>” on the right side of the row, a page like the one below will open showing you the details and the build logs.
Cloud build adds one more choice on how you create clients for mobile development kit clients. It allows you to create, download and share clients that run your metadata apps and it’s all done within the SAP Cloud Platform mobile services environment. Those who want more control over the client build for debugging and customization can build clients in your own Mac development environment. We created a video to guide you – SAP HANA Academy – SAP CP: Blueprint #2.3: Mobile Development Kit: Setup Client
The best source for information about how to use Mobile Development Kit is the Learning Journey
Hi Don, thanks for sharing this technique. Are the motivations for building a custom MDK client roughly the same as for building a custom Fiori Client? It seems that in both cases we can use the vanilla client from the app store, but to apply corporate branding we create our own?
Similar but right now the Mobile Development Kit client is not in the App Store. The main difference between a generic app store client and the custom client is the mobile services endpoints get baked into the client so the end user who installs the custom client does not have to perform any setup to get the client to connect to the correct endpoints.
That's great, and does it support multiple endpoints for the different environments (e.g. dev/test/prod)? The Fiori Client only allows one FLP url so if you need to switch from test to prod, say, you need to clear all the settings.
Each client only supports one set of endpoints - the endpoints defined for the mobile services app you build the client for. But remember that the MDK client is basically a player or container. The app is the project created in WebIDE. Each time the developer triggers a Deploy from WebIDE to a mobile services app, mobile services updates the content (metadata) to the mobile devices with an MDK client registered to that app. The developer controls what WebIDE app/account (dev, test, prod) updates to a mobile services app. So without any user action (other than ok to the allow this update), you could deploy a completely different app to the client running on their device or it could simply be an updated version of the app already on the device. The restriction is one app per client as there's no concept of a launch pad.
You can also switch out the associated endpoints by overriding the current ones. There's no UI in the client to do that. You have to enter a scheme url name in Cloud Build. You then have to get that scheme with the new endpoints in the correct format into the client. That warrants a separate blog but will hold off on that till we get a couple new things in the product to make it easier on the developer and the end user.
Hi Don, thanks for sharing. Is this feature available in hanatrial landscape?
Yes. It is available in trial and production landscapes.
Hi Don Coop. Is Cloud Build service available for android? There is only for iOS as I can see.
(I generated a Signing Profile for Android Platform)
Hi Don Coop, Thanks for sharing this.
I have same question same as Hakan Şahin ? Is Cloud Build service available for android too? there i can see only iOS platform, not changeable.
Hello Everyone,
This blog post is outdated. For latest updates, please follow this tutorial: https://developers.sap.com/tutorials/cp-mobile-dev-kit-cbs-client.html