The Omni Group Forums

The Omni Group Forums (http://forums.omnigroup.com/index.php)
-   OmniFocus Syncing (http://forums.omnigroup.com/forumdisplay.php?f=50)
-   -   iPhone 4 and iOS4 lose auto-sync? (http://forums.omnigroup.com/showthread.php?t=16634)

ifonline 2010-07-01 09:35 AM

*sigh*

I obviously don't understand your point... there is a problem with OF on iOS 4. It doesn't work well. Why do we keep going round and round?

whpalmer4 2010-07-01 09:51 AM

I was trying to help you understand that your concern about the lack of database optimization appears to be unwarranted. As for the sync bug, Omni is working on it. I haven't seen anything to suggest they feel the current behavior is acceptable, have you?

[CENTER]"The floggings will continue until morale improves" :)[/CENTER]

ifonline 2010-07-01 10:03 AM

I'm not sure how you see my concern as unwarranted. As it stands, it appears that OF on the iPhone under iOS 4 only runs one time. From that point forward, the app moves between being in the background and being in focus. I don't consider moving into focus the same as launching (and it appears that OF doesn't either), and so I don't believe optimization ever occurs after the initial instance. If I'm right, then optimization will never happen again, unless you specifically force OF to quit (versus move into the background) and then relaunch it.

In other words, if I force the app to quit and then relaunch it, I see the message that the database is being optimized. However, if I allow OF to move into the background and then bring it into focus again, I don't see the message. It doesn't matter how many times I move the app into the background and bring it into focus again, I never see the optimization message. However, if I force it to quit, I do see the message the next time OF launches.

This is further evidenced by the fact that OF did not update the due soon/overdue status on one of my tasks this morning until [i]after[/i] I forced it to quit. It definitely appears that OF does not handle being brought into focus in the same way that it handles being launched, and as such, several things that normally happen when the app is launched do not happen when the app is brought into focus. This is a big deal.

So, I believe that the app is misbehaving when it is brought into focus after being in the background, and as a result:

1. Sync when launching does not happen,
2. Optimization when launching does not happen, and
3. Due soon/Overdue status is not updated.

I could definitely be wrong, but I'd like to hear and opinion one way or another from OmniGroup.

whpalmer4 2010-07-01 10:27 AM

Why is it that you think that the database optimization step needs to happen repeatedly if the application has not been terminated and its memory reclaimed? What do you think that the database optimization does?

The database optimization step does not handle updating the due soon/overdue status of tasks. This is easily demonstrated by putting your device in Airplane mode, launching OmniFocus, creating a new action with a due date a few minutes in the future, going to the Due Soon screen, and watching as the new action disappears (and appears on the Overdue screen) as the due date strikes, all without the app being relaunched or synced.

ifonline 2010-07-01 11:00 AM

I think that database optimization, well... optimizes the database. What makes you think that has anything to do with memory being reclaimed? And are you actually trying to suggest that never, ever optimizing the database is okay?

And as for your test regarding Due/Overdue... that doesn't happen on mine on iOS 4. As I said earlier, the status wasn't updated until I forced OmniFocus to quit and then relaunched it. OmniFocus optimized the database (according to the message I saw) and then *poof* the status was updated.

Brian 2010-07-01 01:15 PM

I'll check in and get details from Ken, but he's triaging OmniFocus for iPad bugs at the moment. More info soon. :-)

ifonline 2010-07-01 02:28 PM

Thanks. Oh, and I sent a support e-mail about this, just so you are aware.

Brian 2010-07-01 04:21 PM

I'm piecing this together from a long chat thread with Ken, so apologies in advance if I get some of this wrong and he needs to correct me subsequently. :-)

Optimization: terminology is a bit mushy here. There are actually two pieces to optimization, which I'll describe below.

The first piece occurs at launch. We load all the transactions out of storage and into a database that's kept in RAM; that's what actually makes the app fast while you're using it. You can't actually use OmniFocus without doing this, and while you're using it it's always loaded into that optimized database.

However, scanning your transactions to place them in that fast database can get slow as transactions build up. The second type of optimization deals with that; we compact the XML transactions so that we can scan them more quickly. This part happens automatically any time we sync; we just don't show a specific "optimizing database" progress bar.

Folks [I]that aren't syncing[/I] can force this second type of optimization to occur by tapping a button. Note the emphasis there - if you're syncing, that button gives you no additional benefit, and can, in fact, interfere with syncing. That's why it's disabled. :-)

Upshot here: the optimization really only affects app launch time. If you're syncing, a lot of it is still happening on a continuous basis, and the rest will be taken care of next time the app launches. iOS 4 reduces the need to launch apps, but it doesn't eliminate it. The OS will kill apps in the background if it needs more resources, and if the phone ever reboots, all the apps start from scratch the next time they're launched.

Brian 2010-07-01 04:23 PM

[QUOTE=ifonline;79502]It appears that because the application is in the "background" it never processes a sync during startup.[/QUOTE]

OmniFocus will automatically sync once an hour, or any time the sync button is pressed if you need more frequent updates. It doesn't sync every time it comes to the foreground because folks don't like to wait for sync to finish before they can use the app. :-)

Brian 2010-07-01 04:26 PM

[QUOTE=ifonline;79509]So I'm clear... when I add/edit something on the iPhone, I have to specifically press the sync button or the desktop will never see the changes?[/QUOTE]

I know I'm repeating my last post, but I don't want folks to read this later and get confused. OmniFocus syncs when it's been an hour since the last sync, or when the sync button has been tapped. It's not meant to sync every time the app comes from to the front.


All times are GMT -8. The time now is 01:14 PM.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc.