Taking the iOS SDK into the (MobileMe) Cloud
It’s been a while since a Apple forecast / wish list….
Below are some very rough ideas of where Apple could take the future of the iOS SDK in order to extend the capabilities for developers and differentiate the platform from Android and others.
1) Universal MobileMe Sync
Today developers can write local iOS native Apps, however if they want to write any server side component of their application (e.g. remote syncing of data) they need to (a) host the server-side, (b) write their own interfaces, syncing logic and server-side data storage.
Instead Apple should provide every iOS device user with a free MobileMe account (for other reasons, such as cloud storage, web mail, etc) however specifically the iOS SDK should have APIs that allow a developer to write a native client-side App together with a MobileMe server-side component that might include data storage, syncing, server-side processing, etc. For example, be able to write an App like 1Password that can seamlessly sync online without need for the customer to nominate where they want to store their data (e.g. MobileMe or Dropbox), instead the App can just assume it can access online storage. For example, expose API’s like CoreData that allow client access to server-side data that is almost transparent to the programmer.
Apple would then need to take this one step further to allow external applications (e.g. Mac and PC Desktop clients) to have API access (e.g. writing other client apps to access the same data, either using high level APIs or low level data access).
2) Shared App MobileMe Cloud Space
Taking the above access to MobileMe Cloud space for an individual, each App available on the App Store should also have access to a common pool of Cloud Space (i.e. each App gets its own MobileMe account) where the App can now access a single shared MobileMe Cloud storage. For example, if the App wants to host a discussion group, rating system, shared posts, etc, the native App can use an iOS API to write directly to the cloud for access to common data across the App. Again, this would be almost transparent to the App developer and there is no need to develop any server-side code, host the code, manage the data, etc. Potentially this kind of data storage would require an additional hosting portion of the application, for example paid for via the subscription App business model.
Taking this one step further, the App MobileMe account may have an API for sharing data between applications, follow much the same rules as client-side data sharing. For example, there may be “hooks” to jump from data in one App Cloud to another App Cloud, but not allowing cross App data modification. I’ll call it the “Cloud-box”.
3) Desktop APIs
Finally, Apple could extend the iOS SDK with hooks into OS X to promote applications that leverage the benefits of owning multiple Apple products. For example, there are few Apps like PasteBot that use tricks to make the use of a Desktop Mac running OS X appear seamless with an iPhone however I am surprised Apple doesn’t exploit this “closed loop” even more.
Practical Applications
1) Transition between editing photos in iPhoto to pick up the work on an iPad
2) Syncing data from an iPhone, such user preferences / buddy list / favourites / flagged articles, to a MobileMe Cloud, and the syncing that data to an iPad.
3) Pushing heavy processing off the iPhone to the MobileMe Cloud to process on Apple Data Farm, for example creating an image manipulation, speech to text conversion, speech to text conversion.
4) Picking the history of recent applications used on the iPad and having that history seamlessly available on an iMac (e.g. open previous email, view previous photos).
5) Allowing an App to push it’s display to a server-side application for others to join like a webcast.
6) Writing a iOS application that shared actions (gestures) with other iOS applications to create a “multiplayer” type of application.
Let me know what you think or any other applications of an iOS cloud…