Several months ago, Apple announced the new Apple TV, a long-awaited update for their TV puck. The new Apple TV finally allowed anyone to write apps for the device, which could be distributed through the App Store. Apple practically gave away prototype devices, and so I was quick to request one. I decided this would be a good opportunity to play around with Swift as well as to learn a new Apple SDK. After overcoming issues with the beta API, I had a finished a bare-bones hangman game. A couple days before the device was available to the public, I uploaded the code to GitHub and announced it on Twitter.
Here’s the code for a simple Hangman game for Apple TV, designed so I could play with Swift and tvOS. Enjoy! https://t.co/Q2wWgaApLM
— Greg Fiumara (@gfiumara)
I didn’t submit the game to the App Store – I made it as a learning experience and didn’t put much effort into it. App review guidelines specifically say:
If your App looks like it was cobbled together in a few days…please brace yourself for rejection.
Imagine my surprise when on Apple TV launch day, I see it in the App Store. That surprise turned to anger when I noticed I wasn’t mentioned. I released this app’s source code publicly, but under the BSD license, letting you do almost anything you want with the code, so long as you retain the original copyright notice. I didn’t want to be responsible for another app. I was practically begging someone to take this minimum viable product and run with it. Let someone else make millions hundreds while I focus on apps that I want to make, just follow the terms of the license. Not only that, but I didn’t create the word lists that power the game, and those authors deserve credit as well.
Within a few hours of e-mailing the developer of the offending app, the app had been removed from the App Store. This wasn’t the response I was expecting, but it’s certainly a valid solution to the problem. I took some time off from my day job the next morning, whipped up some _awful_ graphics, and shipped my own version of the app.
The cargo cult just didn’t seem to stop. Within a few weeks, still more versions of my app were popping up on the App Store without attribution, even going so far as to use derivatives of those novice graphics I made. More e-mails were sent to developers, and those apps were removed from the store as a result.
How does Apple continue to let this happen? What has happened to App Store review? As developers, we are forced to wait for a week or more while some invisible Apple judge reviews our software, to deem it worthy (or not) for public consumption. This is for every update we do, from a brand new app, to a quick bug fix update. And yet, it takes me all of a second to type the word “hangman” into the App Store search box and see multiple apps with identical screenshots. What oversight at Apple is allowing this to happen?
There’s also the open source license. It would take no effort for the developer of an offending app to include a mention of my name where required, or even be so bold as to write an e-mail to me. Not a single developer has. In some cases, I don’t even hear back from the offender after the initial contact. In my opinion, it is incredibly slimy to just download the code to an app, change the name, and re-upload it for sale, but the software license allows that so long as it has been attributed. And yet, no one does – they either take full credit or they don’t ship an app. Why? When did collaboration become a bad thing?
There’s also the app template marketplace that I’ve recently learned about. For just $18, you too can have an attribution-free license to the source code of an Apple TV hangman app. From a quick search of the App Store, many people are scooping up this code, and in some cases, not even bothering to change the app icon artwork. I suppose we saw this before with Flappy Bird clones, but at least the sprites were changed before they shipped.
While I’m not against people selling feature-complete app source code to customers, I am against Apple letting identical apps live in the the App Store. This creates nothing but confusion for a potential customer. If you want to play a simple game of hangman with your child, which of the following near-identical apps do you pick?
Programmers all start learning somewhere, which is why open source is such a great thing. There’s more to programming than code, and young developers need to learn about licenses as well. Get excited about the code you’re copying and pasting. Learn what it does. Make some changes. Open source those changes yourself (if allowed) or push them back to the original developer. Have fun and be an entrepreneur, but more importantly, learn.