Deprecated: Assigning the return value of new by reference is deprecated in /nfs/c03/h01/mnt/52932/domains/retiredblog.gkaindl.com/html/wordpress/wp-settings.php on line 472

Deprecated: Assigning the return value of new by reference is deprecated in /nfs/c03/h01/mnt/52932/domains/retiredblog.gkaindl.com/html/wordpress/wp-settings.php on line 487

Deprecated: Assigning the return value of new by reference is deprecated in /nfs/c03/h01/mnt/52932/domains/retiredblog.gkaindl.com/html/wordpress/wp-settings.php on line 494

Deprecated: Assigning the return value of new by reference is deprecated in /nfs/c03/h01/mnt/52932/domains/retiredblog.gkaindl.com/html/wordpress/wp-settings.php on line 530

Deprecated: Assigning the return value of new by reference is deprecated in /nfs/c03/h01/mnt/52932/domains/retiredblog.gkaindl.com/html/wordpress/wp-includes/cache.php on line 103

Deprecated: Assigning the return value of new by reference is deprecated in /nfs/c03/h01/mnt/52932/domains/retiredblog.gkaindl.com/html/wordpress/wp-includes/query.php on line 21

Deprecated: Assigning the return value of new by reference is deprecated in /nfs/c03/h01/mnt/52932/domains/retiredblog.gkaindl.com/html/wordpress/wp-includes/theme.php on line 623
blog.gkaindl.com » The iPhone and Implicit Synchronisation

blog.gkaindl.com

nerd nouveau

The iPhone and Implicit Synchronisation

When Steve Jobs announced that there won’t be an iPhone SDK for now, but enthusiastically encouraged to write web apps optimized for the iPhone’s Safari version instead, most developers didn’t exactly burst with joy. Yes, selling a Javascript-enabled browser (now especially since we’ve already known that before, when Steve touted the thing as being the “real” Safari at MacWorld) as an SDK in a “look at what we’ve been doing for you!” manner isn’t the nicest thing to do.

Personally, I would have wished for a full-blown SDK, too. But there’s one thing about the “dedicated web app” paradigm that I really, really like. So much that one could argue that only allowing web apps for now is a clever move to provide for better overall user experience…

Mobile applications are different than desktop apps. You don’t use them for the heavy lifting, that’s what the desktop is for. You won’t write a full blown research paper on the iPhone, but you might want to read one or to do small modifications on the go. You don’t manage data on the iPhone, you just want to access it. The ideal situation would be to have a snapshot of your desktop in your pocket all the time.

Once you’re back at the desktop, however, you want to copy the changes over, since that’s where you’re doing the main part of your work. This implies that there must be some sort of synchronization between the iPhone and the desktop. Of course, there is, much like every other smartphone has it. Whoever has used a smartphone before, though, knows how cumbersome it is to keep application data in sync between possibly multiple computers and a phone. It just sucks.

Now if we’re using web apps on the iPhone, we don’t have to worry about synchronization at all. It happens implicitly. When you edit something that’s stored on the web, it doesn’t matter where you are working from. It could be your iPhone, your Mac or a crappy old PC in a Thai Internet Cafe. After all, that’s the beauty of web apps.

We already know that, though. This “access your data anywhere” benefit often is what’s drawing people to web apps rather than desktop apps. Other people don’t care that much about this aspect of web apps, since they have other approaches to accessing their data from anywhere. What we do not consider, however, is that we do not need to synchronize desktop computers that often. For example, you might do a sync in the morning to get the changes from your desktop onto the laptop, and one in the afternoon when you come back home and want to push your changes to the desktop. There are tools that make this pretty painless. I use the free Unison to synchronize my entire home directory (including applications etc…) between my desktop and laptop. It’s painless, and I don’t need to synchronize that often anyways.

With a mobile device such as the iPhone, this approach would suck. The problem is the frequency at which data on the iPhone might get changed and needed to be pushed back to the desktop. For example, I might be sitting in class, get a good idea, jot it down on the iPhone, then go working on the laptop for an hour, get a call and meet somebody in a cafe, show them something on the iPhone, decide to do some changes again, go back working on the laptop later, and so on. This would require 4 syncs already. And it’s just some random scenario, but the truth is that a device like the iPhone gets used in such an ubiquitous way that you might even end up using it almost in parallel to your main computer. For example, you might get a call, stand up and walk around the room while talking, then you need to write something down, but since you’re not sitting at the computer currently, you write it down on the iPhone. Not a completely unlikely scenario, is it?

With web apps, synchronization doesn’t become a problem. From this point of view, web apps are the ideal solution to writing apps for the iPhone.

Sure, you could argue that the iPod’s sync’ing approach via iTunes works so well that this wouldn’t be a problem for the iPhone either. Keep in mind, though, that the data you are having on the iPod isn’t nearly as dynamic as notes or to-do lists: You just have music, addresses and calendars. And you can’t change them on the iPod. They are read-only. That’s a big difference if you consider the scenarios above.

Also, you could argue that with a full-blown SDK, people could write hybrid apps to achieve essentially the same effect. Or that there are applications that don’t need to share state with other computers (games like “Solitaire”, for example). Both good points. Like I said, I would have been looking forward to a full-blown SDK, too, but it’s not going to happen, at least not for a while. Consequently, I’m trying to focus on the benefits we get from having web apps on the iPhone rather than native ones, and I’m going as far as calling the implicit synchronization of data that web apps provide the “killer feature” for having them on the iPhone.

And to be honest, before Steve announced the whole iPhone/AJAX thing on Monday, I wasn’t even thinking too much about the data synchronization problem iPhone apps could have suffered from. So if there’s one thing we developers can learn from this, it’s that we should think about how people would actually use such a device (in their own technological ecosystem) before asking for local storage facilities and what not…

About

Hi, how are you? My name is Georg Kaindl, and I'm a twenty-something from Vienna, Austria. During the day, I'm a CS student at the Vienna University of Technology, but at night, I turn into an independent software developer for the Macintosh platform, social nerd, lazy entrepreneur and intuitive researcher.

I like to write about everything that matters to considerate technology enthusiasts, but humbly retain the right to go off-topic from time to time.

My posts are licensed under a Creative Commons Attribution 3.0 License.

Contact

You can reach me by email if you have something to say that's not related to a blog post or that you don't want to have publicly available as a comment to a post.

However, you'll have to prove that you are human! Even though I personally like robots very much, I'm less of fan of SPAM. It's just a simple riddle to solve, but a SPAM bot won't cut it!

To get my email address, take the word before the .com in my domain name first (Hint: The word you are looking for starts with a "g" and ends with an "l"). Next, simply attach @mac.com to this word.

Boom, there's my email address. Simple, isn't it?

Powered by WordPress

Comments RSS

Entries RSS