Thoughts on Redesigning a Framework
(I haven’t been in the writing lane for a while. In lieu of stuff about life, here I repost an entry from the ObjectiveFlickr blog.)
I haven’t really been taking care of ObjectiveFlickr.framework for a while. For the past few months many things have demanded my attention. In between I’ve attended sfMacIndie SoirĂ©e 2008 and been to this year’s WWDC too. How time flies! I want to apologize for my late response on everything regarding the framework.
Lately we’ve seen fresh influx of discussions on the mailing list. Reading them, I always have this feeling that “it’s time we’ve got to update the framework.” There are a few things that ObjectiveFlickr needs to do better. Some of them are the result of operating system and development environment changes. Here they are:
- Better and clear run loop support
- Proxy support in OFHTTPRequest
- Fixing the delegate implementation–delegate should never be retained
- Support for both 10.4 and 10.5 targets
- Properties
- Linkage against CommonCrypto instead of OpenSSL (libcrypto)
- In with NSXMLParser, out with NSXMLDocument
- Support for the-device-and-the-OS-that-shalt-not-be-named-until-July-11th
Many of the items actually have to do with OFHTTPRequest and OFPOSTRequest, two nifty (I think) wrappers of Cocoa’s NSURLConnection (for receiving data) and CFNetwork‘s CFHTTP stack (for posting data with progress callbacks). I use them all the time in many of my Cocoa projects, but even they feel a bit rusty now.
The removal of OpenSSL and NSXMLDocument dependency has also clear reasons (or, reasons-that-shall-not-be-mentioned).
I’m thinking of a new HTTP request class that solely depends on CFHTTP stack and does not use NSURLConnection. Which means that part needs to be redesigned. The existing OFFlickr* class interfaces look fine, but they’re also a bit wordy compared to their Ruby counterparts, ObjectiveFlickr-Ruby.
Should I create a set of new interfaces that break with the past, or should I maintain the interfaces and swap the internals? This is the question that is troubling me now. I appreciate any feedback on those design decisions.
lukhnos :: Jun.29.2008 :: tekhnologia :: No Comments »