Remembary's Cool New Picture Support
Jul 14, 2011 09:10
As I write this, Remembary 1.4 is waiting for App Store approval. Now that it has been submitted, I'm ready to talk more fully about some of the new features in this release.
The biggest new feature in Remembary 1.4 is its support for pictures and video. Picture support has been the number one request from users, and it's the one feature that has been most lacking in Remembary compared with many of the other diary apps in the store.
The thing is, I've been pretty unhappy with how most other iPad diaries handle pictures - and I wanted to do something different and hopefully better for Remembary.
The Problem With Pictures
Media Storage is Difficult
Diaries are mostly text. Text doesn't take up a lot of space, and modern devices can process large amounts of it very quickly. Text is also pretty easy to store and manage in a database or even just in files. Media files, such as pictures and (even more so) videos, are the opposite: they're large, use up a lot of memory and CPU, and are often tricky to handle.
Also, almost every case I've seen of a diary app having trouble during an upgrade and corrupting people's diaries has been because of a problem in handling images or changing the way that they're stored - usually breaking down during some kind of processing-intensive data migration.
Remembary came from years of keeping my own handwritten diaries, and has always been primarily about text. I purposefully didn't add image support before now, because it seemed like it would be very difficult to do well, and a serious source of potential data corruption - something that simply cannot happen in a diary app (and I should know).
The Image Picker Is … Unsatisfactory
If you want to add a picture to almost any iOS app, you eventually end up using the Image Picker. On an iPhone or iPod Touch, it's not too bad - it fills the screen with little thumbnails of your device's photo library, and you can navigate around your photo albums to try to find the right picture. On the iPad, it's still an iPhone-sized popover, which seems kind of small and awkward on the big screen. It mostly works, though, and it's quite easy to plug into an app, and building your own replacement would take a lot of work.
However, it really doesn't fit what Remembary is all about. Remembary is supposed to do all of the sorting and filtering for you - if you're looking at Wednesday July 13 2011, you only get the Tweets, RSS items and Facebook statuses from Wednesday July 13 2011. I really hoped that the Image Picker would have some way of filtering by date - or, at least of showing the date that a particular picture was taken. It doesn't do any of that. As far as I can tell, all a programmer can do with an ImagePicker is make it show up and then go away again once a picture has been selected.
ALAssetLibrary to the Rescue
Starting in iOS 4.0, Apple opened up direct access to the device's photo library, using a framework called ALAssetLibrary. For something so powerful, it hasn't had a lot of fanfare - probably because it's tricky to figure out at first, and the ImagePicker is good enough for most situations. However, I tried a few things with it (with the help of some good books), and it has turned out to be exactly what Remembary needed.
ALAssetLibrary lets you loop through the device's entire library of pictures and videos and pick out certain values, such as the media types, the photo albums that they belong to, thumbnails, links to the full-sized media, and, most importantly for Remembary, the time that they were taken.
Once I figured this out, the next steps were obvious: every time the user loads a day's diary entry, a background operation kicks in that searches through the Asset Library for any pictures or videos from that day and adds any matches to a list. Once it's done (it only takes a second or so), a 'pictures' button shows up at the top of the entry, which the user can tap on to bring up a list of timestamped image and video thumbnails. Tapping on any of these thumbnails brings the picture or video up to full screen, where the user can zoom into and scroll around the picture, or play the video. You can also tap the arrows at the top to browse through all of the pictures and videos for the day, all in full screen and sorted by the time they were taken.
The image search is fast enough that I don't have to store or manage anything in the app itself. I can just ask iOS to do it for me. I like any technology that handles ugly details for me.
Why This Is Great
There are a few really great things about this approach:
It's all automatic.You don't have to worry about which pictures you want to include - you get all of them. Feel like typing in your road journal from that cross-country trip you made in 2006? Remembary already has all of your pictures, already assigned to the correct days.
No LimitsLast summer, I rode in a Cessna flying from Fairbanks Alaska to an island in the Beaufort Sea north of the Arctic Circle. We crossed spectacular forest, mountains, tundra, and ocean - and I took over 500 pictures in one day. Every single one of those pictures (and videos) is attached to that day's diary entry. What's also great about this is that the images still live in the iPad photo library, so there's no space wasted making local copies of these pictures.
Pictures can come and goIf you have too many pictures/videos to fit into your iPad, you can set up smart albums to sync only recent or favourite pictures or videos. If you want to put some movies or TV shows onto your iPad, you can remove some of your pictures to free up space. Once you've finished with the shows, you can put the pictures back - and they'll automatically be returned to the appropriate diary entries.
Instant Real-TimeIf you have an iPad2, you can take pictures or videos directly from within the app - and they're just saved directly to the iPad's photo library, which also makes them show up in the day's entry. Imagine making your own daily 'video diary' directly from Remembary.
It Gets Better All By ItselfThe big announcement at WWDC last month was iCloud, which will automatically sync your photo library between your various devices. Since Remembary is simply using the photo library, it's already set up to take advantage of this. If you take a picture with your iPhone, it will automatically sync to your iPad and will show up in Remembary. If you scan in and tag old photos on your computer, they'll show up, too. This seems like something from a science fiction movie, but it'll be reality in just a few months.
Oh, And One More Thing
When I first tested the Photo Library search on my iPad, I got an odd message box that said "Remembary wants to use your location information. Please confirm." It turns out that this is the warning message that iOS displays the first time that an app tries to access ALAssetLibrary.
"Hmph," I thought, "that's an annoyingly misleading message. I'm just getting the pictures - even if they were geotagged, it's not like I'm putting them on a map or anything… - hmmm wait a minute…"
Turns out that the location information in geotagged pictures is really easy to extract, and almost as easy to put into a scrollable, zoomable map.
So, if you have iPhone or a camera with a built-in GPS (or if you like to tag your pictures manually), you now can see everywhere you've been. This is obviously fantastic for tourists - but it's also great for remembering the little things in your life. Having a nice lunch? Take a quick snapshot with your iPhone while you're there - when you're writing up your diary in Remembary, you'll see a pin in the map over the restaurant, and you can tap on it to see what you were eating.
(Also, while I was at it, I figured out how to get location info out of Tweets, too - so those show up on the map as well).
In the weeks since I implemented this mapping feature, it has changed my life. A quick snapshot is all that's needed now to help remind me of something important in my life. My approach to travel has really changed too. Now I know that any pictures (or videos) I take will be part of a browsable media experience, mapped automatically, and tied into my personal diary.
I'm really looking forward to sharing this cool technology with the rest of the world - and hearing how other people use it.
In the end, this has brought everything back to the original idea of Remembary. For people like me who have trouble keeping a diary regularly, it's great to have lots of reminders and context for your day - now with automatic pictures and maps, it's even easier to remember what's happened.