Desktop Sync in the Internet Age
Most major manufacturers of mobile phones have some form of desktop sync application, and there are several third-party products available as well. So why do I say there is a need for a different approach?
These legacy sync applications were designed largely in the pre-Internet era, and largely fail to take advantage of the features and applications available on the web. Further, many of these apps are bloated and fragile, having been incrementally upgraded over the years, even as the devices they sync to have advanced in leaps and bounds.
As an individual user, my requirements for a sync system can be summed up rather succinctly: it must work on my phone and PC, it must properly sync my data and applications to the proper locations and services, and it must be convenient to use. To satisfy a large body of users and to fit within the constraints and tendencies of the larger mobile ecosystem, these requirements will need a certain amount of translation, however.
I propose that to meet the needs of current and future mobile device users, a modern sync solution should have these properties:
- It must access Internet services as easily as local files. Today, web services provide us with email, calendar, photo sharing, bookmark storage, IM, backup, document collaboration, reference and too many more applications to list. A modern sync solution should be able to easily link in these services alongside local applications and storage, and allow users to hook up the services they care about with a minimum of pain and stress.
- It must accommodate the capabilities of modern mobile devices. Our phones have hundreds of features and contain dozens of different types of data. They support multiple types of downloadable application and connect through half-a-dozen radios and network interfaces. It’s a tough job, but a modern sync solution must tackle this complexity.
- It must be a platform that can be extended with new services and features. No one company can anticipate all the possible permutations of applications and services to be synced, so instead of a single application, we need a platform for developing applications. Furthermore, it should be an open platform with low barriers to getting started with development.
- It should use standard networking protocols. Modern mobile phones are, at their heart, small networked computers. Syncing should work across whatever connection is available, whether across the desk (USB cable or Bluetooth) to across the room (same WiFi network) all the way to around the world (across the Internet, via cellular or not). Some aspects of syncing may work differently depending on the capabilities of the available connection mode, but the base functionality should be available regardless. Further, by sticking to standards, we can take advantage of the existing infrastructure and knowledge base, while being confident of continued advances in the future.
- It should be platform-agnostic at the core. The PC side should work on both Windows and Mac, and Linux would be real nice too. The mobile side should be manageably simple to port between different phone models and even OS platforms.
This, in summary, is what I hope to build here at Candyspark. Over the coming months, we will work to design and prototype a new sync application platform, which (I hope) meets these requirements.
I’ll be posting ideas, updates, related news and random thought here in this blog. If you’re interested in this space, or if you’ve got ideas/opinions/disagreements/whatever, please post in the comments or get in touch!
Why sync to the desktop? Why not mobile only?
When discussing the issue of mobile-desktop-Internet sync with people, one question gets asked frequently: Why involve the PC at all? Why not have the mobile device access the Internet directly? After all, every modern mobile phone has, by definition, a data connection back to a carrier network, over which various services already operate. Network operators are enthusiastic to sell data services over that pipe, and many users would rather not be bothered with setting up PC software if they can avoid it.
Well, carrier data services certainly have their place, but there are still many situations where user needs are not well served by a mobile-only connectivity solution. Here are some of the reasons why:
- Network Performance: Even with 3G, both bandwidth and latency over cellular connections are much worse than via WiFi or USB. Local connections between a phone and a PC in the same room are typically 10-1000 times faster than the cellular connection.
- Costs and Billing Uncertainty: Costs for cellular data can be quite high, and many users remain nervous and uncertain over data access will cost. Flat rate data plans redress this partially, but they are not available in many parts of the world, and they typically still come with (sometimes undisclosed) usage caps.
- Security and Privacy: There are valid concerns over security and privacy when transferring personal data, and mobile phones hold some of the most private data there is. Corporate environments, especially, have a need for verifiably secure data transport, storage and backup.
- Operator Control and Restriction: In the past, certain over-the-air services have been blocked when they interfere with an operator’s own for-pay services. By using local connections, this is no longer a factor.
- Customization and Configurability: Above all, a sync solution needs to fit into an individual user’s workflow. A local sync application can provide direct access to applications and data on the desktop as well as be more configurable and debuggable.
As someone who not only consumes a lot of big media files on the phone and lives in country without flat rate data plans, but also has strong preferences for how my various apps work together, I find it quite easy to come up with this list. But I think a lot of people with different priorities and different applications in mind won’t be quite as compelled by these reasons. I’d be very interested in hearing other points of view, so please post your comments below!