I’ve been blogging a lot recently about mobile application development and continuous integration (this blog gives a round-up of the key topics). It’s now time to stand back and look at the big picture. What is it that makes Continuous Integration (CI) and Platform as a Service (PaaS) so interesting for mobile application development?
Manage Device Complexity and Automate Build Tasks
Build, Deploy and Test Mobile and Backend Services Together
Another aspect of mobile app development where Platform as a Service makes developers’ lives so much easier is the often-overlooked backend services. Here I’m not talking about the interesting and important Backend as a Service (BaaS) space, where a lot of exciting new companies are offering support for mobile-specific services such as location and push notification, but rather the more basic problem of storing, managing, crunching and serving up your application data.
If you look at the apps on your phone right now, I’ll bet that most of them follow this pattern: native mobile clients that “phone home” via backend services to get accurate, up-to-date data. Of course, there are different types of “data” and various ways of getting to the device: for me, that ranges from streaming video of the penguins at the California Academy of Sciences to refreshing the account details on my Starbucks card. Two of the technologies that I expect to be most important for mainstream mobile app backends are REST web services and HTML5 websockets.
The mobile apps and the backend services that support them are really all part of the same deliverable: in the web world, you would test the “client” UI against running backend services and the same holds true for the mobile world. There is a hierarchy of tests to run through: these range from basic unit tests and interface testing with tools like Selenium or SoapUI, through to fully integrated functional testing with on-device mobile apps talking to live backend services. Platform as a Service is a perfect model for this: the mobile client apps and the backend services can be built, deployed and tested, separately and together - following the basic principles of continuous integration, tests increase in scope, building on logically prerequisite component tests.
Total Testing - Use the Platform Ecosystem
One of the great benefits of the PaaS model is its inherent flexibility: you can very easily deploy those backend services with a combination of environments and data services and that adds a whole new dimension to integrated device-backend testing. Now add in beta test distribution management, mobile ALM metrics (for example, network latency and response time) and support for the growing family of mobile-friendly “No SQL” data stores, all available via the platform ecosystem, and I think the potential is obvious.
If you look at the mobile space right now, what you see is a flood of exciting new services, all designed to address the challenges and pain points of delivering great mobile apps. Look closely and you’ll notice that they all follow a cloud model in one form or another: it’s just the natural approach for building mobile apps. At CloudBees, we are adding important new partners to our mobile ecosystem on a weekly basis and I am always struck by how easy it is, how smoothly their services fit into the PaaS model: I don’t think that’s just a lucky chance. The fact is, mobile application development and Platform as a Service just go naturally together.
Mark Prichard, Senior Director of Product Management