Code by Kevin, Programming, code, business, and other pursuits
Kevin Walzer, software developer.
Subscribe to RSS Feed
Get a syndicated feed of my weblog.
Site design: Skeleton
Two years ago Apple announced the Mac App Store, an Apple-developed sales channel to make finding and purchasing apps an easy process. There was a great deal of excitement among Mac developers about this new opportuntity to reach a wide user base with their applications. I was among those who migrated several products to the App Store.
Unfortunately, for many app developers, the App Store has proven to be a mixed blessing. While it offers many advantages, it also requires many changes to the ways application developers conduct their business. First, it requires submission of an application to Apple for review and approval against a stringent set of guidelines, every time the developer does a release. Apple can and does reject applications, sometimes for reasons that are not clear to the developer. Also, during busy periods at Apple, the review process can take weeks. For an indie developer who may need to push out crucial application updates on short notice--to fix a critical user-reported issue, for instance--this is less than desirable.
Finally, the most contentious part of the Mac App Store process is the requirement that apps run in a "sandbox." The sandbox is an environment of limited privileges for an application, in the name of keeping the user's system secure and preventing unauthorized access to other system resources: that's how Apple has presented the idea. However, in practice, what this means is that developers have to make potentially major changes to their applications' design to allow them to run in the sandbox; in some cases, essential functionality may have to be removed for the app to run at all in the sandbox. In the worst cases, the developer may decide to opt out of the App Store altogether, because the sandbox presents insurmountable hurdles.
Some of my apps have never been in the Mac App Store because their functionality cannot coexist with the Mac App Store guidelines. I've also had to remove an app from the App Store because the gradual implementation of sandboxing meant it would no longer function in that environment. But I've always made an effort to make an application work in the sandbox if all possible. However, I've reached a tipping point. Two months ago I submitted two new applications to the App Store, the first new apps I've developed in years. These apps have since been rejected three times by the App Store reviewers, and at least part of the problem was the permissions I was requesting for these apps in the sandbox environment. Specifically, the sandboxing environment won't let me call a system command-line tool to launch Safari (to view my product's web page) or Mail (so the user can contact me with questions).
This may be a small thing, but to me it's the proverbial straw that breaks the camel's back. I've used this functionality in my apps for years, I regard it as basic--the ability to contact me via an item in the help menu is simple customer service--and I am unwilling to remove it. Restricting such basic system access is simply ridiculous. So I'm not going to play in the sandbox any more.
What this means, in practical terms, is that I will be phasing out my apps' existence in the App Store; the next major update I release for these apps (QuickWho and Manpower) will coincide with their removal from the Mac App Store. I am simply no longer willing to limit my apps' functionality by playing by the sandbox rules. Any current customer who has purchased one of my products via the Mac App Store will be able to upgrade to a non-App Store version for free, per my policy of free upgrades for life. Please contact me privately to discuss the situation. You will not be penalized as a result of my decision to leave the App Store.
This is also going to mean a change in my development processes. For the past couple of years I have had a cramped and limited view of what my apps could do; I wanted to make sure they did not run afoul of App Store guidelines. No more. I will go back to developing the way I prefer: taking full advantage of the Mac's powerful resources.
I do understand Apple's concerns about user security and I do appreciate a different program the company has made available to help ensure user security: Gatekeeper. Gatekeeper allows users on Mountain Lion to configure their system's security settings to not install an application unless it is signed by a valid developer ID, provided by Apple. I am already making use of the Gatekeeper features in my apps and will continue to do so, to ensure that users feel secure with my products.
I'm not concerned about the impact of leaving the App Store on my business. My sales have been relatively steady since I migrated some apps to the App Store; the increase I was hoping for did not materialize. The App Store is not a silver bullet for a developer's bottom line. As a result, I do not see much financial downside in leaving. In fact, by holding up new releases for weeks and even months, I feel the App Store has cost me money. So this decision makes sense in many ways.
Look for releases of my long-held-up new apps in the near future, once I release them from the sandbox.