Blog Posts

Instacast and iCloud

I am pleased to announce that now with version 1.4 Instacast is fully integrated with iCloud. This means, you can now finally synchronize your podcasts and playback information with multiple devices or have a backup in case your iPhone destroys itself suddenly. All you have to do is have an iCloud account and turn on "iCloud Sync" in the Instacast settings.

So how does it work?

As you might already know, if you change a document on one device, this change is uploaded to the cloud and pushed wirelessly to all your devices and thus synchronizing the content. Instacast is using this mechanism to write out the state of the application, not the whole database though. This document is then pushed to your other devices and as soon as Instacast gets the iCloud notification, it synchronizes its application state with the one of the other device.

So what does Instacast synchronize?

First there is the ordered list of your podcast subscriptions. Then there are the played and starred markers of any episode you've ever seen and last there is the playback information, consisting of the currently playing episode, the current playlist and the current playback position. With these three things, Instacast is able to completely reconstruct the application state on all your devices.

When does it synchronize?

The application state is constantly changing, e.g. when you refresh your podcasts, when you change the order of your podcast list, when you start listening to a new episode, etc. And when you play an episode, the position changes every second. Your internet connection would be occupied constantly if there wasn't an intelligent mechanism that aggregates small changes and only synchronizes at important times. These times are e.g when you pause playback, when you lock the screen, when you send Instacast to the background, when you do nothing for a moment and so on. The great thing about it is, that you don't need to push a sync button. The minor downside is that you can't expect it to be in sync all the time, if you look at more devices simultaniously. Writing out the information, uploading it to the cloud and pushing it to all your devices may take some time.

What happens when there is a conflict?

From time to time, it may happen that there is a conflict during synchronization, which means that there are more then two different versions of the same application state, e.g. when you change the application state of Instacast on more than one device at the same time, or when both devices are offline for a while and both have changes that need to be pushed. In this case, Instacast will try to merge the changes together and resolves the conflict. Let's say you add a podcast on two devices at the same time, then the result will be that both new subscriptions will be on both devices, after the changes have been merged and pushed back. If you mark and episode as played on one device and another episode on the other, both episodes should be marked as played on both devices after a certain time. But the best thing with synchronization always is to avoid conflicts all together. Try not to use more than one device at the same time. Give it some time to synchronize before you switch devices.

To sum it up

iCloud and the synching technology behind it is brand new, I don't expect it to work 100% all the time. I did my best to eliminate any disasterous issues, but there is much that could go wrong, either on Apple's side or in Instacast itself. If you encounter any weird issue, please let me know.

October 13th, 2011 • Permalink


More articles about Blog Posts

12/10/2014 - Instacast for Mac 2.0 Now Available
10/31/2014 - Up Next in Instacast 5
10/22/2014 - Instacast 5 available today
09/16/2014 - Updates on Instacast 5
06/27/2014 - Instacast Cloud Memberships
06/06/2014 - Instacast 4.6 and Instacast Cloud
03/26/2014 - Sharebox adds Drag & Drop sharing to the Dropbox menubar icon
01/22/2014 - Instacast 4.2 adds News Mode
01/12/2014 - Hello 2014
11/07/2013 - Instacast Available on the Mac App Store
10/23/2013 - New Payment Option: Bitcoin