Crème 2 is done

July 16, 2011

Recently, it’s been hard for me. Not just one annoying afternoon, but for weeks and months, like, really, mindnumbingly frustratingly agonizingly fucking hard.

It’s been hard to motivate myself to wrap up Crème 2.

But now it’s done. Crème 2 is out.

Crème was my first real iPhone app. I was well-meaning but naïve in some of the engineering choices I made, and the product structurally ended up in a place from where there was no easy way out, other than rewriting large parts of the core.

It was a vicious loop with the previous version. It didn’t have any users because it was a shitty product, and it was a shitty product because I didn’t have too much users or sales and found it hard to keep going at times.

I almost abandoned the project a few months ago. But two things kept me going.

One, I simply cannot stand something shitty being out there that bears my name. It’s unacceptable. It either needs to disappear, or it needs to become good.

I tried other Twitter apps on my iPhone. Two current leading ones are the official one and Tweetbot. But I found myself missing Crème’s concept and didn’t like how they treat lists as second-class citizens, and nobody else has read/unread.

So I buckled up, took a deep breath, and went yak shaving. Instead of working on new features, I spent tons of time cleaning up and rewriting the internals. Since I’m still kind of a n00b, a lot of time went on researching and experimenting and testing, not just coding. I put lots of hours into it, and eventually got my act together.

The good thing is, I learned tons about storage and efficiency and SQLite and little iOS nuances and Grand Central Dispatch and blocks and manning up to cut features while still maintaining (actually improving) the interface quality and many other things that apps consist of these days. I’ve come out smarter.

Finally, Crème is for the first time something I’d call a decent product. It’s not yet perfect, but it’s way better than it ever was.

And I don’t have 14-hour days any more for a while where I would do a full days work at my day job, and then come home to build Crème for some more hours, test it in bed before falling asleep and the first thing waking up, note the bugs, and get back to tracking them down that night, and so on. It’s great to finally have free nights and weekends.

I’ve had to make some cuts in the process. For example, I decided that cloud sync is still an excellent idea and will probably come back in some shape or form one day, but for the time being, it’s expensive and annoying for me to maintain, so for a while, it is no more. Too bad that Apple’s iCloud doesn’t really help developers with this: while it supports key-value store of the nature needed by Crème, it’s limited in space and the whole thing is more geared towards document storage. I really think there’s a startup idea in a nice developer-oriented key-value store service, sort of “iCloud on drugs for any app.” I’m thinking of cleaning up my code and releasing it to this end.

Crème is now no longer in a place where its development is hampered by broken internals, and I can get back to making more useful features. Instapaper is a good example. People have also asked for things like translating. Google Translate is shutting down their API, but there are worthy candidates like Bing. Send more ideas my way about what Crème could do for you, and I’ll get to them.

But first, I’ll take a bit of a break.