June 29th, 2008
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.
Posted in Announcements | 4 Comments »
June 4th, 2007
So I’m going to WWDC 2007 and have signed up for sfMacIndie Soirée the evening before the SJ Keynote Speech. If you will happen to be there, do let me know, perhaps we Flickr-related app developers would have a chance to have a mini meet-up there.
Posted in Announcements | No Comments »
June 4th, 2007
I’m happy to learn that ObjectiveFlickr found its way into two new applications. Zykloid Software’s Posterino is a nifty tool that helps you make posters from your local photo gallery (like iPhoto) and upload the rendered poster to Flickr (or you can send *real, snail-mail-delivered postcards* with it). Pierre Bernard’s HoudahGeo is an easy-to-use geo-tagging software–no matter if you have a GPS-device or not (I belong to the latter group, so this is a great idea), one main feature of which is a nicely executed Google Maps integration and uploading geo-tagged photos to Flickr.
I’m all the more glad that ObjectiveFlickr can be of help in Mac indie software community. This being said, I highly recommended our readers to try out these two applications, they are beautifully made Mac software and to the point!
Posted in Announcements | No Comments »
March 9th, 2007
I fell in love with F-Script instantly. I have heard about it but only started playing with it since yesterday.
Exploring ObjectiveFlickr with F-Script, though, may require a bit hack. We’ll need to create a new class on the fly using FSClass so that we can have delegate and callbacks that receive Flickr invocation returns.
Another approach is to create a new class in OF, let’s call it OFInvocationResponse (echoing OF/Ruby’s FlickrResponse class), we can put error handling and XML data storage into it, and make them delegates. With a new class that acts as data container, we might even be able to proceed on extending ObjectiveFlickr and make it support synchronous method call.
I’ll try both approaches and see which works better. Eventually we should be able to fiddle with ObjectiveFlickr/ObjC as easily as with ObjectiveFlickr/Ruby. Things like irb (interactive Ruby) is Objective-C developer’s envy. F-Script comes in just right.
Posted in Announcements | No Comments »
February 14th, 2007
ObjectiveFlickr is a Flickr API library available in two versions, one for Objective-C (hence its name) and one for Ruby.
This is a major update, and finally the Objective-C version catches up with its Ruby counterpart (in terms of version number at least).
The most important change of this version is that it now works with Flickr’s new original photo URL scheme. Original photos on Flickr will have different “secrets”, and API consumers need to give an extra parameter (original_format) when they call methods like flickr.photo.search in order to get that piece of information.
Photo URL helpers in ObjectiveFlickr (both ObjC and Ruby) have been updated to reflect that change.
Other changes in the Objective-C version include bug fixes, some deprecations, and updates in the demo code. Whereas for the Ruby version we now have HTTP POST support.
The Objective-C version is available at its Google Code hosting site.
Whereas the Ruby version is available at RubyForge and can be installed by simply using “gem install objectiveflickr”.
And of course, this blog.
One interesting note for those who try to run the unit tests of the Ruby version: one of the tests actually brakes when trying to ask flickr.test.echo to echo back a string that contains angle brackets (< and >). It turns out that Flickr actually returns sqaure brackets back in this case, and this has only been happening since mid-January. Other than this quirk, everything should work just fine as in all previous versions.
Posted in Announcements | 7 Comments »
January 9th, 2007
ObjectiveFlickr 0.9.4 (Ruby) is released. This version fixes a serious defect in URL escaping. In short, you couldn’t pass anything that contained HTML entity characters, white spaces, or CJKV characters–anything that requires URL escaping. My thanks for Tim Parkinson who filed this bug.
Now it works well both in unauthenticated and authenticaed calls. Special care must be taken in making authenticated calls, because the signature string must not be escaped when it’s MD5-checksummed.
There’s the asking how the Objective-C version goes. I’m still working on it, and hopefully it will come out soon. I’m thinking whether the version number should sync though…
Posted in Announcements | No Comments »
January 5th, 2007
This is a minor update of ObjectiveFlickr (Ruby), with the added support for “buddy icon” URL generation and a number of renamed methods (the old ones are deprecated, they still work).
For more information, please refer to the release note at RubyForge: http://rubyforge.org/frs/shownotes.php?release_id=8800
Posted in Announcements | No Comments »
December 29th, 2006
Also posted in Flickr API Group.
The Ruby version of the ObjectiveFlickr library has been updated. Version 0.9.2 includes support for Flickr’s new "farm id", now required for newly uploaded photos since the format’s announcement.
Your old code will work without any change. If you also use this library’s helper functions that help you handle the photo information (a hash that stores photo id, server id, "secret", and the newly-added farm id), there should be no problem working with new photos too.
Other minor changes include some refactoring and deprecations that should lead to cleaner code and style. Documentation is also updated. Please refer to its release notes for details.
To install ObjectiveFlickr, simply use "gem install objectiveflickr" for the latest version. The Ruby version is hosted at http://rubyforge.org/projects/objectiveflickr.
The Objective-C version (hosted separately at http://code.google.com/p/objectiveflickr/) will be updated shortly. I’m refactoring part of its code so it may take another few days.
Posted in Announcements | No Comments »
December 27th, 2006
Tristan O’Tierney has written a nifty PhotoBooth plug-in called FlickrBooth, and it uses ObjectiveFlickr. PhotoBooth is an Apple OS X application that makes use of the iSight camera (now built-in in all new Mac laptops) and take quick snapshots. With FlickrBooth, snapshots are also uploaded along the way, it’s just that easy.
It’s a cool plug-in, be sure to check it out from Tristan’s own homepage!
Another interesting note is that someone just made a mod to FlickrBooth so that it becomes 23hqbooth (so that the snapshots are uploaded to 23hq instead). It’s really not a mod on FlickrBooth, but on ObjectiveFlickr! The person who did it simply change the Flickr API endpoint settings in ObjectiveFlickr, recompliled it, and prepared his own copy. Just download his build and put it into FlickrBooth, and it’s morphed!
A great example of how both FlickrBooth and ObjectiveFlickr can be used and extended. Thanks guys!
Posted in Announcements | No Comments »
December 13th, 2006
This is a minor release. Three class methods are added to FlickrInvocation so that creating FlickrInvocation instances is now easier. Call FlickrInvocation’s class method default_api_key, default_shared_secret and default_options once, and you don’t have to repeat yourself again:
FlickrInvocation.default_api_key '(your_api_key_here)'
FlickrInvocation.default_option :raise_exception_on_error => true
# create an instance, you can use e.g. @@f in your Model class
f = FlickrInvocation.new
Update 1: you can either put the above snippet (without the instance creation line) at the bottom of environment.rb of your Rails application, or just put the lines above in any of your model class.
Update 2: One of the perks of using the option :raise_exception_on_error is that if you have to check if the response block (instances of FlickrResponse) has any error. If you remember to supply with exception handlers (rescue blocks), you can always use what’s returned by the call. Plus if you make an mistake in retrieving what’s not in the returned hash, the exception handler can catch that for you too.
Posted in Announcements | 3 Comments »