FYI: OmniDataObjects

Ken Case <[email protected]> Mon, 4 May 2009 07:49:05 -0700
Newsgroups gmane.comp.web.webobjects.eof
Message-ID <[email protected]>
Hi, all, it's been a while!

We still use EOF for one of our internal projects (OmniBugSnacker),  
but as you all know it's getting a little long in the tooth.  (It gets  
harder and harder to keep it limping along with each OS upgrade-- 
really, it's amazing that it still works at all on Leopard after so  
many years and an architecture switch.)

For OmniFocus, we decided to try CoreData since we didn't need to  
store our database on a central server.  (Setting up a central server  
to hold your data is a hard sell for a consumer app anyway.)  It works  
reasonably well for that purpose, and certainly has a more modern API  
than EOF!  When we decided we needed to be able to synchronize that  
data, we recorded the CoreData transactions (insert, update, delete)  
as XML and sent them to a WebDAV server where other clients could read  
them and apply the same changes.  Now, this doesn't exactly replace  
EOF, but it does have some advantages:  you can access your data  
offline, and synchronize it on your own schedule (through  
notifications or on your own schedule or on demand).

Anyway, the reason I mention all this is because when we ported  
OmniFocus to the iPhone last year, we were surprised to find that it  
didn't have CoreData yet--so we ended up writing the pieces we needed  
and releasing them as the OmniDataObjects framework, which we released  
as open source under an MIT license.  Some of those pieces might be  
useful in other contexts; since it's all under an MIT license, you're  
welcome to grab whatever bits you find useful and use them however you  
like.

All of Omni's open source frameworks are now published through github  
(you'll find a link to them at <http://www.omnigroup.com/developer/>),  
and if you want to talk about OmniDataObjects further it has its own  
mailing list (nearly as quiet as this one!) at <http://www.omnigroup.com/mailman/listinfo/omnidataobjects 
 >.

				Cheers,
				Ken