November 28, 2012
There’s always a debate on whether it’s better to keep an old car going vs. getting a new one. With an older car, you may have problems with the engine, transmission, but you reassure yourself that it’s cheaper to just fix what you have than to trade up. Fast forward a couple months or years. You’re driving down the highway and the car breaks down, leaving you stranded. And as you stand there, waiting for help, you realize the time has come.
We have our own car here within the Photosmith development effort. For two years now, we’ve been using the model as recommended by Apple for centralized iPad picture storage – the built in Photos.app. The underlying library that gives access to the Photos.app is referred to as ALAssets. And while doing this certainly has its advantages for the workflow (namely, one place for your images), it has caused more problems that can even be described in one blog post. The technical shortcomings, oversights, and pitfalls within this library have translated into inordinate amounts of time and effort in development – we’ve had to work around problems that just shouldn’t exist. We’ve submitted multiple bugs and feature requests to Apple, but the problems persist. And, to top all this off, the ALAssets library alone has the biggest effect on the stability of the app. While we can work around some of the problems, we’re finding ourselves left on the side of the road too many times. The time has come to trade in the car.
And that’s exactly what we’re working on – replacing the link-to-Photos.app with an import process. Changing foundational architecture is always painful, but this is a move that is long overdue. We’ve had a couple reported bugs as well, and will be addressing those with the new development effort.
New Import Process
That’s right – we’re revamping the import process. In fact, we’re completely re-working the entire structure of how Photosmith keeps track of images. Going forward, Photosmith will have an actual “Import” dialog, where you can select which pictures you want to pull into the Photosmith sandbox. Once they’re imported, you can do everything you can currently, without the random crashes we’re getting from ALAssets rearing its ugly head. No more waiting for the app to sync on startup every time.
Moving to this model also allows us to re-work the Lightroom sync process. Now the previews will be loaded within the sandbox, and not to the Camera Roll. And if you have an iPad 2/3/4/mini, you’ll be able to import from Lightroom or Eye-Fi and still use the app at the same time (the current popup during sync is a limitation as a result of ALAssets quirks); an iPad 1 doesn’t have the resources to handle the sync and the tagging /viewing of large images at the same time. Also- we’ve been able to re-work sync so that it’s faster, too.
And since we won’t be relying on ALAssets for the images, images will load quicker. Histograms will faster. No more “metadata not yet loaded”.
Preliminary tests are promising. We’ve been able to do 5,000 and 10,000 image syncs from Lightroom, averaging 4 seconds per image upload (about 2x as fast as the current version). The Import dialog is being worked on, and we’ll be able to start processing imports from Photos.app in the next couple days.
And in the event that Apple decides to give developers the ability to download images directly from the camera through the Camera Connection Kit, we’re ready to support that. (Sound nice? We completely agree. Let Apple know.)
Well, this move isn’t without it’s issues. For example, when you delete a picture, what does that mean? Does it delete it in Lightroom or only the preview? What if you’ve imported an original from Photos app? How can you be sure that you’re not about to lose your original data? Should there be a confirmation each and every time? Should there be a trash that you have to empty to confirm?
Every one of these questions may seem obvious at first, but each has it’s own implications logically and with the UI and the workflow that all need to be considered. Yes, you’ll be able to delete, but that delete sword is certainly double-edged.
So, When Will It Be Ready?
In the end, we’d much, much rather be working on new features in the app rather than chasing down demons from ALAssets. And we knew that this new development was going take a fair amount of time. We don’t know exactly how much time – probably “a couple months”. We’re determined to get it right and to heavily test, and know this will just take time. We’ve become very reluctant to release time frames because we just don’t know; what we can do is keep you informed about current progress.
Yes, this will be a free upgrade for all users. We’ll also need to write migration code to move your existing data into the new format.
Right now, we’ve re-designed the database and have started work on the Import dialog and updating the Lightroom sync to support the new system. We’ve started testing core functionality and memory usage for those functions. We’ve pulled in some additional developer help as well to help us refactor some of our existing code and truly cut the cord with ALAssets (namely – doing all our own raw data parsing and not relying on iOS for anything). Exciting times ahead!