It’s been just over two weeks since our post about our Amazon App Store experience, so we thought we’d give you a quick update:
- We received A LOT of unexpected press coverage, everyone from Daring Fireball to podcasts like Tech News Today and Buzz Out Loud. Since our goal was to raise awareness of how the Free App Of The Day Promotion works, I think we’ve succeeded there. Anyone who thinks this was a calculated marketing ploy, clearly has very little idea about how clueless about marketing we are, and just how hard it is to get covered by some of these publications.
- The next most amazing thing was the volume of people that wrote into us with their support, and their stories about how they had since purchased our app, and just how much they loved it. To each and every one of those people, we thank you, we really do. Let it never be said that Android users don’t pay for apps or care about developers.
- There is still some confusion as to why we did what we did, and the answer is really simple: we were angry about the strict privacy Amazon enforces around these back door deals, and we wanted to expose them.
- There’s no denying that other developers in the same situation as us, would have been jumping for joy at the exposure that 100,000+ downloads brings. More power to you, it may well be in some situations it would be a great thing.
Thank you for your message. We need to verify that you are removing the same app(s) from any Similar Services (defined as any Android OS application store which distributes in the U.S. and its territories and possessions) at the same time barring other agreements that may prevent you from listing the app(s) in the Amazon Appstore. Please refer to the Distribution Agreement for Amazon Appstore:
3.a. Delivery Commitment for Apps. You will deliver electronically to us and continue to make available during the Term all versions of all software applications, games or other digital products (including any special or collector’s editions) (i) that are designed for the Platform, (ii) for which you have the rights required under this Agreement, and (iii) that are the same versions and editions (except as otherwise provided in this Agreement) that you or your affiliates make available directly or indirectly to any Similar Service….
Please respond to confirm that your request for app(s) withdrawal is compliant with our policies. Once we hear back from you, we will verify and then let you know how we will proceed.
That’s right, they responded asking us to remove our application from the Google Market, and then they would let us know how they would proceed. Needless to say that creeped us out a bit, but again it’s a case of read the developer agreement (every last page of it) before signing up. Easy to say in retrospect, but admit it, how many developers out there read every single one Apple/Google send out to them before clicking ‘I Agree’?
Finally we gave up and asked them to terminate our developer agreement, a full week later, we received this response:
Thank you for your email requesting termination of your Amazon Appstore Distribution Agreement. Your account is terminated.
Feel free to read that in the ‘Arnie’ voice, it really does make it sound better. So far we’ve yet to figure out what being ‘terminated’ means, since we can still log into their admin area, and they still have our app in the ‘suppressed’ state. If that means new people can’t buy it, but people that have it currently can update to the latest version, then we’re all for that. If on the other hand it means one day they can just start selling it again, well you’d hope not, but at this stage nothing would surprise us.
Finally they sent us a cheque for around $700 representing 3 months worth of app sales, addressed to ‘RUSSELL RUSSELL’. It’s no doubt safe to assume that was a clerical error (since no Russell Russell works here), but I’d like to think they issued us a cheque we couldn’t bank as a final act of defiance, to show who The Boss really is. Sorry Jeff, want to hug and make up?
If you really haven’t had enough, then I think you could do far worse than watch Rob Woodbridge’s interview with our own Russell Ivanovic. It goes through the full history of our company up to this point, and why we did what we did. It really puts a human side to this whole nonsense, which is so often missed in reporting: [Flash Version] [Direct Link]
About 3 months ago, we set off on a little experiment into the world of the Amazon App Store. Back then people were hailing it as the solution to the problems with the Google Market, industry pundits like Andy Ihnatko called it ‘An Excellent Work in Progress‘.
Amazon’s biggest feature by far, has been their Free App Of The Day promotion. Publicly their terms say that they pay developers 20% of the asking price of an app, even when they give it away free. To both consumers and naive developers alike, this seems like a big chance to make something rare in the Android world: real money. But here’s the dirty secret Amazon don’t want you to know, they don’t pay developers a single cent. Before being featured by Amazon, you get an email like this one:
As you may already know, the Free App of the Day offer placement is one of the most visible and valuable spaces on the Amazon Appstore. We would like to include your app “[name removed]” in our Free App of the Day calendar. We have seen tremendous results from this promotion spot and believe it will bring you a great deal of positive reviews and traffic. It is an opportunity to build your brand especially in association with a brand like Amazon’s. The current price of this placement is at 0% rev share for that one day you are placed.
The emphasis there was actually added by them in their email. So we asked them to confirm, what seemed a ridiculous proposition:
Thanks for emailing us. If I read this correctly you’d like to give away our application for free, and pay us nothing? That’s very generous of you, but we like being paid for our work. I appreciate that Amazon is trying to build up it’s store, and get more users, but the problem is at the moment you have the reputation of being ‘The place where I get my free apps’ and for a developer like us who doesn’t put advertising into our applications, that can only be a bad thing.
We’d be happy to reconsider if you decided to pay us the 20% that we agreed to in our original developer agreement, but this new one seems to favour only you, at the expense of us?
To which they responded:
Thanks for your response. The Free App of the Day promotion is the most valuable and visible spot in the store. It hosted the launch of the likes of Angry Birds Rio, Plants v. Zombies and more. Amazon will not receive any sales rev share from the Free App of the Day; and in fact, with as the Free of the Day for one day, you will receive a subsequent Appstore main page placement for the following 14 days.
All these highly valuable placements are at no cost to you. We want to promote your app and in exchange of the placements, at the 0% rev share for one day only.
All this seemed way too one sided to us, Amazon is being predatory here, and asking developers (who are often desperate for exposure) to give away their app, in order to promote Amazon. A heated debate broke out in our office about whether we should or not. I was firmly against, my business partner for. In the end we agreed that we had entered the world of Android development as an experiment, and it would seem silly not to add more data to the experiment we were conducting. The day of our promotion came:
That’s right, Amazon gave away 101,491 copies of our app! At this point, we had a few seconds of excitement as well, had we mis-read the email and really earned $54,800 in one day? We would have done if our public agreement was in place, but we can now confirm that thanks to Amazon’s secret back-door deals, we made $0 on that day. That’s right, over 100,000 apps given away, $0 made. Did the exposure count for much in the days afterwards? That’s also a big no, the day after saw a blip in sales, followed by things going back to exactly where we started, selling a few apps a day. In fact Amazon decided to rub salt in the wounds a little further by discounting our app to 99 cents for a few days after the free promotion. All we got was about 300 emails a day to answer over the space of a few weeks, that left us tired and burnt out. For all we know most of the people who wanted our application, now have it. To add insult to injury Pocket Casts relies on a server to parse podcast feeds (allowing instant updates on your phone), and all these new users forced us to buy more hardware just to meet demand. Hardware that we are going to have to support indefinitely at our own cost.
What makes us mad though is the public perception that Amazon pays developers to be featured. Every single person we asked on Twitter or via email thought they were helping developers out, and getting a free application. Amazon does nothing to dispel these rumours, in fact they put really restrictive clauses at the bottom of their emails, saying that no one is even allowed to discuss these back door deals they are doing. But that’s not our only beef with Amazon:
- Lengthy review times of anywhere up to 2 weeks (I’ve lost count of the amount of emails from people asking why our Google Market app is newer)
- Amazon gets to set the price of your app to whatever they want, without any input from you, or even the chance to reject their price
- Amazon re-writes your description, and in ours they even made up things like ‘add up to 100 podcasts’. No idea where on earth they got that number from
- Amazon don’t provide error reports like Google do making it hard to fix errors
- They don’t yet support Google’s new multiple APK initiative
- Amazon pays far later than Google does, and to date we haven’t received any cheques from them, even though we are listed as being ‘payed’
- US Only
- Much less real-time sales information than Google
- Update: (and this one surprised us) you can’t remove apps from their store! You have to ask them for permission via an email. Every other store lets you remove apps from sale.
We can see the counter argument here, that we agreed to Amazon’s terms, even if they were underhanded and secret, so we deserve everything we got. Perhaps. I guess it’s just lucky for us that this was an experiment, and that we don’t make our full time income from selling Android apps, but rather from developing for iOS. That said, we want to make a clear stand here, so that Amazon doesn’t take advantage of those less fortunate than us.
So today we’re making a stand. Effective immediately we are removing ourselves from the Amazon Store. We’re not the only ones doing this.
To anyone who paid for our app in the Amazon Store (yes all 200 or so of you!), we apologise for the inconvenience. If you choose to come and join us in the Google Market, and want a refund for that purchase, we will be more than happy to oblige. Contact us for more details. To those who got the app free from Amazon, we’re sorry to say there won’t be any more updates. We won’t cripple your app in any way, it will continue to work…but then if you like it that much, you could do worse than throw $2 our way😉
- We’ve turned off comments because they were getting to hard to moderate, plus I think we’ve pretty much got all the point of views now. We enjoyed the feedback though, good and bad
- Yes we got what we signed up for, that’s not our beef. This article sums up our contention better than we perhaps did: http://techcrunch.com/2011/08/02/amazons-appstore-youll-make-0-when-we-give-your-app-away-and-youll-like-it/
- Our app status in Amazon now says ‘suppressed’ no idea what that means, but it does sound a bit comical/sinister😉
- My personal favourites are the conspiracy theorists “BUT YOU DIDN’T SHOW SALES AFTERWARDS, YOU GUYS MUST HAVE MADE MILLIONS”. I was almost tempted to post “Dang nab it, you caught us red handed” as a joke, but no doubt that would just get out of hand. Here you go July sales (we were featured on the 27th of June, -10 points if you ask for June 28-30th, now you’re just being silly ;-P):
Well after a false start yesterday, it finally happened! My Frame (the little app that could) is now back in the App Store:
So what happened? Well here’s a rough timeline:
- 28th May: A new version of My Frame was approved for sale in the App Store (v1.3).
- May 31st: Apple calls telling us that My Frame is to be removed from the App Store. No firm reason is given, just something vague about having widgets. We then email Steve himself and he states: “We are not allowing apps that create their own desktops. Sorry.”.
- June 2nd Apple removes My Frame from the store. International Outrage occurs. There are riots, looting and pillaging in the streets of the worlds capitals (ok, that last part may be a slight exaggeration).
- June 3rd We give up all hope of ever seeing My Frame in the store again.
- June 5th We begin a dialogue with Apple to get My Frame back in the store. I use the word ‘dialogue’ kindly, really it’s more of a monologue. It started positively with them sending us an email asking us to call them, but after that it was all one way traffic. We send emails. They ignore us. We call them, they don’t call us back.
- Somewhere in June: We decide to take a punt and submit My Frame minus the Twitter and Stickies functions. Not based on any specific advice from Apple, but as a random guess as to what they may object to. We have some minor success with our contact at Apple, who ends up being very helpful, but is still not able to tell us what to change or whether we’ll be approved as part of our review.
- June 25th: My Frame is finally approved for sale…and then gets removed from the store 30 minutes later. This time Apple did answer our calls, and told us it was a mix up with some master override they have to change.
- June 26th: My Frame appears in the store, after it’s month long hiatus. Several seconds later, the “where are Twitter and Stickies” emails begin to arrive in our inbox. Here’s the ironic part: we can’t say ‘removed at the request of Apple’ because Apple never requested anything…leaving us in a very weird place.
So what’s the moral of the story? Certainly there are many, but I’m not your mum, and I don’t intend to expound them for you. Needless to say getting stuffed around for a month wasn’t pleasant, but we are pleased that we are now back in the store. We still have no clear direction as to what we can do with the future of My Frame, but no doubt we’ll continue to develop it like the mad fools that we are. So what are you waiting for, go grab it if you haven’t already and join us on board our Little App That Could…and repeat after me: “I think I can, I think I can, I think I can”!
A wise man once said ‘never pen a word in anger’, he was going to say more, but I punched him in the face. Years later I realised his advice was straight and true, unlike his nose. Jokes aside I thought I’d give a quick update on the My Frame situation, and also what our plans are for the future. Since some people are confused by the hierarchy of Shiftyjelly, Groundhog Software, and myself, allow me to explain. I work at Groundhog Software as my full time job, we do custom software solutions for almost any environment (be it Enterprise Java, SOA integration or iPhone applications). Shiftyjelly is just a part time company I run with 3 other mates (a programmer and 2 designers) That history lesson is important in understanding that each of us is going to respond to Apple differently. So My Frame and Tennis Stats are Groundhog Software products, while things like Pocket Weather HD were made by Shiftyjelly.
In terms of My Frame Apple has now contacted Groundhog via email and we are setting up a phone call so we can discuss the situation and come to an amicable conclusion. While that doesn’t excuse them for how they treated us, we are glad to see that they are taking steps to address it, and they’ve even allowed us to submit a modified version of My Frame back to the store. We hope that they’ll give us enough clear guidance so that we can develop future version of My Frame without fear of wasting valuable time and effort. Only time will tell, but these are certainly some positive steps.
In terms of Shiftyjelly our Pocket Weather AU HD product skyrocketed up to be the #1 paid app here in the Australian app store. That’s not us bragging, but it’s an important consideration in what we’re going to do going forward. I freely admit I considered pulling all of our Shiftyjelly applications from the store out of protest, and throwing in the towel. Having taken a few days to cool down though, I realised that wouldn’t be fair to all our customers who have supported us over the years by buying our products, and helping us improve them. You have to go where your customers are, and it would be naive of us to think that anything we did would convince many of them to switch their phones. In all fairness we make money off those products as well, which while it’s not our primary concern or goal, certainly helps when you have 2 kids in nappies. So we’re not changing our development strategy, but we have made one key decision: we are going to try our best to bring Pocket Weather AU to the Android platform. Partly out of protest, but also because Android is growing (albeit slowly) here in Australia. We’re not going to make anywhere near the money we do on our iPhone product (we may not even pay back the costs of buying development handsets) but it’s something we feel is the right thing to do. There will be some hurdles to overcome, like the fact that Google currently doesn’t allow Australians to sell paid apps in it’s store, and the fact that the Android handset market is a lot more fragmented, but we don’t care, we’re going to try it anyway
So in short all our iPhone/iPad customers can relax, we’re not leaving you, and all those who have emailed us about Android we are listening, and hope to bring you something this year. If you’re an Australian Android user, how about helping us out by participating in this forum: http://forums.whirlpool.net.au/forum-replies.cfm?t=1432091
Update 3 June 2010: To those of you reading this post for the first time, it’s over month old. Pointing out the irony of it to me may seem novel to you, but it’s obvious. I even refer to it myself in the post about Apple removing our application. I leave it here as a piece of history, this is how I felt at the time. Those of you that want to argue with my former self can build a time machine.
As you were:
I received an email in my inbox from someone reporting on Apple and their Policies. They were basically asking about how I feel about Apple being so closed and evil…here was my response:
If there’s one thing I like doing, it’s commenting on Apple’s approval process. I have always been amused by the amount of media hype and attention that goes with it, and how people just assume that we developers must be such an oppressed people, and isn’t it terrible dealing with Apple? Do we have to check our souls at the door? How can we possible approve of and work for such a tyrannical regime? Even the questions in your email are, to be fair, quite leading.
My high level summary would be: I love the app store and the amazing hassle-free distribution it provides and I only really have a few niggling concerns with how Apple has dealt with us, as developers.
So allow me to start with my concerns. My one biggest concern is that it’s never easy having a middle man between you and your customer. If you have a critical bug in your code, it can take days (or longer) for Apple to approve, and all the while your customers are becoming angry and frustrated because they feel you’re not acting urgently on a issue that affects them. My other concern is that there’s no one to call if things go bad, you send email to an address and just hope that one day you might receive a response. So let’s say they closed my account for example, who would I call? Where would I call…I would just send emails into the void. My only other concern is that sometimes Apple let’s through things in one review, and picks them up in later ones. That can be annoying, but they are people after all.
But more importantly, let me cover the things that don’t concern me. I don’t think Apple is a ‘prude’ and I was all for removing all the spam (I love how the media referred to them as porn) apps in the store. There were developers releasing app, after app, after app with nothing but pictures of bikini clad women in them. One such developer had over 100 versions of the same thing. I’m not on some moral crusade against porn, what you do in the privacy of your own home is your own business. Safari will get all you all the porn you could ever dream of, do I want it blocked? No. If Apple runs a retail store and doesn’t want to sell bikini’s in there, I say fine, I agree with them that it ruins the look of their store. Imagine if you’re a woman, and you browse the lifestyle section, and all you see are bikini apps in there, I don’t think you’re going to be too impressed. I think trying to turn this into an Apple is restricting your freedom argument is wrong. It’s like Stephen Conroy saying we should censor the internet and if you don’t agree you are for child porn. I’m not for restricting freedom, any more than I’m in favour of child porn, but I think Apple should be free to reject applications from coming into the store in the same way I believe the Australian government should never implement mandatory filtering.
I don’t think there’s that much that is ‘murky’ about their approval process, every time our apps have been rejected it has been for a reason that is documented in either an interface guidelines document, or some other part of their documentation. In my experience (and that’s all I can comment on) it’s extremely well documented as to what you can and can’t do. I’ve seen lots of complaints from developers who were rejected for using private APIs for example, as if they stumbled into them and didn’t know better. Private APIs are something you have to hunt for, you have to dig through header files and classes that are not meant for development, looking for a call to make that does what you want. They aren’t documented and you have to try pretty darn hard to find them. They are private for a reason, because Apple may change them at any time, and there’s no way you can call them by accident. The rules clearly state that you can’t call these APIs.
Perhaps I’m in the minority, but other developers I’ve talked to all agree, the app store is an unprecedented way for developers to distribute applications worldwide. There has never been anything like it in the history of mobile development, and I know, I used to develop for Pocket PC on Windows…and…well let’s not even go there. Apple’s tools, development environment and platform stability are second to none. For me it’s a pleasure to develop for their platform. It doesn’t surprise me that there aren’t more headlines that read “Apple’s Development Environment a Joy to Use” & “Apple Offers Developers Unprecedented Ease of Deployment Worldwide”, because as you well know, calling Apple ‘Evil’ sells😉
So to sum up, I love being an Apple developer, and I think all the hype about them being somehow ‘Evil’ is just that, hype. If you consider their actions as a company trying to ensure (where possible) that their App Store is a great place to get quality apps, then everything the’ve done makes perfect sense. Sure you can say they did it to be ‘Evil’ and ‘restrict freedom’ but that’s a much harder sell to me. The most obvious reason, while not always headline worthy, is often the most likely one to be true. Have they made mistakes? Sure. But they are making clear and obvious efforts to correct those mistakes. I’ve developed for the App Store since almost day 1, and Apple has been constantly improving things that most people would never even see.
Sorry for the long email, happy to answer any more questions you may have
It would seem lately that every man and his dog has been posting things on how much they dislike the app store. I think they all have valid points, but are also missing the forest for the trees. A lot of people ask us what we think of Apple and the App Store, so we thought we may as well write a quick post on it:
Firstly, let’s start with the positives, and there are a lot. Apple provides a distribution mechanism to well over 20 million iPhone/iPod Touch devices worldwide, and all they ask is a $US99 fee and 30% of the revenue generated. They handle all the payment processing, bandwidth, customer complaints and refunds without a developer having to life a finger. A lot of developers seem to forget that this platform is unique, I mean where else in the world can a fart app earn you close to a million dollars? Apple also copy protects your work for you, meaning you don’t have to worry about serial numbers and licensing. The system is not uncrackable, but the bar is set high enough that you don’t normally have to worry about piracy.
Then there’s the advertising side, for the lucky few Apple advertises our products for free. Apple picked our application Pocket Weather AU as a ‘Staff Pick’ and sales tripled overnight, and stayed high for well over a month. Our competitor Oz Weather gets even better treatment, being splashed all over magazine ads, and lit up in fluorescent glory in all the Apple stores around Australia. All this Apple does for free. I accept that if you’re not one of the chosen ones that’s not a bonus, but there is always that lucky dip aspect of magically appearing in the Staff Picks, What’s Hot or What’s New sections, or sometimes just being featured with other applications that are similar to your own.
Finally there’s the store itself, which supports browsing, reading reviews, screenshots, suggestions and a lot more. All that is great, but the better part is that this store is installed on every single iPhone and iPod Touch sold, and also on most of the desktop computers that these devices sync with.
Of course it would be remiss of us not to mention the many flaws in the App Store as well:
- Review times can sometimes be almost a month, even for minor updates. As a developer there is only one thing more frustrating than releasing an application that contains a bug, and that’s not being able to get the fix to the bug into your users hands for weeks on end. It’s painful, trust us.
- Reviews are fairly random, and things that got through in one release may not pass the second time. Every rejection (even for the most minor of matters) puts you back to the start of the queue.
- The Review process is opaque. There’s no way to know where your application is in the queue and how long it will be before it’s looked at or approved.
- The App store contains over 50,000 applications, even if you do a brilliant job it may still be hard to rise above the noise. Add to that the fact that competition drives prices down, and you may have a hard time charging anything more than a few dollars for your work.
- There’s no way to charge for upgrades on the store, which is a downside if you run a server (like we do) with ongoing costs. It also discourages developers from putting effort into bigger and better releases. This is a real problem if you intend to create an application that fills a small niche, because you sure as heck can’t make up for the difference by volume.
- When you have a problem getting paid, or with the store in general, there are no phone numbers to call, and emails more often than not don’t receive responses. At one point Apple violated their agreement with us (and many others) by not paying within 45 days of the end of the month and we emailed all the different contacts we could find, without a single response. Eventually they paid us, but it’s a damn good thing we weren’t relying on that money to feed our families.
As you can see, most of the downsides are most probably related to staffing problems at Apple. If Apple can figure out how to make the review and email processes scale, then 70% of the problems would be gone overnight and developers would be free to concentrate their whining on that last 30%. Overall the App Store has been a roller coaster that we’ve enjoyed riding. Despite that we are still holding out hope that Android and the Palm Pre take off, and give Apple the much needed incentive to improve the experience for all the developers that have made their phone such a success.
In the last two posts, we’ve told you all about who designs our graphics and ruby magic. There is of course a third part being the iPhone Application itself. That’s where Russell Ivanovic comes in. Russell loves many things (like writing in the third person about himself and gratuitous use of brackets), but chief among them is building iPhone applications. The literary types among you will have to excuse him, because he’s about to go from the third to the first person, all while breaking the fourth-wall that separates yourselves from him.
Let’s start with a history lesson. When the iPhone first came out I, like many mac geeks around the world, watched the video stream with a childlike sense of wonder. I had dismissed all the rumours of an Apple phone as wishful thinking by the Cult of Mac, rather than anything to do with a real product. Then Steve got on stage and did his stuff, and introduced us all to a new phone a new iPod and a groundbreaking internet device. Needless to say I had to have one. Only a few months later I got my very own iPhone, courtesy of the wonderful people who invented forwarding addresses, and the nice people at FedEx. Then in June of the next year the iPhone SDK was announced, I was excited, but too busy to do anything about it. I like many people I signed up, downloaded the SDK, ran a sample app and then never opened Xcode again.
Fast forward to later that month, I was playing indoor soccer when someone kicked me really hard in the calf. As I turned around to give them a piece of mind, I realised that no one was there. Being the genius that I am, it took me a few hours to realise that I had actually snapped my achilles tendon (don’t try this at home kids). A few days later I had surgery and was told I wouldn’t be able to walk for two months! After a few weeks of sick leave, my work shipped out my iMac and all my other equipment and I started working from home. As I soon discovered without the distraction of meetings, coworkers and walking I was working a lot faster from home than I normally would from work. I also spent a lot of time waiting for people to respond to critical emails before I could do anything productive. This left me with a lot of downtime. Long story short, I started investing an hour or so a day of this downtime into Objective-C and the iPhone SDK.
Giddy from all my success I began planning Pocket Weather AU, recruiting Nathan & Philip on the way. The rest as they say, is history.
To summarise our little trilogy of posts:
- Shifty Jelly is made up of 3 people, each with complimentary and awesome skills in all the areas required for a good application (design – Nathan, back end – Phil, front end – Russell).
- We work for love, not money (though to be fair my wife loves her new kitchen, which was payed for by money, ironic, I know)
- As a general rule, no we won’t build your World Changing Application unless you are realistic about what these things cost, and are willing to wait the amount of time required for us to build it. Even then 99 times out of 100 we’ll still knock you back (see the above point). We certainly won’t share your revenue any more than we’ll share your risk.
- Buy Pocket Weather AU so that my wife stays happy, no really I mean it, I need to do the floors in my house next, and at the current level of sales that’s going to take a while😉
In our previous post we talked about Nathan, the sole designer in our trio of iPhone monkeys. We figured that we may as well complete the picture, and release part two of this three part trilogy, this time looking at Philip Simpson.
Philip and I both work at Groundhog Software during the day, a company that develops custom applications and web sites for many different clients (be sure to check them out, they’re one of the few companies I’ve ever come across that really value quality and innovation rather than just talking about them). They are also highly supportive of our iPhone efforts, and trust us to maintain a separation between our work and personal developments, a trust I think we’ve always done the right thing by. That’s where I first came across Philip, when he started there as a Software Developer about 2 years ago. It quickly became obvious that Philip was smart, and highly motivated and also that he did a lot of development in his spare time (at the time mainly for charity). In his day job Philip mainly works with Java and large J2EE applications for our clients.
It came as no surprise then that when Ruby on Rails started gaining traction Philip fell in love with it. It was the anti-java in a lot of ways, fast, flexible, highly extendable and very light weight. While Java servers generally need at least 512MB of RAM to run, Rails runs quite happily on a tenth of that. Meaning that you could set up a ten server Rails cluster in the same space you could put one Java server. Rails is also a lot cheaper to host than Java. It was a fairly logical step then that it was the language of choice for the back end of Pocket Weather, and even more logical that Philip should be the man to do it.
The back end of Pocket Weather is what I call the ‘invisible’ side. Most of you probably don’t even know it’s there or what it does. Coded exclusively by Philip the back end polls the various FTP and HTTP sites from the BOM at various intervals during the day, and parses out all the data that Pocket Weather needs. This is no small feat, and is why we refer to Philip as our ‘Ruby Magician’ because all I see of it is a nice clean API that the iPhone App talks to. When you open Pocket Weather it contacts our server, and asks it for the weather for all the locations you have set up. This data is all sent back in one tiny chunk. This is good from a speed and data point of view on your iPhone, and also very good for the BOM, because it’s only our server talking to it, not tens of thousands of individual iPhones.
The running joke in the early days of Pocket Weather development between myself and Philip was always ‘Yes, but can it scale?’. You see Rails has an (undeserved) reputation for not being able to scale when it comes to handling large amounts of traffic. We were able to test that first hand when, in the early days of Pocket Weather, 800 new people a day were downloading our application. There were some nervous times when Philip had to keep a daily eye on things as our shared hosting groaned under the strain. Philip was always on the case though, and has been tweaking the code and architecture since day one. This has meant that Pocket Weather has experienced no downtime due to our code, though we have had some minor outages thanks to the double-edged sword that is shared hosting.
Philip is also a great friend and a very handy developer to have in our trio. I find that working solo it’s hard to get motivated and produce quality work, but when you have someone else you can draw immense motivation from each other, and you end up with a much better end product. Just like all of us, Philip is in the development for the fun, not the money, so much so that I often have to force him to accept payments and end up arguing with him because I think he needs a higher share of the profits, while he’s always pushing for a smaller one. I can think of many employers who would kill to have that problem
So what is Philip currently working on at the moment? Well he’s bringing the extended forecasts we promised for version 1.4 (so you can stop emailing us residents of Cape Byron, Wollongong, etc), as well as moving all of our code to a private server, so that we will never have to suffer the indignity of the downtime and problems you get on a shared host. He’s also working on two other projects that are very close to being released, but that we are maintaining Apple(TM) levels of secrecy about.
I came across this thread on forums.mactalk.com.au (a great site by the way) today:
It got me thinking. There are people out there that love our design, and I don’t think we’ve actually ever talked about how it came about. In the early days of Pocket Weather (July of 2008) we were trying to design a weather application that we actually wanted to use. The problem that we kept running into is that we, to put it mildly, suck at design. I think it’s a very common thing for programmers to be really bad at design. There are many reasons for this, but the most plausible one is that the best programmers are analytical problem solvers that like to build, tweak and optimise things that have defined inputs and outputs. Creative people on the other hand…well you get the picture.
So I started canvassing all the people I knew who knew anything about design. They all had pretty much the same reaction “The iPhone comes with a weather app you idiot”. Luckily for me I had no lack of motivation, self determination and will to see it through (my wife would summarise that as ‘stubbornness’, but I digress). Then the designs started flowing in, but they were all universally bad. I may not know how to design, but I know what I like, and I liked none of them.
Enter Nathan Swan. I knew Nathan quite well, and had even helped him out with a small business that he runs, but had never seen any of his designs. I canvassed the idea to him, and he jumped at the concept, and got crazily excited. It was the first time in at least a month I had found someone as passionate as me about our little iPhone project. I think even Philip (our Ruby Magician) wasn’t sure why were building a weather app at the time. I had no idea what to expect, I sent him a rather crude brief of what I wanted, and he didn’t even have an iPhone.
Then on the 28th of August 2008, I received this in my inbox:
I almost fell off my chair. I showed Philip and he was just as excited. Nathan had blown me away! The design was clean, readable, simple and he had nailed the weather icons just right. To this day I haven’t seen any other application or weather service that has better weather icons than the ones he designed. It was only a few weeks later that Pocket Weather AU was finished and unleashed on the world. It went to the #1 spot in the iTunes store in only a few days, where it stayed for several weeks. Achievement wise, I count those as some of the best of my career and I’m sure that Nathan and Phil feel the same way.
I’m convinced that to a large extent we owe our success to Nathan. We could have got by without him, but it would have been half the application it is today. Some programmers make the mistake of thinking of design as an afterthought, something you tack on when you’re finished coding, but at Shifty Jelly we firmly believe that design comes first, before you touch a single line of code.
The other great thing about design is that it’s a hard thing to copy. Take for example our recent initiative to post weather updates on Twitter, only hours after we had done it our competitor here in Australia subscribed to a few of our feeds, and the very next day had his own competing service up and running. The barrier of entry was low, and ethical debates aside, it was an easy thing to emulate. Design on the other hand is a much more individual thing, and the barrier to entry is quite high.
So thanks a bunch Nathan! (@_nathanswan on Twitter)
I have to admit, being a developer working for Apple really has it’s moments, at times (like when we were #1 in the store) you are ecstatic, people are actually using your software and deriving enjoyment from it. I won’t lie to you, it’s a good feeling. Another one last night: we were having a family outing at Brighton watching the tide come in, and were wondering if we’d be able to get back over the water with our 8 month old in his pram. So my wife fires up Pocket Weather, clicks on tides, then Brighton, and we see instantly that we are at the highest tide as we speak, and it’s on it’s way out. It was a nice little moment.
There are other times though, when you feel like punching someone, you really do.
Today was one of those days. First some history: We submitted Pocket Weather 1.3 to Apple 2 weeks ago, and everyone here at Shifty Jelly was ecstatic, it was an awesome release that we think people will love and we really love too. A full week later, Apple rejected it. It was rejected because there was an edge case that would cause the find weather by GPS function to crash (a race condition when the iPhone was unable to find your location in 15 seconds). We had actually seen this reported once before but were never able to get to the bottom of it. Apple attached a crash log which helped us fix it. So apart from the week of waiting, I guess you’d call that an amicable conclusion.
We then submitted the fixed version a full week ago, only to receive another email today. “Version 1.3 of your application, Pocket Weather, cannot be posted to the App Store at this time because…” my heart literally sank. We had waited 2 full weeks only to get another email like this. This time it was another crash, and I was angry…how could I have missed it! I pushed every last button 100 times! So I dutifully went off and studied the crash logs (symbolicating them so I could see the line numbers) and mea culpa, another edge case to do with national radars…one that only happens on a clean install of our application, and only on the very first launch. I guess the person I should be punching is myself…but now we come to the interesting part. I have resubmitted our application, and hope against all reason that it won’t take another full week for Apple to look at it. The problem is, I’ve done some research on this, and am not holding my breath. You see it turns out that with only one exception that Apple has only ever approved our products at around 10am Tuesday, Cupertino Time. This almost seems like Apple is running it’s own little ‘patch Tuesday’ ala the way Microsoft does bug fixes.
So what gives Apple? My guess is that you are either testing our software only once per week, or that you find these problems a lot earlier and only ever tell us about it at this specific time. Either way I find this situation to be unacceptable. Apple are making an incredible amount of money from the App store, so I would think that it would only be fair for them to do whatever they need to do to improve this situation! Imagine the scenario where after each problem report Apple had looked at our new version the next day. You would have had Pocket Weather in your hot little hands over a week ago.
Can any other app developers who may be reading this comment? Do you find that your software has a similar day of the week that it’s always approved?
Now if you’ll excuse me…I need to go and punch myself