On September 12, 2016, Apple notified me that:
We noticed that your app has not been updated in a significant amount of time.
What can I say? it's true. My app, RetroSketch was initially released on June 24, 2010. Less than a month later, (July 15) v1.0.1 came out to improve performance on the newly released iPhone 4 (and its newfangled Retina screen.) The App was featured in the App Store and thanks to that, I managed to make enough money to buy my wife a laptop, but that was about it.
Since then, I've used the app to show off my skills during job interviews and such. It is actually a neat app for that. Everyone tends to underestimate it at first. But as I reveal the features, people appreciate my attention to details and technical chops. So, even though the app doesn't make any significant profits anymore, it still has value to me.
Through the years, as new devices and iOS revisions have been released, I've always gone back and tested if the app still worked or not. It does. Sure, starting with the iPhone 5, the app got surrounded by black bars. Even before then, since it's very inception, the app never really supported Retina screens… well… kinda. The knobs were always rendered with raw CoreGraphics code which always renders super sharp. So even as recently as 2 weeks ago, as I shared my story with a prominent tech journalist at a conference, she commented my graphics looked sharp. So, yeah, while I know the drawings are rendered non-retina, I know most people judge it by the sharpness of the knobs.
So… does my app look or feel dated? Sure. But seriously, it is called RetroSketch and it still does it's job as well as it ever did. Am I complaining that Apple is kicking me out of the store? Not really. I understand what they are doing. Was my app negatively affecting Apple Users' experience of the store? Hell no, but whatever.
I am now forced to decide, let the app die, or rewrite it?
Rewrite it? Couldn't I just update it to comply with modern standards? No, not really worth it. More than six years have gone by since I wrote the app. Everything has changed. You still had to
@synthesize your Objective-C properties (remember declaring ivars in headers?) In 2010 garbage collection was generally disliked and ARC was still a year away, so I stuck to good ol' manual retain and release. CoreMotion didn't exist, so I used UIAccelerometer and rolled my own low pass and high pass filters (one to determine the direction shadows should cast, the other to generate responsive sound effects. I still think RetroSketch is one of the best Maraca simulators in the market) These examples should give you a sense of how out of date the code base is. Don't get me wrong, there are lots of gems, hard fought lessons learned that can be rescued, but there is still a bunch of work to be done.
So to fix RetroSketch means to rewrite it. So… is it worth it?
I think so. I'll never make any significant money from sales, but I still like it as a personal calling card. When I first wrote it, it was as an excuse to learn about CoreGraphics. Now, it can serve a similar purpose again. I'll try to use CALayers this time around instead of using CoreGraphics layers. I'll try rendering shadows with Core Image Filters. Obviousy I should update to CoreMotion and maybe move my old touch handling code to a UIGestureRecognizer.
In the end, I hope RetroSketch 2 will be learning tool and a calling card like its predecessor. I'll let you know how it goes.