Thoughts on Apple Blocking ‘Hey’ app Update

I have been thinking about the ‘Hey’ app controversy that has been happening this week. I was not sure if I was going to post about it, but I have decided I have thing to say about it. I will not go in-depth into the situation. There are others that have done a much better job than I could.

If you want to read the start of it, you can begin with the original Twitter thread from Basecamp’s co-founder, and Chief Technology Office, David Heinemeier Hansson. The first tweet is below and clicking on it will show the entire thread.

For more comprehensive coverage, check out a TechCrunch piece by Sarah Perez and an interview with Apple’s Senior Vice President of Worldwide Marketing, Phil Schiller TechCrunch’s Matthew Panzarino. Despite the more expansive coverage by others, a brief summary is needed.

Brief Summary

To summarize the issue, Apple is refusing to allow an update for Basecamp’s ‘Hey’ email app, without Basecamp implementing in-app purchasing for subscriptions. Doing so allows Apple to get their 30% cut of the subscription fee. I have some thoughts on this as an independent developer.

My Thoughts

First, this entire situation should be terrifying for all developers. The amount of power that Apple has over the App Store is absolute. They can make or break an independent developer. If Apple is willing to pick on a large developer, then what chance does a small and independent developer have? Ben Thompson, of Stratechery, has heard from numerous companies, “from the smallest companies in the world to the largest”, about how they have been subjected to the same demands as Basecamp, so this is not a one-off situation.

Second, this is very bad from an optics standpoint. Former technology journalist, and super smart techie, Christina Warren sums it up quite nicely:

This is a complete and utter shit show, plain and simple. There have been many examples of Apple doing things that go against the interest of developers. Sometimes these are in the names of customer privacy, which is to be lauded, yet in other situations, the actions are just plainly against the developer.

Third, the timing of this could not have been worse. If this had been, say November, it might not get as much attention, but this is the week before Apple’s World Wide Developer Conference. The week prior to, and of WWDC, the focus is on Apple, its developers, and the new releases. Furthermore, the response from Apple became a focus of the technology community on the same day that the European Union began investigating Apple for its App Store practices.

What did not help was the tone of the response to Basecamp. As Ben Thompson and John Gruber stated on their June 19th episode of their podcast Dithering, typically “Apple is a measure twice and cut once company”, also stated, and I am paraphrasing, “it could be that Apple felt pressure to respond” as to not have the story continue into WWDC week, when they want the focus to be on the new releases.

From Ben Thompson’s June 18th Stratechery newsletter:

Everyone else is absolutely terrified of Apple — again, from the smallest companies in the world to the largest.

In fact, I would go so far as to say that executives in the tech industry are more afraid of Apple in 2020 than they were of Microsoft two decades ago. App Store Review is such an absolute gatekeeper, and the number of ways that Apple can retaliate are so varied and hard to verify, that no one is willing to publicly breathe a word against the company.

This last sentence is the part that I think is the most problematic. Microsoft had quite a strong hold on the internet browser market in the mid-1990s that it was difficult for anyone else to make a dent into the market, because the browser was built into the operating system with no way to uninstall. I would venture to say that their stranglehold is somewhat similar to the way that Google has used its dominate market position to force changes that go against the open web standards, but that is a different topic entirely. The result of these practices was the infamous Microsoft was an anti-trust trial that resulted in Microsoft having to unbundle their internet browser from the operating system and provide users with alternatives. It it unknown what a similar trial for Apple would result in.

The arbitrary nature of the App Store approval process is not new. Many Apple developers have stated that sometimes it comes to the luck of the draw as to whether or not your app will get rejected for any reason. This is due to the “Monday Morning Reviewer” syndrome and the whims of the reviewer. For instance, you could submit your app for approval, have it get rejected for some reason, make a minor change or no change at all except for a build number, then resubmit and it will be approved. This shows the arbitrary nature of the App Store reviewers and the inconsistencies between them.

Lastly, many have stated that Apple’s priorities are as follows:

  1. Apple
  2. Customers
  3. Developer third.

This seems to be borne out in practice. Apple is first and foremost a public company. Their valuation depends on investors paying more for shares of the company and their primary focus is making more money. Customers coming second also makes sense, because Apple cannot make money without customers.

However, having developers being last does not always make sense. I think Apple forgets that a vast majority of its developers, 99.9%, are also their customers, just as much as their non-developer customers are their customers. Developers, who have inarguably helped build the App Store and Apple into the company that they are today, are the same ones who buy Apple’s products. They have to do so, in order to build an app and have it in the App Store. Outside of this, developers are often the ones telling their friends and family to purchase Apple products and bringing people into the Apple ecosystem. The reason that they do this is not just because they are developers, but because they also enjoy using the products.

What I think Apple seems to forget is that yes, they built the platform, however it is is the developers who have created the apps in the App Store. The apps have driven demand for Apple’s products and the App Store in general. I understand that Apple has seen falling demand for the physical products and wants to wants/needs to shift to services as their primary source of revenue. This approach makes sense, but not to the extent where it will begin pushing developers to think about releasing new apps and I honestly could see some developers opting for other platforms and foregoing Apple’s platforms entirely.

Furthermore, I would not be surprised if we starting seeing MORE apps that utilize cross-platform frameworks, like Electron, instead of fewer. The reason I think this is because if a developer uses one of these and Apple decides that they want to pull their app from the store, then their development workflow does not change much and they still can make money from their work. This results in a worse experience, but when you are at the whims of an arbitrary set of rules, you may not have a choice.

If you ask any developer who has been building apps for the App Store for any length of time to describe an instance when their app was rejected, each and every developer would invariably have an example to share. I am no exception to this.

My Experiences

I will state outright that I do not make my primary living from the App Store. The amount I have made from the App Store does not even cover the developer fees that I have paid. Even with that though, I still do have two apps on the App Store, and I also use my developer account to be able to download and install beta releases of Apple’s platforms, for my books, so I do rely on my developer account. I have been paying for my Apple Developer account since 2008 when the iOS SDK was announced, so I am not a newbie to the App Store and the Apple developer community. This entire situation makes me quite hesitant to develop any new applications, because they can be rejected for any reason, and at any point. It is not likely that Apple would remove an already published app from the store, but it has been done.

Since my app has been on the App Store for over 10 years, I have had my fair share of app rejections. Most of these were due to mistakes on my end (like app crashes and buttons not working, or missing metadata, missing entitlements, and other minor blunders), but two that I can think of right now, were not. The first instance was when my App was rejected because Apple wanted to ask about how I used a specific feature. Instead of just putting a hold on the release, they outright rejected the app. No developer likes to have their application rejected and having it rejected for something like this seems counter-intuitive.

The second, and more time consuming issue, was when I was forced to change the name of my ad-supported app, because it contained the word “free” in the name. The app had been in the store for 8 years at that point and there was no issue up until that point. This is a prime example of rule re-interpretation. Neither of these really impacted my revenue since my app has had $635 in total sales since being released in 2010. The time consuming aspect was not the fact that the name had to be changed, but this version is the one where I introduced app icons. This caused me extensive amounts of time. First, I had to come up with a new name. Next I had to make the necessary code changes, re-create the icons, and then re-import all of them. Each icon had to be individually imported and with 14 icons and 18 different sizes for each one, this meant 252 individual icons that needed to be imported. Needless to say it was a lot of work for a change that did not need to be done, except on the whims of an Apple App Store decision.

Possible Solution

I do have an idea, which might be a compromise, but would take significant work on Apple’s part. Right now there is no way to side-load an app onto iOS. I think Apple should create the ability to do so. This could, and should be, in the same manner as macOS apps that cannot, or their developers prefer not, to have them on the Mac App Store. In other words they need to be notarized.

These apps would still get the same protections that apps on MacOS get, in that they will be checked for malicious code, individual app versions can be removed. Additionally, these apps could be distributed outside of the App Store. With this approach, these apps could be allowed to use their own payment processing, but they would still be protected by the App Store. Sandboxing can be enforced and required. Alternatively, maybe it does go through a full App Store review, and a downloadable, distributable version that is counter-signed by Apple is provided.

This could be a special type of app that would not be allowed to be distributed on the App Store and it would still need to be verified before it can run. This would require significant work for Apple, not only on the App Store side, but also on iOS. They would have to build the ability to side-load apps onto iOS, which is not available now.

I do not claim that this is the best approach and I am sure that I am missing somethings that could cause the idea to not be a worthwhile pursuit, but it is something that can be looked into. It would mean additional work for users to obtain these. However, all around it could allow developers to be able to provide their apps in a secure manner and the slight relaxation of the rules for these apps would generate good will amongst developers and users.

Even if Apple were to begin working on this now and make it a priority, it will likely be a year before we will see this come to fruition. However, considering the amount of time that things like this take, it would not be something we would see for years.

Closing Thoughts

I do not think this is a one-off situation, nor the last time that this type of controversy will erupt. There have been rumblings that Apple specifically targets popular developers to make examples of them, specifically because of the popularity of the app. The developers often do not have any choice but to comply. In this particular case, Basecamp is not complying, they are going to fight.

While I understand that the App Store rules are intentionally not black and white, as to allow some interpretation, and that the rules do not explicitly state what is allowed versus not allowed, in this case I do think Apple is making a mistake by not applying the rules consistently. This line from Apple’s response to Basecamp is contrary to what they are doing:

We are happy to continue to support you in your app business and offer you the solutions to provide your services for free — so long as you follow and respect the same App Store Review Guidelines and terms that all developers must follow.

There has not been consistency and enforcement of the rules. There are big companies who can get away with many things without having their apps pulled and their developer accounts cancelled. One big example is Facebook. They used background APIs to listen as well as always track users. At the same time, if a small developer did this, their app was removed and their developer account cancelled.

Sadly, I do not think Apple will be changing its mind on this. I think it will come down to Apple’s hand being forced by laws and rulings that they are compelled to comply with in order for there to be any meaningful change. Unfortunately, this is not a fast process and it will take time for the investigation by the European Union to conclude. Getting a law passed in the United States, in the current political climate, is not likely either. This means that many developers will likely have no choice but comply with Apple’s demands or face losing their livelihoods.

As is the case with many other developers, I am somewhat concerned about talking about the topic for fear that Apple will find it, read it, and not like what I have posted and then remove my developer account, but as you can see, I did post the article.