Blog
How much offline IMAP functionality?
Date: 16/5/2008
So when Scribe v2 is offline I'm going to make the IMAP folders not editable. Or at least your edits may be lost. For instance deleting an IMAP folder won't do anything if you're offline.

Is that reasonable?

Or do you as a user expect that sync will happen in both directions?

At the moment I'm assuming the content on the IMAP server is the latest and making the local cache match that.
Comments:
Ben
16/05/2008 8:16am
I think it is reasonable to not sync change from the local IMAP folder.

When offline, I personally need to be able to read emails, and write new email that would be send when I go online.

I don't need to 'manage' my IMAP folder offline though.

Sultan of Stereo
16/05/2008 6:09pm
I'd like to be able to delete messages, move them around to different folders, etc, while offline. Adding, deleting, and renaming folders isn't as critical. If the changes won't be synced with the IMAP server, I just hope there is some warning. Maybe the change isn't made and then a status bar line notes that change can't be made while offline.
Hoffie
16/05/2008 10:47pm
I would be fine with a warning "need connection" when attempting to move files within IMAP folders, or change folders. Deleting mails and moving downloaded mails to non-IMAP folders could be possible?
fret
17/05/2008 12:06am
Maybe I'll start with just online only editing and slowly add more and more offline functionality as time passes. The way things are working at the moment is that the UI sends a message down to the IMAP thread which either works or not depending on whether the connection is up, and then the thread sends a message back up to the UI to tell it what happened. So in the case that you're not online things like deleting and moving will just fail to work, because the result doesn't come back to the UI. That essentially makes the IMAP folders read only till you go online again. Which is a good place to start. Then like I said, some offline editing capability might be possible in future versions.

The architecture is definitely 3 different layers, the UI (which you're all familiar with), the IMAP object layer (which uses the new storage API) and then the IMAP worker thread. The first 2 layers run solely in the GUI thread and the worker thread has no access to the data in the GUI thread, all sharing of information between the GUI and worker threads is done via the file system. This should ensure that there are no threading bugs. The UI of Scribe isn't really multi-thread safe in the traditional sense, so I'm making strict rules about what threads can touch.
michael
02/07/2008 1:05pm
I think the offline sync should be full. thus changes you do should always reflect when you go online. For the user it should be transparent.
 
Reply
From:
Email (optional): (Will be HTML encoded to evade harvesting)
Message:
 
Remember username and/or email in a cookie.
Notify me of new posts in this thread via email.
BBcode:
[q]text[/q]
[url=link]description[/url]
[img]url_to_image[/img]
[pre]some_code[/pre]
[b]bold_text[/b]