I managed to catch up with Russell Ivanovic, co-founder of Adelaide based company Shifty Jelly for a quick chat about Android development and what it means to be a small app development company in a world dominated by the likes of Rovio and here is what he had to say.
Being a developer of apps for multiple platforms, how is Android different and what unique challenges does it present?
As a developer there are four main areas where Android is quite different to iOS. The first and most obvious is that there are thousands of varying Android devices out there, each running slightly different versions and flavours of Android. Clearly compared to iOS there are a lot more variations and a lot more things you end up having to test for. Interestingly enough at design and development time this is not a huge issue, where it really hurts is when it comes time to test, release and support an application.
The second would be backwards compatibility. Google are obviously up to version 4.2 of Android, and we have to be honest, the last few released have been nothing short of amazing. That said the problem, as everyone I think knows, is that a lot of our customers still run 2.2, 2.3, 4.0 & 4.1 (don’t even get me started on 3.0!). There are devices that have been released by manufacturers which get only a few (if any) updates in their lifetimes, leaving customers stranded on older Android versions, and forcing us to make our code more complicated to maintain that backwards compatibility. It’s only in the latest version of Pocket Casts (v4.0) that we’re finally dropping compatibility with Android 2.2, and I’m sure even that will upset some of our users. I dream of the day we can go 4.0 only and do even more amazing things.
Third is a massive plus: there’s no approval process on Android and you can submit an update to the store and have it go live in as little as 15 minutes. As someone who has to deal with the fun that is the Apple Approval Process you have no idea how great that is!
Finally there’s the toolkit Google provide. Their SDK is solid and well documented, the development tools that they provide are reasonably robust, but compare them to what Apple ships as part of their iOS SDK and they don’t even come close. Apple has a far better IDE in Xcode. Apple ships a far better graphical interface building environment. Apple’s debugging and instrumentation tools are nothing short of amazing. Google has the building blocks of all of the above (well, except the IDE, Eclipse is a terrible thing to wish on your worst enemy) but they just don’t seem committed enough to wrap them up in such a solid product like Apple have.
How do you design the user interface for your apps? If this planned prior to fleshing out the functionality or do you know what you want the app to do and then try to find a UI that best presents that to the users (or a different approach all together)?
We employ a full time designer to design our apps, because if we did it they would be nothing short of terrible. So far you can only see his work in Pocket Weather Australia, but when version 4 of Pocket Casts rolls out you’ll be able to see what an amazing difference a good designer makes.
We tend to decide exactly what a particular release of an app will do, then build pixel perfect images of what the UI will look like before we write a single line of code. That’s not really the end of it though, since we like to iterate on those designs, so once we mock some of it up and you can push the buttons and flick things around we tend to endlessly tweak and change things until pretty much the day we ship the app!
With Android having so many different devices on the market (including phones and tablets) how do you test your apps to ensure compatibility with the majority of devices?
Well for a start we own about 17 different Android devices which we test on. Most of these we had to buy ourselves which often leaves a rather large dent in our pockets. Occasionally manufacturers like HTC & Samsung will be nice enough to loan (or in rare cases give!) us units to test on as well. After that we tend to beta test our apps with a small handful of people who have phones that we don’t. Finally we release our app to the world…which if we’re being honest is the only way you’re going to find most of the issues. In all our new apps we build in live error reporting (through a great framework called ‘HockeyApp’) so we get instant feedback about things like crashes. It’s not unusual for us to release a v3.0 followed very quickly that day by a v3.0.1, v3.0.2, etc. This might seem unprofessional, but in reality only your most hard core fans tend to update the instant a new release comes out, and they help us immensely. By the time most people install our updates, they should be rock solid.
Is software piracy a big issue for you and how do you combat this on the various platforms?
It honestly never has been for Pocket Weather Australia on any platform, but Pocket Casts has been pirated like crazy on Android (it’s as high as 50%). We don’t currently do anything about it except detect pirated copies (the APK is not DRM’d and if your license is invalid nothing happens) but we plan to. I know some people will never buy our app, but we’ve always believed in the old adage of ‘do just enough to keep the honest people honest’ and that’s what we plan to do in future releases. We could argue all day with people about how they think piracy is beneficial to developers, but honestly when you run an app like ours with expensive servers, where the costs go up for each user (paid or pirated) that joins, it simply costs us money. Piracy detection is generally far easier on iOS than Android, mainly due to piracy being far easier on a more open platform like Android.
What are the major costs involved in running an app development company?
Mainly salaries. Good developers can easily earn 100k+ a year working for big companies. We don’t pay our developers quite that much, but we have to pay them enough so that they feel valued and can feed their families. After that would be things like buying hardware to test and develop and all the servers we run. Finally you have more mundane things like rent and insurance and other business costs. People think indie devs run on the fumes from an oily rag, but in reality if you want to do this properly you have to commit to it full time, which for a team of 3 like us means a decent amount of ongoing costs.
How does a small Adelaide based company manage to stay viable when you are selling your app for as little as $2?
Honestly I think most of it is that we got lucky 4 years ago. Our app Pocket Weather Australia on iOS went to #1 in the charts back then, and we’ve built up a loyal following ever since. We always try to treat each and every one of our customers with respect and do crazy things like answer the constant barrage of emails that land in our inbox. In return we ask them to throw us $2 every now and again which I’m happy to say still seems to be working, mostly. Fun fact: last financial year we actually lost $15,000…which depending on how you look at is either an insane amount of money to lose or par for the course. Quite a few other indie devs that we follow have packed up and got really good jobs at bigger companies. With that in mind, I’m still really encouraged that when we released version 3 of Pocket Weather Australia on iOS as a paid update (after 4 years of free updates) people happily gave us their money again. I know $2 is not a lot, but you’d be surprised how crazy people get over $2 and I was really amazed that the majority of our users supported us without even blinking.
There’s an interesting discussion for another time about whether $2 is actually a viable amount to pay for an app, and we’re still thinking about that. I have a feeling most of our apps will slowly become more expensive. Mainly so we can make money (always nice) but more importantly so that we stop this crazy race to the bottom and try to build something more sustainable. If people like us as developers, then we need to plan ahead so that we stay in business and keep delivering them apps (free and paid) that they need and want. If we declare in 6 months time that we’re out of money and closing down, I think our users would have a good reason to ask “Why the heck didn’t you ask us for more money”. We don’t want to ever get greedy, but we also want to make sure that we take pride in what we do, and ask our users to pay when appropriate.
You always manage to come up with some witty comments for you app updates, do you get many in return and what are some of the outstanding ones?
Sure do. Check out shiftyemails.tumblr.com for some of the more classic ones…we really should update that site a bit more than we do.
Is there anything that we should be looking out for in the future from Shifty Jelly?
Pocket Casts v4.0 of course! We’ve been running the alpha internally for a while now, and it’s nothing short of mind blowing. I know, I’d say that because I’m biased, but it really is. Cross device syncing, tablet support, an amazing new Android interface (gone is the poor iOS port of old) and an entirely re-written code base to bring our app into the future. There’s actually even more than that to get excited about in 4.0, but we’re going to keep quiet about the rest of it! I really can’t wait until it’s finally ready to unveil to the world, it feels like we’ve been working on it for so long now!
After that who knows…anything is possible!