October 15, 2015
In the Beginning
Nearly 5 years ago, two intrepid guys took their photography hobby and years of development background to the relatively new world of the iPad. The iPad was only 8 months old, iOS 3.2 was the latest and greatest, and Lightroom 3 was just released. It was the gold rush era of apps.
Of course, those two guys were Chris Morse and Chris Horne. We had tried other startups in the past, and Morse had been bringing up the idea of doing an iPad app, but we couldn’t come up with a good concept. Horne went away for a scuba diving trip, and came back with the problem of having to lug a computer on vacation to wade through pictures in Lightroom. With that, the idea of Photosmith was born. Many phone calls, napkin diagrams, notebook sketches, and bookmarks of research later, we finally started coding.
For the next 3 years, we poured our hearts into the app. We gathered input from the photography community via forums, friends, and local photo club meetings. We crafted press releases and press packs. We gave out demos to clubs and groups, and worked hard on support to try to address each problem. We attracted others who joined the team to help with the effort. We issued a lot of updates to address issues. It was exciting and satisfying. It was exhausting and depressing. It was like running for the goal and being beaten and kicked all along the way. It was… a startup.
Apr 23, 2011 - Version 1
The initial version of Photosmith was released. We missed a number of core features in the first round – some were intentional (sync only from iPad to Lightroom, select only one image at a time) to limit the project size, and some were just poor foresight (support only for Canon CR2 and Nikon NEF files). The app was built on iOS 4.2 and the plugin on Lightroom 3.1.
Our enthusiasm for our first release, despite a lot of effort on the details, was quickly squashed by the overwhelming number of requests that we received for new features and bugs. We quickly followed up with a number of minor versions to fix the immediate bugs and add support for more camera formats.
However, we struggled with app crashes- nearly all due to iOS itself. To tap into the Camera Connection Kit, we had to use the built-in photo library tools, and thus Apple’s official photo management library: ALAssets. ALAssets was a poorly designed library, and lamented by developers across the web. Nearly all functions require stopping activity that controls the user interface (a design unique to ALAssets), and even if the function works, it still has a tendency to just crash the app randomly. We were never able to wrangle ALAssets enough to have a usable app.
Jun 2, 2012 – Version 2
We took everything we learned in the first round, brought on a new designer and some other new team members, and reworked the app. It got a whole new user interface, building on top of the existing sync and image management engine that we had already written. The big changes were support for iOS 6, multi-image select, two way sync, and support for the new Retina displays.
As with the first version, we issued over a half dozen updates to address bugs and try to tame more ALAssets bugs, but it was clear that even if our app’s code was completely bug free, it’d never be extremely stable while we relied on ALAssets. So… work started to rid ourselves as much as possible from the integrated beast.
Jun 3, 2013 – Version 3
The most recent major version focused on changes to how the images are stored and managed in the app. Notably, we moved ALAssets out of the main sections of the app and only used it during the import window. And voila – the app was much more stable. Along the way, we brought on another developer to assist with adopting a true raw processing engine natively within the app, and thus added support for nearly all camera raw formats.
The next couple of iOS releases brought major changes:
- iOS 7 brought a brand new interface, requiring new approaches to design, not just slapping in some new graphics.
- iOS 8 brought a brand new Photo app and library, rendering the old ALAssets obsolete (but still available). This new library was a huge improvement over ALAssets, but would require yet another complete rewrite of our image management engine.
The last version of Photosmith was released Mar 20, 2014 – the very last day that iOS 5 apps were allowed. Any app released afterwards had to support iOS 7. We had strived from the very beginning to retain support for iPad 1′s because many of our customers have iPad 1. But after this last version, we were at a crossroads.
We had completely re-written the user interface in Version 2 to support new features and to take advantage of the then-new Retina display. We had later completely re-written the photo management engine to move to a sandbox-model and away from ALAssets after years of pain. With iOS 7, we’d have to re-design the UI again and with iOS 8, we’d have to rework our image management engine again!
And that’s when we put the brakes on. We’re photography enthusiasts and have always worked on Photosmith as a nights-and-weekend project. It was difficult to constantly keep up with ever-changing Lightroom versions, Facebook and Dropbox API’s and other changes. But to have the main operating system make such drastic changes was devastating to morale, and ultimately, the project; it’s demoralizing to constantly re-write the same parts to try to keep up with Apple’s random changes. Especially when we wanted to focus on features, stability, and other app-related features – not just chasing to keep up with what we had.
After our 3.1 version released, the development slowed so we could get our lives back together. Our marriages were on the rocks, we had largely been absent from our kids’ lives, and our health was greatly suffering. The project that we were so passionate about was slowly killing us.
Fast forward to this summer and to iOS 9 beta. iOS 9 introduces another feature that will seriously impact Photosmith: multitasking. Multitasking not only impacts the user interface, but also memory management – it’s hard enough to render 20+ megapixel images when the app has the iPad’s full attention, but having to share the same memory with another app at the same time introduces a whole new set of problems. It also eliminated all possibility of a “new coat of paint” approach to catching up to iOS 7+ style UI instead requiring a throw-the-baby-with-the-bathwater approach.
In the end, the biggest roadblock to development wasn’t the raw time, ideas, or dedication. It was that the platform (iOS mostly) continued to change under us. Yes, progress is good, and software continues to evolve. However, when major changes were required every 12 months just so that the software could continue to operate, it severely cuts into what additional development time is left over for the app itself. Apple has created a fantastic platform with iOS, but is doing a disservice to its developers.
So What Now?
Starting a business is tough work. And yet it’s exhilarating to create something and know that other people value it enough to purchase it. It’s also tough to know when to stop. We’ve had many discussions on what features to work on next; however, we’re facing the prospect of a major overhaul of 500,000 lines of code just to make it work on the current version of iOS. And that’s a tough pill to swallow.
We’ve always gone out of our way to be as fair as possible to our customers – the photography community, including being up front with our customers. That includes stating where we are with the app and where we’re heading. And now we’re letting everyone know that we’re leaving Photosmith where it is. Any further updates would require a time and energy investment for which we simply can’t commit right now.
Stats and Figures
The trend these days seems to open the doors to the vault at the end of a project and show everything. We want to do the same, to share with other app developers and enterprising entrepreneurs so maybe they can benefit from it. Read Chris Morse’s review of Photosmith’s economics and use history, with informative graphs and stats here.
Posted in: Current Progress | Comments Off