August 7, 2014

Are You An Indie Developer?

I wrote about the current discussions and predictions surrounding Indie developers in my previous post. However, I think I tried to tackle a few too many topics in that post and so, didn’t do a good job of discussing one of the more important points that I did want to talk about – what an Indie developer is.

Some of the blog posts I linked to in my previous post seem to narrow the definition of an Indie developer, or rather an Indie iOS developer, down to a very select group of people – developers who develop iOS apps specifically for sale on the Apple app store. Personally, I don’t think this is accurate at all.

People being who they are, maybe the definition is just aimed at creating an exclusive (or elite) club of people 🙂 Or maybe it was just a self-serving definition to justify the argument that Indie iOS developers are getting to be an endangered species – because it’s so hard to make a living on the App store. I don’t know. And I certainly do realize that saying that this was indeed due to one or other reason that I mentioned would be to do an injustice to the original authors – they simply might not have considered things from the same viewpoint as I.

Given that an “Indie” is simply an independent developer, I would think that anybody who works for themselves, and not for another individual, company, or entity for a monthly wage, would be considered an Indie developer. So, whether you make your living on the Apple app store or through consulting for third-parties, if you make your own living and are your own boss, I would consider you to be an Indie. But that’s just me 🙂

I guess the trouble with my definition is that if a consultant can be an Indie, then you can’t claim that Indie developers (or Indie iOS developers, specifically) are not doing well financially and that the future looks gloomy for them. Now you’d think that this would be a good thing, wouldn’t you? But for some, I don’t think things are good unless they are bad 😀 At least, that’s the impression I get about quite a bit of the human race. A lot of us seem to be Eeyores – we just can’t be happy unless we have something to moan and groan about 🙂

Eeyore

To go off on another tangent (if you’ll indulge me), just take a look at the current state of science fiction movies – most of them are full of doom and gloom, showing post-apocalyptic worlds where people are eking out a living or fighting for their lives. Now, I grant you that except for a few notable exceptions, science fiction movies might not always have shown rosy futures. But we seem to be at an exceptionally low point right now. Where’s the hope? Where’s the dream of a better future? And most of all, where the heck are the darn flying cars? 🙂 I prefer science fiction as it used to be, especially in the golden age stories, where we dreamed of a better future. And I want that back!

But to get back to Indie developers, for whatever reason, people want to narrow down the definition of an “Indie”, but I don’t think we should just accept it because somebody says so. Question what people say if that doesn’t make sense, I say.

To be an Indie is a great thing – at least in my book. You work for yourself, you decide your own destiny. And you should be proud of it! And more importantly, it’s not all doom for Indies, you do have a future ahead of you – just decide what you want to do and go for it. The world could be your mollusc of choice 🙂

Tags:
Posted by Fahim at 6:03 am  |  No Comments

August 3, 2014

The Indie Dev Debate

There have been a lot of blog posts and discussions about being an Indie dev and where App Store development might be headed, recently. I certainly don’t belong in the Indie dev category – at least according to Brent Simmons’ definition. But since opinion is free, I thought I’d add my two cents to the discussion 🙂

Since others are discussing their revenue figures, I thought I’d also offer a look at what I’ve made in developing for the Apple App Store. But before I do that, some background might be in order.

I started as a developer close to 25 years ago. I did a lot of work originally on databases and then moved to Windows development around ’98 or ’99. I wasn’t very interested in making money at first and released several apps as freeware. In fact, one of my first apps was a blogging application which allowed you to blog from your desktop and this was back in the days when Blogger and Greymatter were first starting out, in the very early days of blogging.

Time passed and I continued to develop my freeware applications. I moved from the US, where I’d been when I originally started doing my freeware, back to my native Sri Lanka. I eventually thought about charging for my apps, but back then it was impossible to do so from Sri Lanka. In fact, I don’t think you still can do that easily from Sri Lanka, but I don’t know for sure since I’m no longer in Sri Lanka.

Then, while I was still in Sri Lanka, I read about the Apple App Store and how people were earning thousands of dollars a month in revenue on the App Store. I had used Macs before but my main development platform had been Windows up to that point. I decided to try my luck on the App Store and after some discussions with my wife, went out and bought a MacBook, downloaded Xcode and started development. I have not looked back on Windows since then 🙂

I think my first app was submitted to the App Store sometime back in March of 2009. It was a basic nursery rhyme app to keep little kids entertained. It didn’t have good artwork or music since I was relying on what was available in the public domain – I was doing an experiment after all. I believe I coded the app in around two weeks and submitted it.

Of course, I wasn’t expecting to be rolling in money 🙂 In fact, I had no huge expectations at all. I simply wanted to see how things would work out. But I wasn’t going to twiddle my thumbs and wait to see the fate of my first app – I was already working on my second app. However, I wasn’t relying on the income from my apps at all – I was doing other consulting work (not iOS development related) too. The App Store revenue, if any came at all, was supposed to pay for the MacBook and for the Apple developer license. That was it.

Over the course of the next two years or so, I developed around 20 more apps. Most of them developed in about two weeks time or so. Some did well, some sank without a trace 🙂 I provided support when necessary, fixed bugs, updated some of the apps, and continued to work on new ideas and to develop new apps.

But while I did a huge number of apps in my first year and a fair number in my second year, my development pace slowed as my portfolio of iOS apps grew and I started getting consulting jobs from around the globe. Incidentally, I never did any substantial iOS projects in Sri Lanka, where I was still at that time. I think I did one app for an outsourcing company, but they complained about my rates and promised me that I would have more work if I would reduce my rates. I didn’t agree and that was that 🙂

Even then, I believed that where you were didn’t matter – you had to charge what you thought you were worth. But most of the people I talked to about work didn’t seem to believe that 🙂 Even though I delivered most projects in half (or even a quarter, in one case) of the time that it took others, I was still expected to quote the same hourly rate as others from India or Eastern Europe. So my projects were few and far between, but when I did find good clients who appreciated good work, the relationship was a long one. So I wasn’t actually doing badly.

In fact, I was steadily doing more and more contracting work and so work on my personal apps slowed. I probably did about 10 apps in the last few years and while I’m still working on a couple of apps even today, they are personal projects that I want developed for my own use. I’ll probably release them at some point when I feel they are polished enough, but I’m not rushing to release apps as I once used to.

But on to more important matters, if you are reading to find out about the money I’ve made, that is. How much have I made in around five years of App Store presence and over 25 apps submitted? The figure might surprise you (or maybe it won’t) – I only made around $8,000 in that time 🙂 (Yes, I made far more in consulting, but we’re discussing App Store revenue here.)

Here’s a chart showing the breakdown from March ’09 to April ’14. (We had to switch companies in 2014 due to us switching countries – so the revenue since then is under a different company account.)

App Store Sales 2009 - 2014

App Store Sales 2009 – 2014

As the chart above shows, in five years’ time we had over 666,000 downloads but made only about $7,800 from around 25 apps 🙂

Now I must mentions that the above figures aren’t quite accurate. Some of the apps shown above are free apps with advertising and the advertising revenue is not included here since that revenue came from AdMob. I don’t know what the figures there are but if anybody is interested, I can certainly do another post about the ad revenue figures.

But from the App Store itself, we haven’t made a lot of money. Sure, we did meet our original goal of paying for the MacBook and the Apple Developer license (and I think we paid for a few other iDevices we bought along the way too …) but that’s about it.

And the figures look even worse after we moved everything to the new company – over the past three months or so, we’ve made about $55 😀

But I’m not complaining. For one thing, the iOS apps I’ve developed have helped me create a portfolio that initially helped me in getting contract work. As others have also mentioned, each app that I’ve developed has also helped me understand more about iOS development, the App Store, and about developing and working with users in general. And can you really put a price on that kind of experience? I’m not sure you can.

So is being an Indie hard? Yes. Is it impossible? It might be if you narrow the definition of Indie to mean somebody who makes a living by just App Store sales. But even then, it probably isn’t impossible. You just have to figure out your approach, your pricing, and your strategy carefully. And create an app that you really believe in – instead of simply working on something in the hopes of sipping drinks on the beach of your own island that you’d buy with your App Store profits 🙂

But if being an Indie simply means being somebody who works for themselves, who makes their own hours and relies on the money they make from development, whether it is App Store sales or contracting work, instead of relying on a monthly salary, then it becomes much easier 🙂 You still have to work hard, but the road isn’t that difficult. At least, from where I’m standing.

What I’m trying to say is that it’s not all doom and gloom. The App Store has always been a competitive place. Sure the competition is tougher now, but that just means that your app has to be that much better. And if you are determined, I believe you can make it as an Indie whether you start today, or you started in the supposed heyday of the App Store gold rush 🙂

Tags:
Posted by Fahim at 7:21 am  |  No Comments

June 8, 2014

Apple, Swift and the Whining (and oh, how they whine …)

I am not particularly fond of iOS developers who take potshots at Android as if to prove that Apple/iOS is somehow superior. (Or to prove their loyalty to the cause? :p) It feels unwarranted and somewhat cheap. Why argue about whether a hammer is better than a screwdriver or not? Just use the best tool for the job and be done with it! Live and let live.

That said, I also get annoyed when people start talking about Apple as if everything it does is negative just because it’s from Apple. I’ll probably tune out most of these comments most of the time because some of these people just can’t seem to help themselves (and some are simply trolling :p) but sometimes, the sheer amount of illogical commentary just gets me going enough to write about it. This is such an instance 🙂

This is all about Swift (and people’s reaction to Swift). And oh, do I have a lot to say!

To start with, soon after the WWDC keynote announcement for Swift, I started seeing comments along the following lines:

I don’t want to learn another programming language!
(I imagine this to be said in a whiny child’s voice – I think my imagination might be slightly mean …)

That is totally your prerogative, buddy. Nobody is forcing you to learn another language. If you want to develop for iOS, you can still use Objective-C. If you don’t want to develop for iOS, then why do you care?

Why do we need another programming language? Why can’t they have used <insert language of choice here> instead?

What I find interesting about this complaint is that nobody seemed to complain when Google introduced not one, but two new languages in the form of Go and Dart. Or when Facebook introduced Hack.

Of course, to be fair, maybe somebody did complain and I wasn’t paying attention. We pay attention to things we are interested in after all – and I’m very interested in Swift. I wasn’t as interested in the other languages I mention above but I did read about each one when it was introduced. So, to be fair, let’s say some people did complain at the time and that I just don’t remember it being so. But, I do see a lot of complaining about Swift.

When I mentioned that nobody was complaining about Go, Dart, Hack etc. somebody responded with “those languages weren’t developed in secret without an open spec”. Umm … what? Leaving aside the fact that that comment might be inaccurate (with regards to the “secrecy” bit), you can’t create a new language unless you do it in public? Who made this rule? And why wasn’t I informed of it? 😀

It’s simply amazing how people create new rules to justify their own complaints when they aren’t being consistent! Or is that just me being an Apple fanboy? That’s probably it, I’m a fanboy sheep who can’t understand the highly evolved reasoning behind the rules for creating a new language that obviously exist in the rarified circles of computer language designers/developers … or something 🙂

But it gets better. Oh yes, way, way better.

I also came across what purported to be a critique of the Swift language. The author claimed that Swift just didn’t go far enough in its changes. I was interested in reading the post because I wanted to know more about Swift. I wanted to see how it might be improved or to learn about features in other languages which were better/different/interesting.

The article started out well enough, but then we got to the author’s first point – he was not happy that Swift was mutable by default. He had some code to illustrate the point he was making, but the issue was, that that code was wrong. Disregarding the variable naming issues he had in his code, the code he provide just would not compile on Swift. Turns out that he just read the publicly available Swift book but did not actually try anything out on Swift to see if his assumptions were correct.

His justification? Apparently, he could not justify shelling out $99 to download the Xcode 6 beta. Fair enough. But then why talk as if you were an authority on a language that you’d actually not tried out? Why sow misinformation just because you assumed certain things but weren’t sure? If you are a scholar of languages, shouldn’t you know that assumptions land you in trouble? Or is it OK to just spread misinformation out there as long as you get to create another blog post?

I tweeted about the above blog post in general terms, commenting that if somebody were to do a critique of a language, shouldn’t they have at least tried it out first. The response I got to that from somebody else (not the author of the blog post) was to the effect that – “if a language is closed source or platform dependent one need not to (or cannot) try to critique”.

Huh? What? You need not critique a language if it is closed source or platform dependent? So nobody ever took a look at .NET to see how it could be improved? Nobody should examine Java more closely?

How does that compute? I asked this person that. His response? “if someone has to download an SDK of several gigs just to try a language it’s worrisome”.

Leaving aside the fact that it doesn’t even answer my original question, that makes no sense whatsoever, again. Why is it worrisome that you have to download an SDK of several gigs? If you don’t want to download the SDK, fine, don’t do it. But then don’t claim to know the language in the first place. Or, if you do want to critique the language, then shouldn’t you download the SDK and try out the language first?

Colour me confused.

But then I got more feedback/comments – “Languages should be developed independent of platforms. Otherwise there’s very little incentive for putting an effort to learn.”

Where do people come up with this stuff? Do they think that it’s somehow “noble” or “pure” to develop for open source or cross-platform languages? How does that work?

And did this person seriously believe that people don’t put in the effort to learn a language if it was platform dependent? Then how do you explain the popularity of .NET or Delphi or even Objective-C? (Of course, Objective-C is technically cross-platform and so might not qualify as a platform-dependent language …)

I asked him about the whole incentive thing and mentioned that there were lots of people making plenty of money developing for .NET, Delphi, Objective-C etc. Why were these people working with these dead-end (according to him) languages if there was no incentive for them to do so?

His response was “That’s the whole point. Closed-platforms allow select few to rake money on consulting, maintenance & training.”

Wha …….? Evil closed platforms rake in the money doing consultancy, maintenance, and training while nobody makes any money from open-platform products? How does that work? You mean nobody makes any money from open-platform, open-source languages? The poor dears. I feel so bad for these noble souls toiling away on these open languages at this point. I’m almost ready to give up raking in gobs of cash from working for the evil overlords and convert to the pure and noble cause of open languages …

Oh wait, that’s not true! None of the above is true!! What the hell? Open languages developers (probably, given that I don’t have actual figures) make as much money as developers working for closed-source, platform-dependent languages. There is no such divide as he seems to claim. In the old days, this used to be called FUD (fear, uncertainty, and doubt). Microsoft used to claim that you’d get some sort of cooties if you worked with Linux. Now apparently, the shoe is on the other foot and open-source, cross-platform developers are (or to be fair, this particular developer is) using FUD the same way that Microsoft used to. Oh, how things stay the same 🙂

I don’t even know who the “select few” he’s talking about are. Does he really think that there’s some shadowy mafia behind closed-source, platform-dependent language developers who go, “Hey, you, you can take this project and make this much money. But be sure to pay us our cut, capisce?”

And does that mean that I’ve been working for the IT mob all this time? How horrible! (Or how wonderful, if you’ve always loved Goodfellas :D)

Perhaps the person I talked to really believes that open-source, cross-platforms is an idyllic, Arthurian Camelot where everybody gets along and decisions are made democratically, and nobody has to bow down to a shadowy overlord. And maybe he’s right. But that’s not the reality I’ve seen myself and I’ve worked on both sides – I’ve worked on open-source, and closed source, cross-platform and platform-dependent languages. In the end, they are all just tools. (And whether I’m talking about the languages or the people, I’ll let you decide :p)

Yes, I’m straying away from the whole Swift topic. But the above conversations are real. And they illustrate the kind of logic I’ve been encountering and I guess I can either just shake my head and move on, or just jump into the fray. Or, I can blog about it 😀

I really wanted to talk about this article too, but this post is already too long as it is. So I’ll save that rant for another day …

Tags: , ,
Posted by Fahim at 7:26 am  |  2 Comments