How cloud helps alleviate mobile app development challenges

Spread the love

As mobile device sales increase each year, mobile cloud architecture is becoming increasingly necessary for businesses to adopt. CIOs must develop new business strategies that focus on the impact and importance of mobile and cloud technologies. By combining the utility of the cloud with the sheer quantity of mobile devices currently in use, CIOs are presented with a vast number of revenue opportunities that can be made profitable through the cloud and mobile devices’ “synergetic relationship.”

In this webcast, Kurt Marko, analyst at MarkoInsights, talks about the many benefits businesses can gain from a mobile cloud architecture. Read on to discover mobile app development challenges, how cloud reduces the cost of daily infrastructure upkeep, and how it allows the IT side of businesses to focus more time on innovating rather than operating. Marko explains that, as the mobile market continues to grow, cloud is beneficial because it is a scalable technology; businesses can start small with their use of cloud and grow much larger with relative ease and low cost.

Editor’s note: The following is a transcript of the second of four excerpts of Marko’s webcast presentation on mobile cloud. It has been edited for clarity and length.

Kurt Marko: [In terms of mobile app development challenges], probably most IT executives have seen or experienced that there is a lack of experienced mobile developers. It’s still, relatively speaking, a new skill set, particularly for more experienced developers. It may have come up on different languages and platforms, and involves new languages, APIs, programming environments, very new user interface paradigms and development life cycles. Mobile development really prioritizes that focus on lean feature sets that are targeted and easy to use and not cluttered because you have limited screen space, and the app development cycle is literally continuous. Just turn your phone off for a week and come back and look at the number of app updates you’re going to have. Many apps are updating on weekly or monthly cycles at the slowest, so you have to have very agile processes and mindset.

Obviously, mobile requires support for two major platforms, iOS and Android. And as we mentioned, users do prefer native apps, not what we call skinned HTML, which is essentially putting a native frame around an HTML content core. That requires developing two code bases. Again, we won’t dive into details that there are ways to mitigate this, but it is a challenge. As I mentioned, the rapid release cycles: expect it. That means prioritizing features, not succumbing to kind of the big-bang release where you try and load a whole bunch of things into one major release, but incrementally adding features and improvements over time in days or weeks. And there’s a talent shortage. Hiring experienced mobile developers is difficult and expensive. Retraining existing developers takes time and money. It may often be the best course of action, but it’s not free and it is a challenge.

Cloud eases mobile app development challenges

How does this get us all into the cloud? There is a linkage and it has to do with the way mobile apps tend to be constructed. We’ll get into that later, but obviously the cloud, as a deployment platform in general, is increasingly popular because of the speed, convenience and the wide variety of services that are offered by cloud providers. A clear advantage in this time of still very lean IT budgets is the lack of a required Capex expenditure upfront; cloud also reduces operating expenses by essentially outsourcing the day-to-day operations of the infrastructure itself to a service provider. In total, that allows IT to move from more of an operational focus to an innovation focus, where the internal IT is really [tasked] with working with its business partners and line of business units to provide differentiating advantage through new products and services, not running day-to-day operations.

Obviously, there’s always going to be a role for IT and operations, but the cloud does tip that balance in a more innovative direction. The cloud supports this whole notion of Agile development that is so important when working on mobile clients, because many of the cloud services themselves are auto updating and managed by the provider, and those services are often released in a very rapid fashion transparently to the end user, providing kind of an instant benefit.

So, the cloud allows or it makes it easier to deploy new versions, to have parallel release tracks because the cost of infrastructure and the friction of deploying new infrastructure is so low, it makes it quite easy to spin up new machines, to test new versions, to have multiple versions in parallel: dev, test, production. And the cloud is scalable, which is extremely important when we’re talking about mobile devices. Because as many mobile services have discovered, the growth spikes in usage can be extreme and unpredictable. One mention on a popular website or a TV show can create demand that you never saw coming. So, the cloud allows organizations to start small and grow as needed, and also to scale up and down throughout the year depending on unique cycles of their own usage if they have seasonal sorts of workloads.

And as I mentioned, the cloud provides a rich set of back-end services, aside from the usual suspects, like virtual servers and storage, various type of databases, identification and authorization services, big data and business analytics. And for mobile there [are] a number of features, like automatic device synchronization, integration with authentication platforms, and even [end-user] device testing platforms.

Mobile app design patterns

So we’re getting [to] the core of why the cloud is so appealing when thinking about mobile clients. Mobile clients typically adopt what I call here bifurcated functionality, where the client piece of the total application package is focused on user interface, user engagement, this display of information and capture of information. It is kind of used as a conduit to back-end services that handle data access, storage, business logic, user state, security, any number of other things. And so I depicted, this graphic comes here from Windows Azure, but it’s typical of the paradigm and illustrative of how the design paradigm looks.

If you think about it, this isn’t so different from the way multi-tier web apps are developed, where the browser has relatively limited functionality and a lot of the heavy lifting goes on in middleware layers and database layers in the back end. The difference being here that you’ve actually split the functionality between a handheld device and then a back-end service, which typically IT would not operate.

View All Videos