upbeat.it

by Cesare Rocchi

The App that was Never Born

by Cesare Rocchi

Tags: ios app.net

Becky Hansmeyer posted an interesting challenge. Share some screenshots of your first, and probably not that great, app. I enjoyed Curtis’ take. Here’s is mine. It’s not about my first app. It was supposed to be my fourth. Unfortunately, even if you get your first app right, you can still stumble along the way.

Beginning of May 2014. I get out of the hospital after a sleepless night. A few hours before my daughter was born. Happiness and concern both having a party somewhere in my body. I stood up and took a walk to think a bit. I made the error of checking my email. As I skim I end up on App.net State of Union. Bottom line: I spent my spare time building on an API that was going to slowly die. The first reaction was cursing. The second was realizing the crazy twist of fate: I was experiencing the joy of birth and the sorrow of death at the same time.

A step back

I was about to release Neater, an App.net client for iPhone. Current version was 0.8.2. It was good. I was fixing a few bugs, I already set up the server for push notifications and I was about to finish the dynamic type font settings. The planned release date was by the end of the month, right before WWDC. And then the State of the Union post landed in my RSS reader.

I liked the app. I started it with iOS6. Then iOS7 was announced. Dealing with the mess introduced by the new behavior of the status bar was painful. But I got through it. It was fully accessible, it allowed to swipe back from anywhere on the screen. It was ready for internationalization. It was well done. And yet, just me and a few others used it, just for a while.

After I exhausted my cursing options the important question hit me: “Do I released it anyway?” My intent with Neater was building a great client for App.net, minimal and particularly focused on one-hand usage. I think I cracked it and so thought the beta testers. Some of my motivations were:

  • I wanted an app that was easy to be used with one hand
  • I needed a playground to learn the new APIs and experiment with iOS
  • I planned to make some extra money, not necessarily via the App Store, but also via the Developer Incentive Program.

In the end I didn’t release it. Somebody would have bought it, almost to make me a favor. Then it’d have rotten on their device, along with many other apps that are used just once a year. I could have released it as an open source project. I thought a lot about it, but the code was messy, with patches spread all over the place and a bunch of shortcuts that would have not been a great example to newcomers.

I have learned a lot. Yes, it’s a consolation prize, maybe the only one. I built my own caching system for images, and a custom navigation based on pan gestures. I also learned that if you want to ship fast you probably should not build those components on your own. It this specific case it’d have not mattered, so I am glad I built them.

Here’s a screencast, one of the last versions that I used to pitch potentially interested people.


A step forward

I thought I took a safe bet. App.net APIs terms were generous and the community was really supportive and reactive. It was supposed to be a great platform. And yet, here I am writing this. I can’t help to think that I sort of had to be bitten. If somebody, even a mentor, told me “don’t do it” I would have probably done it anyway. The wound of the Twitter API fiasco was still burning and the advent of App.net looked like a great opportunity to unleash again my inner creative beast.

Since then I have grown a skepticism-first kind of approach. An API looks promising? Ok, let it sink for a while. Get back to it after a few months to see how it is going. Still interesting? Not so much? Move on to the next idea.

Maybe it’s just confirmation bias, but lately I am noticing that companies and solo developers that are in this for the long run tend to control as many aspects as possible of their businesses. That’s how I am approaching my business choices these days.

So newcomers, if you are looking to learn, play with whatever technology/API/SDK/tool you like. Absorb as much knowledge you can along the way and enjoy it.
If you planning to build software in the long run, I invite you to take a step back – just to calm down turbulent guts – before taking a step forward.