Using the cloud - reconsider design

What does using the cloud mean?

old school skateboard
Photo by Rainer Maiores and used under creative commons

For users, they don’t really think about it at all. They just use the apps on their phones and expect that they can now continue where they left off when they move to their tablet or pc. They are a part of a world where mobile devices are so much more than just smart “phones”. They are connected devices that have come of age as small, portable, connected, always-on computers that can also make phone calls and send SMS messages.

We have come to expect continuous availability of the data that we treasure so much and depend upon to go about our daily lives. Much of this data is available through apps on our phones and tablets. Apps that we expect to have a cross platform continuity of service, a seamless transition and storing of information, state and settings.
However, as a developer of apps, this user expectation adds another level of thought and consideration. Rather than just think about user interaction, the developer has to think about the wider user experience and about the mobile part of mobile devices. Mobility, for many, means connecting devices and providing an always-on service with the data and hence the user experience is enhanced. Delivering this holistic user experience is made much more practical for the developer thanks to the power of the cloud.

The problem with connected devices is quite simply horsepower. They lack the computing capacity that we are used to on our tablets and laptops. Incorporating the cloud into app design means so much more than the user imagines. It’s not just about maintaining data consistency, it’s about increased and distributed computing power, increased storage and increased security. For example, using Infrastructure as a Service, the developer can reduce their costs and increase availability which can be important elements for a small developer. Or using Platform as a Service, the developer is able to take advantage of the quick time to market and the services that can be provisioned as an integrated solution over the web.

At the start of the process, the developer has to identify the ways the user will use the data at different times and on different platforms. What services are available on these vendor platforms for the developer and which are necessary for the software to function more efficiently? Will this increase security, will it be faster, how much more scaleable is it?

With the cloud platforms available now (IaaS vs. PaaS vs. SaaS), the developer has a real choice and the clouds do indeed have a silver lining. A well designed cloud service will be independent of device platform, the service working smoothly across all models, so you can now have any colour even if it’s not black.

Even better, the development model can be reused. Once the developer has become proficient in setting up the cloud services that they need and use, then replicating the process in a new build becomes a more routine exercise and the build time can be reduced. Setting up a mobile service to pass data to and from a database, be it graph, object or relational creates an API that the developer can take advantage of in a cross platform build. For example, they could use Microsoft’s Azure platform to provide the mobile services and then use Visual Studio to build an easy to debug client. With the highly integrated build platform and the comprehensive debugger available in Visual Studio, it is relatively straight forward to ensure functionality before moving to other platforms, or even restarting the entire build process in a cross platform development tool like Ionic.

As students of software in all its guises, developers are constantly learning (because they have to!) to take advantages of new services and tools that become available. Staying aware of these means the development cycle is shorter and the developer can concentrate on the other important aspects of the app like security, app dynamics and usability and the overall user experience.

Design is a funny word. Some people think design means how it looks. But of course, if you dig deeper, it’s really how it works. – Steve Jobs

Author image
Galway, Ireland