I've been thinking a bit about gmail. Some folks (including me) want a really good gmail client. (For the record, I also want a standard IMAP client, but that's not relevant to this issue.) Gmail does odd things regarding mapping folders to labels.
On plugins, I'm in favour of lots of them, but I don't think that saying "Just make it a plugin" is at all helpful. What's needed is some thoughts on the plugin interface. We can't say "Make Gmail access a plugin" without thinking about how that plugin will interact with the app. Crucially, I think for different kinds of plugins we need different plugin hooks and interfaces. (I've previously mentioned some ideas about content transformation plugins, for example. They'll need different hooks to what I'm talking about now.) This message is going to be a bit rambling, as I try to get some ideas straight, so bear with me :) Essentially where I'm going with this is the plugin does some transformations between the actual IMAP structure and the UI. In Gmail's case, it exposes all the labels (which through IMAP are folders) as smart folders. That way the UI makes sense, since people expect a message to appear in multiple smart folders. It only exposes Inbox, Outbox, Archive and Spam as actual folders. To assign labels, I propose that Letters has a standard labels UI. On a normal IMAP server we do something (assign a custom header? Dunno) to apply the label. On Gmail, our plugin intercepts the Apply Label action and sends the IMAP command to move it to the appropriate folder. This system can work for other things too. Such plugins could tell Letters which folders are for Spam, or Trash, or Outbox, for the specific provider which they refer. Of course, we should probably have a preference for those things when you're using a standard IMAP account, but when you're using a provider-specific plugin then such preferences are hidden. The takeaway message is: expose as much UI in the main app as possible, and let plugins intercept certain actions (like Apply Label or Archive). We don't want every plugin author inventing their own UI for applying a label. Also, let plugins transform the IMAP folder structure into the structure presented in the UI. Thoughts? Thomas _______________________________________________ [email protected] mailing list List help: http://lists.ranchero.com/listinfo.cgi/email-init-ranchero.com
