We have no plans to release further iOS 7 updates to OmniFocus for iPhone.
OmniFocus 2 on iPhone 5 will not sync automatically ever [solved with the introduction of push-triggered background syncing]
Rats. Ok. Thanks for the quick response.
Yes! I came to the same idea independently, and I think this would work great.
To summarize the idea here:
- Assume user has devices A, B, C.
- Assume OmniGroup creates a “sync push” server, separate from the existing OmniSync Server which does not store OmniFocus databases – data continues to be synced to its present location. Let’s call this new service OmniPush, and the user’s current sync location (OmniSync or self-hosted WebDAV) the Sync Location.
- Users who wish to use push may sign up for a free OmniPush account and must sign in to that account in OmniFocus on devices A, B, C.
Then the sync flow is as follows:
- User makes change on device A.
- Device A syncs to the user’s chosen Sync Location.
- Device A pings OmniPush server to notify that changes have been synced (but does not transfer any actual user data!).
- OmniPush sends silent Push Notifications to all other devices on the user’s OmniPush account (devices B, C).
- Devices B, C receive the notification from OmniPush (via APNS) and perform a local sync from the user’s Sync Location.
Same here, this killer sync feature was made my choice, left this beatiful app.
Even if the intention is to just make it sync more predictably, having a heartbeat server that pushes a notification periodically to sync would probably work.
That way it’s not as complex as having a hosted account a la OmniSync and having to interconnect the apps on a per-account basis. Instead, everybody would use the same heartbeat server and it’d just broadcast to all subscribers (similar to how games push annoying “buy our new game” notifications to everyone). Much simpler.
Maybe in the UI you could select how often you want the sync to happen, similar to the Fetch option in Mail/Calendar settings. What that’d actually do is sign you up for a different frequency of push notification, perhaps simply by switching the push server used (one server does it every 5 min, one does it every 15 min, one does it every 30 min, etc.)
Don’t get me wrong, I’d love to have instant push sync on any change, but as an intermediate step having a predictable sync would be nice.
Anything to update here? Would love to have a seamless, instantaneous option, like there is in Reminders, or Fantastical, or Things, or… I’m like so many others: looking around at other task management apps with flawless sync, but I really am tied in to OF (and like it best anyway).
In the April 2015 newsletter, the “What’s Next” section shows OmniFocus getting push syncing soon.
Awesome! I missed that somehow. Thanks!
We’ve posted a detailed description of how push-triggered syncing works in OmniFocus 2.6 for iOS, which went into TestFlight a few hours ago:
Re: this clause: “After OmniFocus finishes a sync…” at the start of a paragraph–
Sorry if I missed this, but after reading through that (excellent) article a couple times, I’m still not clear–what triggers such a sync in the first place? (I.e., on the initial device?) I’ve got the Test Flight build (2.6) now, and it seems that just entering a new task, for example, or editing an existing one by adding a start time, doesn’t automatically trigger a sync. Is that right/expected?
Here’s a post from last year which covers the normal triggers for syncing and explains how to tweak them:
Unless you do something to trigger a sync sooner (such as leaving the app on iOS), OmniFocus will collect your edits over the course of one minute and then sync all those edits at once.
I actually had an instance with the first TestFlight 2.6 build yesterday where automatic sync took longer than a minute and led to an outdated alert on another device (going between iPhone and iPad mini–apparently quitting the iPhone app did not trigger sync). But now I see a new build already, so I’ll simply report it if it happens again. The new (second) build of 2.6 did, unfortunately, do only a partial sync of some but not all data, which was odd. If that keeps happening, I’ll report in the appropriate place.
I think for me the larger question is that your average user is going to see this 2.6 update and expect something like the instantaneous sync that happens with Reminders across devices (or Things, or Fantastical, etc.). Somehow other apps seem to have syncs automatically triggered within the second after you make any changes at all.
All the under-the-hood stuff is, indeed, interesting, and you all explain it very well. But I think the end result (instantaneous sync across all devices immediately after any edit is made, regardless of how it works) is what most users are looking for, right?
Any chance something like that would also be coming to OmniFocus? Please let me know if I’m missing something in how it all works. Thanks for all the good work you all put into this app, and especially your responsiveness to users.
I am still having issue with this, even with the latest builds. I just tested Siri capture, and apparently the iPhone app did pull the task from reminders (as it disappeared from there) but it did not sync it to the server (at least for the time period I waited which was about 12 hours) until I actually opened the app on my iPhone.
To add: I had thought the new setup would mean that sync would happen in the background even with OF closed.
I update a task list on my OF on iPad, it syncs, and then even some hours later I get outdated notifications on my iPhone when OF isn’t open.
I didn’t think this would still happen, or did I misunderstand the new mechanism?
Push sync currently only works when OmniFocus is running, so if you force-quit OmniFocus (by swiping it up from the multitasking display) it will not send or receive push syncs. If that’s not what’s going on here and you’re still having trouble, you can email us at firstname.lastname@example.org and we’d be happy to investigate!
Was OmniFocus running on the iPhone during that time? If you force-quit OmniFocus (by swiping it up from the multitasking display) it will not send or receive push syncs.
You can also check your device’s sync log to see if that gives any indication as to what may be going on. To do that, pull down on the OmniFocus home screen to reveal the hidden toolbar, then tap Settings ▸ Last Synced.
The sync log should show a listing of each sync that has occurred, the time it occurred, the duration, and what triggered the sync. There’s a ‘share’ button in the toolbar you can use to email the log to us for troubleshooting if necessary.
I did not force quite, and yes it was running. I looked at the log and it showed it synced at 6:50 this morning (which is well after I inputed the task via Siri - that was at about 9 last night) and then not again until 10:36 and then again at 10:52. It is that second time that the task finally synced - not sure why it did not the first time. That being said, it seems to be working as it is suppose to now (the last one I tried synced over in about 10-15 minutes).
Thanks, Anne. Are there plans for push sync to operate even when the app is not open? It certainly is more convenient now than in the past, in that you don’t have to manually sync, but there is still the step of having to manually open OmniFocus on each device to make sure everything stays up-to-date.
The iOS limits when OmniFocus can sync or update, especially when the app is not launched on the device.
Supposedly it uses silent notifications to trigger a background fetch routine, which is throttled by iOS when the device is on cellular and battery. Moreover, the routine shares the same switch with Background App Refresh, so if one turned BAR off for OmniFocus, the routine apparently would never be triggered.