KISS
Caio Chassot
lists at caiochassot.com
Sat Jan 16 17:22:22 PST 2010
# KISS: what we need before launching Interface Builder:
- A Rock-solid IMAP layer, wherein lots of the ancient protocol shenanigans are handled. In particular, handling of Gmail IMAP must be flawless. And because google did weird things to it's IMAP implementation, well, this is gonna be fun.
- An abstraction layer on top of IMAP, where we can pretend we don't know about IMAP, but perform IMAPish actions on the mail pool.
- The much discussed storage layer, fast, caching, searchable, spotlightable.
- SMTP: Let's not forget about the part where we actually send mail.
- Raw email encoding/decoding utils. Parsing headers, dealing with multipart, etc. proper handling of unicode/other text encodings.
- Did I miss anything?
So, this is the foundation on which to write an email app. There's little space here for design disagreements, diverging views and expectations, etc. This is the metal, and whatever each of us want out of an app, we're gonna build it on top of these.
I like the idea of a clear metal/porcelain divide. The metal work is hard and focused work, we know where we're going and what we're building.
Interface design is a whole other beast. I'm curious about how that will pan out.
A note on unit testing: I think it's essential here. These things can't break willy-nilly. (On the GUI side, I don't care. If someone loves to write GUI unit testing, go for it.)
More information about the Email-init
mailing list