iOS5 is an exciting update for the iPad, and things like the Photo Stream are natural fits for Remembary. It turns out, though, that there was a subtle change in the way that iOS5 accesses the iPad photo library which makes the current 1.4.1 version of Remembary not show pictures properly on iOS5 devices.

This problem has been fixed and the latest version has just been submitted to the App Store for review. The update should be out in a week or so. Until then, Remembary 1.4.1 will still work fine for everyone - the only problem being that iOS5 users won't get pictures.

I've cleared the decks and will be devoting the next few weeks to Remembary 2.0, as well as Remembary Express, the 'lite' version for iPhone. Stay tuned for more details!

The details of the problem, for those who like to know about these kinds of things:

Photos are fetched using the ALAssetLibrary API. This API has several methods that go through the iPad's images, and these methods take code blocks that describe what to do with each image group and image.

In earlier versions of iOS, this code block runs sychronously in the context of the calling method, which in Remembary is a NSOperation running in the background in an NSOperationQueue. In iOS5, the blocks run asynchronously, spawning a new thread to walk through the photo library and then instantly continuing on the parent thread. In Remembary 1.4.1, this made the code that updates the button and drop-down list for the current diary entry run before any matching photos had been found - and then when the ALAssetLibrary search blocks finished, the results didn't go anywhere. This also happened with the code that figured out the map points, since it was set up as a dependency on the parent NSOperation in the queue.

The new code in 1.4.2 checks for completion inside the block instead of just running afterwards - and it then calls the update code once the ALAssetLibrary search loops are finished.

... aren't you glad you know this now?

AuthorAndrew Burke