Cloud Powered Apps
Should my application take advantage of cloud ?
We keep hearing cloud everywhere… Is this for me ? Should my application take advantage of cloud ? Or should it fully move to cloud ?
This depends on you and what you need to accomplish. I will try to list some points which will make you take informed decision.
Types of apps
Installed: Desktop applications are typically designed for a specific Operating system like Windows/Mac/Linux etc. They have the maximum potential to do stuff, since they have access to the “full” OS power. Things from direct device access to very rich native customised user interface is possible. Mobile applications too are in this category, though due to security considerations, the power is little curtailed compared to desktop applications.
Web app: Now look at google search at google.com — this too is an application (a great one indeed !), but fully in the cloud. Google search doesn’t need device driver access but needs awesome connectivity to give us the best of the internet information. The app richness is limited to what browsers (HTML) provide, but it is more than enough here.
Hybrid: Now we can have hybrid applications. They are “installed” and “connected”. Evernote is a great example here. They have apps on all platforms — and all the information (notes here) stays synchronised between devices. These apps take the platform native features to the maximum like camera access and rich user interface. The data is stored on the cloud and made seamlessly available everywhere. (The above google search too have apps/integrations in many platforms to leverage this)
What are the considerations I should look into:
- Can your app do all the functionality in browsers ? Does it give adequate user experience on mobile (don’t ignore mobile !) browsers too ? Are you ok if your user need to type URL (or from bookmark) to launch your app ?
- Does your app need offline access — allow usage even when there is no connectivity ? This calls for an app, since HTML/browser’s have only limited offline access.
- Developing your app in HTML (browser) and is the easiest (cheapest too), to have quickest platform reach. Do you have investment to power the development of apps on all platforms ? One strategy here is to start with one platform and in the interim, let other platform enjoy browser based access. Depending on your success with this, invest on more platforms.
- Do you have deep OS integrations, unlimited file-system access ? This calls for an app. Dropbox is an example here.
- WIll HTML one day allow very powerful apps ? Possible… We don’t know when though.
- Any shortcut ? PhoneGap kind frameworks are a good starting point. You can write in HTML, then the framework will “generate” the apps for various platforms. Will this give full native power ? No, but could work for many cases.
On one side there is a need for power and richness in apps. Another side is the variety of platforms and the “reach” problem. The connectivity was a major decider in this equation earlier, but not any more. We can always have an app and then make it connect to cloud to get most of the cloud benefit (Evernote, Dropbox).