November 1, 2012
Photosmith v2.2.2 is now available in the App Store. It addresses a couple regression bugs introduced with iOS6 support, including the annoying “images won’t delete” bug. There were one or two small bugs reported by users that were addressed as well.
Official change list:
Fixed regression caused by iOS 6 compatibility fixes
Fixed many small UI bugs
Fixed Bonjour detection of Lightroom
Added additional safety checks around Thumbnail retrieval from Photos.app to prevent crashes
Development continues with new functionality going forward. Stay tuned!
October 12, 2012
Version 2.2.1 of the app was approved by Apple and released in the App Store today.
Version 2.2 included some big under-the-hood changes for iOS6. Because of that, a few new bugs were introduced that needed attention after iOS6 shipped – it’s a constant race to keep up with Apple’s iOS updates (as well as Lightroom!). Version 2.2.1 addresses all the issues that we knew of, plus a few more random bugs. Notably, we spent a lot of time on keywords – those with complex keywords were having trouble. We also spent some time with sync speed, which was greatly improved in the latest plugin.
The biggest bug that was fixed was the images just disappearing at random when you restarted the app or rescanned pictures. It took a while to track down, and the problem ended up being a bug in Apple’s Photos library code. Essentially, we would check to see if the pictures were still around – a simple “is this photo equal to the existing one”, and if not, remove it from the catalog. But as it turns out, the “isEqual” method provided by Apple for that library doesn’t actually work… Developers reading this will understand what a fundamental oversight this is on Apple’s part; however, at the end of the day, the problem is now ours to solve. We submitted the bug to Apple and worked around it in the meanwhile.
In an upcoming post, we’re going to talk about this more and big plans to change how we manage pictures internally going forward.
So where are we heading next? The past few releases have been purely focused on bug fixes. In fact, we released an update every three weeks for the past 6 versions – all minor updates, addressing bugs as reported to us by users. And now, we feel that 2.2.1 is our best release yet. Enough that we’re going to pull back a little and focus on new development going forward. Some will be visual and some will be big changes to how we manage pictures, but all of it is designed to make the app better.
Stay tuned for more info.
• Fixed bug where images would all disappear or be inconsistent on app resume or image rescan. This was caused by Apple's photos API incorrectly failing it's own equality tests.
• Fixed keyword processing to address possible issue with keywords being deleted, duplicated at the root level, or not synced at all
Other important fixes:
• Added an alphabetical slider to the keyword Hierarchy list
• Changed Grid quick index scrolling to scroll by rows instead of section headings and fixed scaling problem where last few sections weren't reachable
• Updated iOS 6 Photo access prompts
• Fixed bug where Sync Now button would flash on/off
• Added support for GPS coordinates when importing from LR.
• Fixed random crash when scrolling the grid caused by thumbnails that were too slow to load from iOS by adding a guard against slow thumbnails.
• Fixed potential crash after connection from eyeFi with invalid card ID
• Fixed bug where keywords could not be deleted from inside the app
• Fixed iOS6 bug where the Photos app error alert wouldn't clear out the error state
• Fixed iOS6 bug where welcome screen background would be rotated incorrectly
October 6, 2012
Version 2.2 of the Lightroom Plugin has been released.
We’ve made some big changes to take advantage of LR 4.x and iOS6, including much faster keyword syncing and GPS support for coordinates created in Lightroom. We also fixed some bugs related to keyword syncing and hierarchies.
Also fixed was a bug where keywords and synonyms would show up in root of the catalog after a sync, although will require v2.2.1 of the app (currently pending review by Apple) to fully resolve. The issue was related to a change in LR 4.x and how it exports images (specifically, how the keywords are exported); this one caught us off guard, since it was an unreported change.
Sync Speed Updates
A number of users have complained about the time to sync. Notably, the time to *re-sync* if there are no or only a few changes. The keyword changes above help out tremendously with this, reducing startup times.
With v2.2 of the plugin, you’ll see some different options at the bottom of the Plugin settings (right click on the publish service and Edit Settings). There are two options:
Changing the selection yields another option:
This should be obvious, but the second option allows for a full keyword sync each time, in case you want to keep your keywords for Photosmith on the iPad the same as your Lightroom keyword hierarchy. The additional option allows you to ignore any keywords that you don’t want to show up in Lightroom.
Lastly, we spent a great deal of time working through the handful of reports we’ve had about inconsistent keyword hierarchies. We’ve made some updates and fixed a couple bugs, and finally thrown everything we can think of at it, and can’t make it break. If you come across something with this version where keywords don’t work right, please let us know.
We created some test catalogs with a dozen images and 15,000 keywords. The time with the 2.1.16 plugin was around 100 seconds to resync, even with no changes. The time with the new plugin using the “faster” option? 5 seconds. The majority of the time was spent churning away with keywords, but with the LR 4.x and iOS6 updates, we’re able to bypass much of that.
We also spent some time optimizing the sync for each image, and was able to that process faster, too.
Keywords in Root
This was an obscure bug. Several people reported that they would add leaf keywords or keywords with synonyms and they would show up later in the root of their Lightroom catalog. We finally tracked this down, after hours of going through syncs with a fine-toothed comb. Turns out that Lightroom is embedding the keywords on export in places we didn’t expect it with LR 4.x, so when Photosmith imported them, it read those into its catalog in addition to the correct ones. The change required both a fix in the plugin and in the app.
However, the existing images in your catalog will still have these keywords. The only way to work around them is, after you’ve updated to v2.2.1 of the app, unselect them from your catalog (Services->iPad Photos, unselect the folders, and rescan), then Purge them (Maintenance->Purge Offline Images), and then re-add them. Confusing, but unfortunately, there’s no other way for the app to know what are valid keywords and what are erroneous ones.
While the plugin has been tested with Lightroom v4.2, we haven’t forgotten about the users who still want to stick with LR 3.x. The plugin changes all still work with LR 3.x, but unfortunately, due to limitations in the earlier plugin architecture, we can’t make it any faster than it is currently. You’ll see different options in Lightroom 3.x for the keywords.
September 19, 2012
Earlier today Photosmith v2.2 was approved by Apple and went live. See the bottom of this post for the full release notes. The major changes are iOS 6 compatibility and switching to the ARC memory management system.
Apple changed a few things under the hood that required us to make some pretty sweeping changes to the code base. Since that was going to require a lot of retesting of the app we decided it was the right time to go ahead and switch to Apple’s ARC memory management system. Previously we had to manually keep up with every usage of memory and release it when done. It’s tedious error-prone work and ARC is the perfect solution to it. We’d put off making the change before now because it was going to mean making such wide-spread changes to the app. Since Apple was forcing us to do that now anyway with iOS 6 we jumped in. We’re happy to report that a) it’s made a minor improvement in speed, b) it’s definitely more stable, and c) the conversion process enabled us to find at least two nasty bugs that have plagued us for months.
Given all the changes involved (455 separate classes) this release has had more testing than any previous one. However, we had to get this out in time for iOS 6 so there are a few smaller fixes still coming in the pipeline for our next update a few weeks from now and then hopefully we’ll be banishing the Camera Roll…
Full Release Notes
- Fixed possible crash during sync
- Fixed remaining <2 values> bug on Caption field
- Fixed keyboard positioning bug in Eye-Fi services drawer
- Fixed launch rotation problem on iOS 6 devices
- Fixed crash when enumerating albums on Services>Import>iPad Photos drawer on iOS 6 devices
- Fixed all Services>Export drawers’ Send button stretching error
- Fixed default tool drawer/filmstrip now launches correctly regardless of last used mode
- Fixed diagnostics page wasn’t loading on iOS 6 devices
- Fixed numerous small memory and error handling fixes identified by static analyzer
- Fixed additional memory leaks in Services controllers
- Fixed bug where images edited in Photos app would cause rendering problems in Photosmith
- Fixed export bug where some rotated images would be rotated incorrectly
August 22, 2012
Version 2.1.3 was uploaded to Apple late last week. It has a whole raft of goodies for everybody! We’ll notify everybody via the blog and Twitter once Apple approves the updates.
There’s no new features in this release but the biggest bug fixes are:
- Fixed keyword problems with unicode characters
- Fixed many localization issues with date/times (ie. grid, loupe, etc.)
- Fixed many rotation issues
- Fixed many UI bugs and thumbnail dragging issues including lockup and orphaned thumbnails
- Fixed many sync stability issues
- Fixed internal uniqueID issue that caused several sync problems, black tiles in Loupe, and other issues.
Please note: Photosmith v2.1.3 will require you to update the plugin to 2.1.3 also before you can sync. We will release the new plugin shortly before the update goes live in iTunes.
Version 2.1.3 is the bug fix release that we had hoped 2.0.1 would be…. We’ve finally gotten to the point where we’re able to do things on our schedule instead of constantly reacting to other’s impetus (although iOS 6 is threatening to derail our progress slightly). We have also benefited mightily from a few dedicated users who have really put in a huge amount of effort to help us find some of the deep and nagging problems that have been so elusive to track down. Claudio and Mike, thank you! You shouldn’t have had to do this but we’re all grateful you have.
A lot of folks assume that since all iPads are roughly equal and that we only sync with Lightroom that everything should be exactly the same for everyone. And since everything is predictable and reproducible any bug that someone encounters is something we must have known about or we just didn’t bother testing. Unfortunately, that is just not true. We have run into some of the weirdest things you’d never believe and we have plenty of support cases that prove otherwise….
On the other hand, the customer’s expectation is that it should “just work” and that is reasonable so that’s why bug releases like this one have happen. It doesn’t matter that things are inconsistent, it’s our job to deal with all of that. So we dedicate weeks of coding to nothing but finding every crazy scenario (and some that aren’t so crazy but we just missed), fix them, and then test the crap out of them. Sometimes, it’s something simple that we should have caught but just never thought of… Like the thumbnail dragging bug that our own Neeley Will found. If you drag and drop with a single finger (like we imagined) everything is fine, but if you happen to drop a second finger down (which most people didn’t realize was happening) while dragging and pause long enough everything went bananas. “Oops”
So, without further ado, here is our official full release notes. (The version in iTunes will be abridged but we spill all of our guts for our loyal readers…)
- Fixed bug where keywords would sometimes be incorrectly split up upon import
- Fixed bug where some imported images wouldn’t import correctly due to required database flush
- Fixed bug for photos in some rotated configurations that cause random blocks to display in Loupe / Fullscreen
- Fixed bug where the status in EyeFi was incorrect after selecting a new card ID
- Fixed bug where the metadata fields would sometimes report <2 values> when only one image is selected
- Added guard for keyword deletion when keyword is possibly null
- Fixed collection offset when dragging images to drop into collection and collection list is scrolled
- Fixed bug where metadata would be extracted twice, once again in the background after the main one ran
- Fixed memory leak that would grow during sync, causing 1000+ image syncs to crash
- Fixed bug where app may crash in certain situations when purging
- Fixed bug where app may lockup when dragging and dropping items that may be offscreen in the grid
- Fixed bug where re-scanning photos would sometimes not properly remove un-selected photos
- Re-worked display for headers in grid view to display proper date/time formatting for international dates
- Added refresh of date/time display in grid/loupe upon app resume so that settings changes would be immediately updated
- When selecting a keyword, the search box is now cleared to match keyword creation behavior
- Added secondary sorting field for filename, so that subsecond sequential shots would be sorted by date and then by filename
- Added guard for reported crashes during thumbnail loading
- Minor speed improvement to Reject flag speed in certain circumstances
- Re-worked unique identifier for photos throughout app. Addresses problems with duplicate images, black tiles, and other random weirdness
- Added alert for auto-enabling of Camera Roll for Lightroom and EyeFi syncs