App developers take note! As you may know, using the IBM® Bluemix® Mobile Dashboard you can associate cloud native services (like security, push notifications, and analytics) with your mobile app, and then generate a downloadable package which contains client code along with microservice SDKs. As a developer, this alone can save you a ton of time. But now, you can reduce development time further and radically simplify your mobile app code. All by adding custom backend apps to your Bluemix mobile project, and then automatically generating SDKs for them.
The Problem: Managing and Connecting to the Backend
While mobile apps have become ubiquitous, mobile app users have come to expect sophisticated, high-performing experiences. And they expect them to be integrated across both mobile and web channels. To meet these expectations, you will need to leverage multiple cloud services with custom logic in the app’s backend to tailor a winning experience within each channel. Creating a Backend for Frontend (BFF) architecture helps manage this complexity, but as a mobile developer, you are still in a precarious position: The BFF presents yet another component to manage on the backend; and on the frontend, you often must code REST API calls which make the code cumbersome to write, a challenge to read, and difficult to maintain.
The Solution: Mobile Projects on Bluemix and Auto-generated SDKs
Mobile projects help with the management problem by associating the frontend and backend components of your app into a manageable unit. In particular, mobile projects on Bluemix let you add backend microservices and custom Cloud Foundry apps (like BFFs) to the project. But that’s not all. Once a Cloud Foundry app is added, you can auto-generate SDKs for it. SDKs address the “cumbersome code” problem by hiding the complexity of REST API calls and boiling them down to a set of functions that are easy to code in mobile app programming languages such as Swift (iOS) and Java (Android). SDK generation will work with any Cloud Foundry app (in other words, any app running on Bluemix) whose documentation adheres to the Open API specification (e.g. Swagger).
The first way to generate your SDK is directly from the Bluemix Mobile Dashboard. In the Code section you will find buttons to download the complete client package (starter code + SDKs) or just the SDKs. Once downloaded, open a terminal, change to the project directory, run pod install, the open your apps workspace file. Alternately, you can use the IBM Bluemix CLI SDK plug-in to quickly transform the API documentation that comes with your backend apps and services into working native SDKs for iOS and Android. With the CLI you can do things like:
· Integrate the CLI into a devops pipeline and ensure that the SDK is always consistent with the API definition each time the app is built.
· Keep your SDK in sync when the REST API changes by re-generating a new SDK and replacing the old one.
· Validate the API documentation for your Cloud Foundry against the Open API spec.
See the Bluemix CLI documentation for details.
We need your input!
You can shape the future of Bluemix. Try the IBM Bluemix Mobile Dashboard and Bluemix CLI SDK plug-in today and share your comments and wish list items via the in-console Feedback button, or in our developerWorks forum for Bluemix.
Experienced mobile developers can use Code Starters to integrate common mobile services and key Bluemix services like Watson, Weather, IoT, and Cloudant, with a production-ready starting point. These Code Starters massively reduce the time it takes to get your mobile app running with Bluemix.
Mobile Foundation just introduced a new cloud-friendly pricing model. It gives enterprises greater flexibility in how they deploy from development, user acceptance testing, pre-production and production—all on the cloud at a low price, but with great scale.
Building a great mobile application is not an easy task. You need to consider security, user engagement, user experience, and many other aspects. Luckily you can reduce the overhead of managing and maintaining various server-side components by using ready-made cloud services that provide authentication, notifications, analytics, data storage capabilities, and more. Let's focus on how your mobile application stores binary data.