If I complete tasks on my mac, they will not be updated on my iPhone until I actually bring the app to the screen. So annoying to get alerts of zombie tasks. Is this not a thing background refresh should be handling?
iOS has a working background refresh?
This seems to be par for the course with pretty much every task manager on iOS. Background refresh is not very frequent, and not guaranteed to happen at all.
Both OmniFocus apps have to be running and on the same network and you mush enable Privacy > local network > Omnifocus on both devices. Do not kill the instance and it sometimes spotty but works mostly.
@anon85228692’s humorous answer hits the nail on its head. Background refresh does work except when it does not. It is not that it does not work at all. The thing is that iOS limits apps how often they are able to refresh in the background.
I don’t know if the OmniGroup could change something that potentially significantly could improve the issue…
Have a look over here. A developer asked about how to optimize background refresh and another developer answered:
Background fetch events depend on user’s behavior. The more you open OmniFocus on your iPhone, a background refresh should be triggered more frequently. If you are opening the app at certain times of the day, there is a good chance that refreshes happen during that time window. “Machine learning” at its worst… It is not bad in the first place, but if you need ongoing refreshes and ongoing syncing in a timely manner, I am not so sure if there is any reliable way to achieve that on iOS.
A true real-time refresh on iOS is not possible, I think.
I am wearing my old Apple Watch at night for sleep tracking. In the morning I switch to my “new” one. I love using OmniFocus on my watch. Because of the watch change, OmniFocus is not current on the watch most of the time in the mornings. Solution: I have to manually close OmniFocus on the iPhone. After opening it again, OmniFocus is current on the watch, too. There are days when I do not need to do that and then there are days I seemingly have to do it all the time - day after day. Different issue, same origin: no reliable background process (sync). Instead: “Machine learning”.
This is correct. I’ve noticed these behaviours where background refresh doesn’t happen at all on newly setup devices. Only after a while of usage, it starts to happen.
I think the developers can only specify the minimum interval between each background refresh, but not the maximum. All the real scheduling is handled by iOS.
I have not dug very deep into those aspects yet in my SwiftUI side projects but the general consensus I’ve seen so far: don’t expect the OS to do the things you want it to do when you want them to be done. Even something as simple as having your app notified when the day changes is risky and unreliable. Your app can ask, but you have no certainty than the OS will accept and do the things. I understand why – it’s all for efficiency and battery life. But it definitely makes iOS a more frustrating platform than macOS to me.
I have a dumb “solution” for this which I’m almost embarrassed to share. It’s a terrible hacky workaround that everyone should feel free to mock, but it solved this issue for me.
When I am not using my iPhone during the day, it’s usually on a Qi charger or a MagSafe charger.
I know that I pickup and put down my iPhone a bunch of times during the day, which means that it is being “connected to power” several times throughout the day already.
So I made a “Personal Automation” shortcut which runs whenever my iPhone is connected to power. I turned OFF the “Ask Before Running” button.
It does 3 things:
- open OmniFocus
- open Sorted³
- open Fantastical
What that means is that each time I put my iPhone down, those 3 apps will each ‘open’ in quick succession.
Opening each app will “trigger” a sync for each app, and the last app will be the app that is left on-screen when the automation is finished.
Since Fantastical is the last app that is opened, I am left with my iPhone screen being an easily-glanceable look at my calendar for the day.
Obviously this should not be necessary, and it’s probably overkill. I turn this automation on or off as needed. If I find that things are getting out of sync during a day, I’ll turn it on. If I find that I don’t really feel like I “need” it on a day, I’ll turn it off.
That’s absolutely brillant!
You’re kind to say so I still think it’s a fairly fugly ‘hack’.
If I was better with Shortcuts and if Shortcuts were easier to use, I’d try to make it so that it only did it during certain times of the day (the so-called “working hours”) and I’d see if there was some way to make it never trigger in my car, because I rarely ever want that.
But mostly I’ve been too lazy to do that, and keep hoping iOS+1 will make things better, and I just turn off the automation a lot. (I actually wish there was a way for me to say ‘turn off this automation until tomorrow’ but I don’t think there’s a way to do that. Yet?)
I still think the #1 tip is to minimize notifications. I’ve turned mine off almost everywhere except the iPhone, and I severely limit what can send notifications on the iPhone.
Every now and again I’ll see someone whose calendar reminders go off on their Mac, iPad, and iPhone, and I think that would make me rage-y. (Well, ok, more rage-y.)
However, while my notifications are all focused on the iPhone, most of my actual “work” is done on the Mac, and occasionally on the iPad. Which means that if my iPhone is out of date, then I’m still getting notifications that are “wrong”.
Honestly I think the smartest/most useful part about it is that when my iPhone is on a charger, the screen usually stays on and I can glance down at my calendar at any time. Not exactly complex, but handy!
I concur with @anon85228692: Just because it’s “hacky” and “ugly” doesn’t mean it’s not a great solution.