Mobile Cloud Development Considerations
Mobile Cloud Services
You can build and deliver a mobile application in a variety of ways. You can use the software development kits (SDK) provided by the handset mobile OS manufacturers, such as Apple iOS or Google Android. This approach is fine for a single and simple app targeting a particular mobile OS. However, if you need to build for a variety of mobile devices and connect to a heterogeneous enterprise infrastructure, you will need a more comprehensive mobile application platform. You can use an installed software approach such as a MEAP.
Generally, a MEAP is a middleware platform installed within the enterprise. It has a cross-platform mobile application development environment that supports connectivity to back-end enterprise applications and databases. A MEAP also provides a centralized management component that enables administration, management, and enterprise security of the applications. In addition to an on-premise deployment, the MEAP itself could be deployed as a virtual image within a cloud environment. This can help save IT teams the steps to set up and manage the MEAP environment and may offer a rental pricing model which may be attractive to some development teams. Additionally, some companies (also known as Mobile Back end as a Service or BaaS) have begun to offer specific cloud based mobile services, such as storage, user management, analytics, advertising, payments, push notifications, and integration with social networking services. These mobile specific services can be complimentary to your MEAP deployment by incorporating these mobile specific cloud services into your mobile development process.
Centralized Build Environment in the Cloud
When building for multiple device platforms, each build environment has its own compiler. As such, each development team (Android, Apple, Microsoft, and so on) needs its own build environment. Maintaining multiple build environments can be a challenge for some operation teams. For example, with the popularity of the Apple products, you might think that an iOS platform would be a mainstay in today’s enterprises; in reality, many businesses do not support the deployment of Apple products. This is due to a variety of reasons including skills, security concerns, or just capacity. In the end, this can create a challenge for those trying to define a mobile development strategy. Developers need access to the Mac operating system to compile the source code into an executable mobile app. Without access to Macs, the ability to develop a cross-platform mobile app strategy is not viable.
One approach to solving the challenge of building mobile applications when supporting multiple device platforms is to outsource the development or consider a centralized build in the cloud. You can access the build environments through a centrally managed cloud remote desktop. In addition to solving the issue of accessing Macs, the cloud approach can also provide a centrally managed build environment, significantly reducing the cost of managing the app build process for a variety of platforms.
Testing Mobile Apps: How the Cloud Can Make Mobile Testing Simpler
It is clear that users have many choices for device types, sizes, and platforms. It is even common for users to have more than one device. As a result the mobile device landscape is fragmented—forcing businesses to support many different types of devices. The interfaces are nonstandard with a variety of screen sizes and resolutions. Each device type has its own operating system with unique characteristics and user experience. There are many variations of mobile operating systems. This is most prominent with the Android platform. There are many different permutations and versions of the operating system and even forked versions of the Android open source project. Each carrier may tweak the mobile OS to optimize for a particular hardware platform or a particular network. As a result, the test matrix for a mobile app can be huge with many, many permutations. Unlike the web, where the test target was essentially the web browser, with mobile development you need to have access to the mobile device to understand it. You also need to simulate the back-end systems, network, and environment. Development teams located across multiple locations need to collaborate and share access to the mobile devices. A typical mobile development project needs 30–40 devices that are currently in the market, and 30 percent will need to be replaced each quarter.7 Add to this the dynamic nature of the mobile market and short development cycles, and the cost in logistics, procurement, and management of these devices can be cost-prohibitive. In the end, complexity of mobile testing can be a significant challenge for any IT department.
A cloud-based mobile test environment can significantly simplify the testing process. There are vendors in the market, such as Perfecto Mobile and Device Anywhere, which offer web-based access to a large pool of physical mobile devices, connected to live networks worldwide. Developers and testers can access these devices through a cloud interface. This gives developers access to a wide variety of mobile devices during the testing phase for both manual and automated testing. The development team is essentially renting the latest collection of mobile devices it needs to meet its test plan. The mobile devices can be set up in a variety of locations around the world to validate the experience on a specific carrier network. Because these devices are centrally managed, the testing can be automated to ensure that specific test cases are validated with all the interaction recorded on video. The cloud-based test facility then provides the developer with a complete view of all the test results. After the test phase is complete, the mobile devices are returned to the centralized pool of devices. In this way, each developer feels they have unlimited access to mobile device whenever they are needed. This saves the enterprise from having to maintain and manage all these devices and gives them a true on-demand test environment. Because all the devices are available in the cloud, there is no need to procure and manage the devices. Devices can be added or replaced immediately, and development teams can access the same device to replicate bugs and resolve test issues.
Not only can the device test experience be delivered through a cloud, but you can also simulate a back-end system through a cloud-based environment. Solutions such as IBM’s Rational Test Virtualization Server help you in modeling and simulating real system behavior to eliminate application test dependencies and reduce infrastructure costs. This helps improve the quality of software applications by enabling developers to use cloud computing technologies to conduct testing of software applications, including mobile applications, without having to set up the actual infrastructure.