The cloud is truly redefining the way we work and play. In it we store our music, our pictures and movies, and our enterprise data. From it we access all of that information from laptops, tablets, smartphones, cars and TVs anywhere anytime. Of course, the mobile revolution is also delivering its fair share of transformation, and like peanut butter and bread, the two are significantly better together.
We speak with enterprise customers all the time and what we commonly hear goes something like this:
- “We have many mobile initiatives and expect to roll out [tens/hundreds/thousands] of apps across multiple platforms over the next few years”
- “The apps need to be of high utility and value to our [employees/partners/prospects/customers] and they need to access data from many sources including social networks, public data sources, enterprise data systems like ERP, CRM, SFA, and our custom apps”
- “Our competitors have already published something similar, so we need the apps out ASAP”
- “But we don’t have the time/money/resources/skills to build all the permutations of mobile client apps as well as the server-side components to support them”
- “How can we prioritize one over the other, when we need both. What should we do?”
To answer this question, let me take a slight detour. Remember the good old days of client/server? Life was relatively simple then. We created a database instance with a bunch of tables and fields, hooked it up to a thick client with GUI controls and widgets, and before you knew it, our app was out the door (or more appropriately, on the desk). Network connectivity was not really an issue with LANs and the apps gave us access to the data in an acceptable form factor, on a not-so-portable, big screen, with more than enough room for extras.
But today’s mobile apps are now a complex mash-up of data from many different sources. There’s no precedent set from those apps of yesteryear. It’s no longer sufficient to mobile-enable an already existing app by slapping on an “m.” in the URL, or to build a trimmed down version. Today’s apps need to not only look delightful on a multitude of different and smaller-sized screens, but they also need to feel great. They have to support device specific gestures and menus. They have to be cool and engaging (think Instagram). They need to integrate into the user’s life, so they can’t even imagine what it was like before they downloaded it.
In order to do that, an app needs automatic push notifications to update us even when we’re not in the app. We need status updates and feeds from other users so we know what’s happening. We need to “Like” things and share comments so our friends and colleagues know what we’re up to. We want to upload photos so we can share the moments of our lives. Our employees need supply chain data from the SAP system, financial data from the Oracle system and employee data from the HR system, so in that moment of need, in front of a customer or prospect, they can deliver real-time information.
So essentially what we have now are two very different sets of competing requirements – client-side applications and server-side services – both with different success criteria, different development tools and different skillsets.
And therein lies the problem – other than the biggest mega-companies on the planet who don’t have the constraints of money, people, skills, etc, the rest of us are faced with what seems like an impossible predicament;
I would suggest that of the two, the no-brainer winner has to be the client-side app. I don’t think anyone even questions the value of the user experience any more. Look at Apple. They epitomize that maniacal focus in all their products. So too does Google and Amazon.
So that leaves us with the displaced backend server-side. In order to deliver many of the above-mentioned required capabilities, “do-it-yourself” server-side development is perceived as the only solution, where you develop custom software and architectures made up of web, app and database servers to deliver these services and then integrate them to the different client apps. Then you build or provision a new infrastructure to support it all. Then wash, rinse and repeat for every new app and every time one of those data sources changes.
Fortunately there is a way out, and mobile cloud-based services offer a welcome solution. Such backend services provide the core capabilities required, over the cloud, so you can continue to focus on the client-side experience while simply consuming the backend services as needed on the cloud.
At Appcelerator we have Appcelerator Cloud Services (ACS) which offers a fast, easy, and simple way of building next generation mobile apps. With a proven set of ready-to-consume APIs, you can build beautiful apps in a fraction of the time from any mobile toolkit (of course there are numerous benefits if you use Titanium Studio too). ACS is also extensible, so it can integrate with other public services and private corporate apps to shield you from that complexity on the client. And you pay as go.