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.

Remembary with the new images popover Full-screen photo of Halifax harbour in Remembary

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 Limits

Last 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 go

If 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-Time

If 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 Itself

The 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.

Map popover in Remembary with automatic geotagging

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.

Screencast Tips
Jul 14, 2011 18:54
Other Blog Posts
My Expanded Twitter Thread about BurgerWeek 2021 This Is Nowhere: The Server Side Building a React Native App Without Tears - Part 3 Building a React Native App Without Tears - Part 2 Building a React Native App Without Tears (Mostly) This Is Nowhere: The Memento Edition This Is Nowhere: Aspects of Accessibility Presentations About NowHere This Is Nowhere: Head-First Into React Native This Is Nowhere: Bloomsday Halifax This Is Nowhere: Why an HTML/JavaScript Single-Page App With GPS Is A Bad Idea This Is Nowhere: GPS and Wayfinding and More UX This Is Nowhere: The Single-Button UX This Is Nowhere: Don’t Just Stand There! This Is Nowhere: Finding My Duck Finding Burgers Fast: My DIY Halifax Burger Week Site "This is Nowhere" at PodCamp Halifax 2018 The Diary Diaries: Fixing Remembary's Facebook Connection Special Leap Day Edition of "Some Weird Things About Time" What's Up With Remembary Can't get pg_dump To Work Now That Heroku Has Upgraded Postgresql to 9.4? The Best Thing I Ever Did To Promote My App If You Build It, They WON'T Come #deployaday, My Big Hairy Plan for 2015 Extracting Plain Text from an NSAttributedString My Year of "Hits" Part 2: Remembary Rolling My Year of "Hits" Part 1: Remembary Rises (and Stumbles) Handy Little Test Method to Check for Translations in Rails Apps My Suddenly Slow-Waking MacBook Air Indie App PR: Keeping Control of Your Tone A Quick Note on 'clone' in Rails 3.2 My eBook Apps 2: iOS, JavaScript, and Ruby My eBook Apps 1: Introduction Quick Tip: No Sound on Mountain Lion My Upcoming Talk at PodcampHFX 2012: My Year of "Hits" Building at the Speed of Funny Screencast Tips Remembary's Cool New Picture Support Indie App PR 2: Keeping On Top Of User Feedback Indie App PR 1: How to Handle an App Disaster Giles Bowkett Diary Project 2 Remembary Video Congratulations! Welcome to Your Nightmare! How My iPad App Remembary Took Off Why You Should Have an App in the App Store (Even If You Probably Won't Make Any Money) PodCampHFX Remembary Presentation - Part 3 How I Used MailChimp Autoresponders to Promote Remembary PodCampHFX Remembary Presentation Part 2 PodCampHFX Remembary Presentation Part 1 Why AdWords Ads Don't Work for iPad Apps Remembary is Sponsoring PodcampHFX Why Can't I Resize my Views in Interface Builder? Momento and Remembary Concerning Remembary iPad-Friendly eBooks of Gracian's Art of Worldly Wisdom Project Report: PTOS2 A Quick Note on Encryption We're all LUsers Thoughts on HAML Friday Afternoon Hack - Getting Beyond the Basics Halifax Friday Hack and Back to Basics Quote from Wil Shipley FutureRuby Make Web Not War Busy Week I: Toronto Ruby Job Fair Employment.nil - the Toronto Ruby Job Fair Code Count: Ruby on Rails vs. C#/ASP.NET A Brief Note on Twitter The Hub Halifax and Mobile Tech for Social Change Deep Thoughts on Microsoft From The Accordion Guy The Two Kinds of Defensive Programming Presentation - Fixing Careerious: From C#/.NET to Ruby on Rails Enterprise! Presenting at Ruby on Rails Project Night - May 7th New Name and New Look for Careerious/Clearfit FutureRuby and More From Unspace Health Tips for Programmers This tables meme won't die Careerious - Ruby and Rails vs. C#/.NET Yeah I Use Tables For Layout, So Sue Me The Different Kinds of Done Giles Bowkett's RubyFringe presentation OfficeTime: Great Time-Tracking App for OS X Back With A New Look Non-DRY Feed torontorb Keeping Your Sanity With The Command Design Pattern shindigital Is All Grown Up! (according to the spambots) Startup Stars? I'm so bored! The Magic Words for RMagick Jennifer from Operations You see? Naming is HARD Business Software as Process Documentation Deployment note: 'execve failed' Steve Jobs on Market Research Why Canada Is Better for Entrepreneurs "Program first and blog second" Toronto Tech Collage The MacBook Air Is A Roadster RubyFringe! Quote of the Week: Steve Yegge Starting Up: Cards Great design tool: Starting Up: The Logo Quotes Of The Day: Hedge Fund Interview TSOT Ruby / Rails Presentation Night - Part 1 Moneyworks: Accounting Software for Canadians on OS X Starting Up: The Name Nice logo, but why is your site so bland? Welcome to