Skip to content

Posts from the ‘Development’ Category

3
Feb

2012 The Shifty Jelly Year Of The Shiny

Welcome to 2012, and goodbye to January…where on earth does the time go! This is the first year we’ve sat down and actually planned the year ahead. It’s been quite an exciting task and today we thought we’d share a little bit of that planning process with you. Nothing is guaranteed of course, we’re not exactly renowned for sticking to deadlines, or plans, so we’ll see how it goes.

First things first, we present to you Shiny Item #1:

Our New Website Click Me Click Me!

Off you go, visit it, marvel at it, behold it’s simple, shiny beauty.  The next thing you’ll probably notice is Shiny Item #2:

Ohhh...what could it be?!

That’s right, we’ve been working on a brand new Mac app. No details yet, we’ll just let you marvel mysteriously.

But of course it wouldn’t be the Official Year of Shiny Things (why yes, I did just make that up, thanks for asking) if there wasn’t more than just those two things, and there certainly is. We plan on making some very big changes to our existing iOS apps, as well as our Android apps. This is the first year we’re going to turn our Android development into a first class experience. What we’ll be striving for is an equal (or better!) app experience on our Android apps in comparison to our iOS ones.

Suffice it to say we’re very excited about 2012, and if you own an iPhone, iPod Touch, iPad, Android Phone, Android Tablet or a Mac you should be too! If on the other hand you own only Windows products, then perhaps it’s time to evaluate where you are in life, and what on earth you’re doing reading our blog…

13
Oct

Pocket Casts 3.0 for iOS

We’re proud to announce the availability of Pocket Casts 3.0, for iOS: http://itunes.apple.com/au/app/pocket-casts/id414834813?mt=8

Over 3 months ago we took a long, hard look at Pocket Casts. It was by far our favourite app, yet it was selling really badly. So we had a decision to make: let it go and move on to something else, or double down and work on making it better. We loved it too much to let it go, I for one use it twice a day, if not more. So we made a decision that’s not easy as a small developer with very tight cash flow…we decided to spend whatever it took on getting the app right. ‘Whatever it took’ turned out to be 3 months. That’s a huge risk, but we think it was worth it.

New Look, New Layout, New Flow

The first thing you’ll notice when you open version 3.0 is that everything has changed. The look, the feel, the flow of the entire app. There are many reasons for this, but the main one for us was always about making the app more usable and more friendly. For long time users of our application, we realise this can be quite jarring at first but give it a few days we think you’ll love it. We can’t explain every single change we made, but we’d like to cover a few.

When we first created Pocket Casts, we came up with the concept of the updates tab. New episodes stayed there, until you either downloaded or deleted them. We loved this, but it confused people to no end. Some people don’t like deleting, others were confused when after a podcast was downloaded, it would disappear from the updates tab. Where did it go, what did I do…they didn’t know. So the concept of ‘Recent’ and the Episodes page was born:

The way it works now is that episodes that you’re phone has found out about recently, appear in the ‘recent’ page. Downloading them leaves them there, but also places them in the ‘downloaded’ page (which also flashes briefly when you download something. This makes it clearer where your podcasts are, and how to get to them. Another new feature is that the app will now download 2 podcasts at once, which is handy when one podcast authors site is screamingly fast, while the other is slow.

Cloud Power! (Notifications, Speed, Data Use)

Pocket Casts is the only podcast application for iOS (as far as we know) that does all its podcast processing on a server. What this means is that when your phone needs to see what’s new, instead of downloading individual podcast feeds (which can be very large), it just calls our server once “hey what’s new” it says. “Here are 3 episodes that are new since the last time you checked” says our server. That’s about 10kb’s worth of data, vs potentially many megabytes worth. Also worth noting is it’s a lot faster.

Talk is cheap though. Let’s compare Pocket Casts with the highest ranking of our competitors. I installed both apps cleanly, and imported my OPML file with the 27 podcasts that I subscribe to. I let both do their first refresh/setup without timing. Next I quit both apps, and performed a refresh in each one in turn, measuring the amount of data used, and the time taken. The results might surprise you:

Pocket Casts took 1 second to refresh all 27 of my podcasts. Our competitor took almost 2 minutes (105 seconds). That’s about 70x longer. It’s worth noting here that I could have been really mean and added 100 podcasts. Pocket Casts would still do those in 1 second, while the competing app (without a server) could take up to 10 minutes. It’s not rocket science, their app has to go off and look at every single RSS feed for every single podcast and see what’s new. That’s where our server comes in, it refreshes podcast feeds at a rate of about one million per day! All this so that your phone doesn’t have to.

Time aside, I decided to monitor the data use. To refresh 27 podcasts Pocket Casts sends 5kb to our server, and receives 3kb, for a total of 8kb. That’s tiny. The competing app sent 69kb and received 2252kb for a total of 2321kb (2.3 megabytes). In this case the competing app uses 290x more data than Pocket Casts. Note that we’re not deriding our competitor in any way, you can’t do any better than that, since you have to parse the feeds from the phone. That’s why we designed our app to have a server, because we wanted fast refreshes with minimal data use. And not just any old server, we currently run 11 high-end servers, that plow through many, many gigabytes worth of data each and every day. Yes, we do take this very, very seriously.

Speed, and bandwidth aside, having a server also adds one more benefit, the ability to do push notifications. Something we’ve expanded quite a lot in the new version:

You can now opt to receive text notifications, along with a sound when new podcasts are released. You can even turn this on or off per podcast, if you like some more than others. What it means is that you’re always notified about what’s new, even if you have the app closed.

Now Playing

The old now playing screen was ok, but there were a few things that bothered us. Firstly the progress bar was too close to the top of the screen, which didn’t work well with iOS 5 and its new notification pull down. Secondly the controls were a bit small, and felt cramped down the bottom. Lastly there didn’t seem to be any consistency as to how we placed  these controls on the page. In the new version we’ve fixed all that, while retaining the ability to see all the podcast artwork by tapping in the middle of the screen. The show notes are now much more accessible as well, just swipe to the right to see them. We also download the show notes when the podcast is downloaded, so no more having to have an internet connection to read them. On the list screens, you can now see exactly where you are up to in each podcast (and it updates if the podcast is playing) as well as being able to pause and play right from those screens. Lastly (and this is one of our favourite features) you can now start playing a podcast while it’s downloading.

Storage

If you listen to a lot of podcasts like we do, then you can quickly become overwhelmed with having to manage them. Deleting old ones can especially turn into a chore. With the new version of Pocket Casts, we now let you configure how many old episodes you’d like to keep. You can do this for all your podcasts, as well as each one individually. So in my case I tell it to keep the last 3 Tech News Todays (a daily show), but only the last This Week In Tech (a weekly show). You can also ‘star’ an episode if you want to make sure it never gets automatically deleted by the app.

Podcast Settings

New to Pocket Casts v3.0 is the Podcast Settings page. We realised fairly early on that some podcasts have really terrible album artwork. Others have long and cumbersome names. Well worry about those things no longer:

Now you can change the name of a podcast, or its artwork at any time. We may have accidentally also created a way to listen to more…how shall we say…’risque’ podcasts with this feature, but that wasn’t our intention. Honest.

Sharing

Another great new feature of Pocket Casts v3.0 is the ability to share your podcasts, episodes, or even the position in an episode with other people. This means if you’re really liking a podcast, or an episode, you can recommend it to a friend in a few simple taps. When you tap on an email, tweet or website with this sharing link in it, you can open that straight from your phone, and it will launch Pocket Casts, and let you choose if you’d like to listen/subscribe. When we release version 3.1 for Android, you’ll even be able to share with your friends on the other side of the fence.

The Small Things

We could go on for hours (quite literally) about all the things we’ve changed, but we’ll leave you with a few extra things:

  • You can stop an episode from playing (or streaming) by long pressing on the now playing tab icon.
  • We now have podcast chapter support, swipe to the left to see all the chapters, tap on one to play it
  • You can now export your subscriptions to an OPML file, for backup and to use in other podcasting apps
  • You can now turn our giant skip buttons off, handy for people that want to listen to advertising
  • You can now check out the podcast description, and visit the podcasts website from the podcast page
  • You can tap on the first podcasting tab to switch from the tile view to the episode view
  • You can now add videos into your playlist as well. By default they’ll play as audio, but one tap and you can be watching the video instead.
Don’t tell me you made it to the end, and are still reading? Go grab the app already. Tell a friend. Heck yell it out from the rooftops if you have to:
8
Mar

Can Android and iOS Co-Exist?

Today we’re proud to announce our latest app Pocket Casts, for Android:

https://market.android.com/details?id=au.com.shiftyjelly.pocketcasts

Which begs the obvious question: Have we gone mad, two Android apps in the space of a month? Have we abandoned iOS for greener pastures? The simple answer to which would be: no, we’ve always been mad, but we’re still committed to iOS development.

The longer answer is that currently we have two programmers at Shifty Jelly: Philip and Russell. Out of those two only one coded all our iOS apps, Russell. Philip focussed on the server side of things, which pretty much all of our apps rely on, and which has always been a full time job on it’s own. Since resigning from our full time jobs in September of 2010 Philip has been optimising the heck out of our servers, to ensure that each day he has less and less maintenance that he has to do on them. This frees him up to do some front-end development, which is something he’s always wanted to do. Combine that with his 10 years of experience in Java, and Androids rise in the mobile world, and you have a pretty good match. If you’ll endulge us a second, let’s rephrase it as a computer hardware analogy: in essence we’re a dual core machine, capable of working on iOS apps on one core, and Android apps on the other, while taking advantage of our design co-processor across both.

In many ways the Android side of things is still an experiment, a way of putting a toe into the water to see what happens. So far we’re pleased with the results, but it’s early days. We’re going to be writing a series of blog posts over the next few weeks about the experience, should be quite interesting!

So what can you expect from the Shifties over the next few months? Here’s our current plan:

  • New version of Pocket Weather AU for iPhone (hopefully released to Apple today)
  • New versions of Pocket Casts for iOS and Android (hint: we’re building a platform here, not a podcasting app as such…there’s a LOT more in the pipeline for Pocket Casts)
  • New version of Pocket Weather AU HD for iPad
  • New versions of our world weather apps
  • New versions of Pocket Weather AU for Android to slowly build up the feature list to match the iPhones
  • What, that’s not enough for you? ;)

So let’s put aside the iPhone vs Android war, it’s pointless, both platforms have their merits and neither one is really superior to the other. It all depends on your preference, and having a choice is a good thing as far as we’re concerned. But more importantly, you can enjoy the benefits of Shifty Jelly on both…now isn’t that a load off your minds? Now go be good little boys and girls and buy up all our apps so we can eat for another week! No really…I’m hungry…

10
Nov

The 4 Stages of Programming

Warning, today’s blog update is mainly geared towards programmers. You have been warned:

I’ve been programming now for just over 10 years. Just today I had an epiphany, on the 4 stages of programming:

Stage 1 – Beginner
Everybody starts here. Your main goal is to get the code to compile. Every time it does you do a little jig. Then you struggle, and Google, and struggle until finally the code does what it’s meant to do…oh also, it compiles! If there happens to be bugs in what you did, you add more if statements and conditional checks, since that’s what they are for right? You can recognise code written by Stage 1 programmers because it’s generally in massive methods, with more nested ifs than yo mamma.

Stage 2 – Amateur
At this level you no longer struggle to get your code to compile. You now start splitting your code up into logical methods and classes and you start playing with some of the more advanced features of your chosen language. You look back at Stage 1 of your coding and laugh at how stupid you once were.

Stage 3 – Perceived Master
At this level you now feel you know everything in and out. You create an abstraction for almost anything that moves, you use interfaces, if your language supports it you’re rocking the generics. Every class you create comes from a factory, why you’ve even got factories that create your factories. Your code is so loosely coupled it hurts. Your unit tests have unit tests. You think your code is the bees knees, the ducks nuts, a shining example of how to do things. It’s so well architected that any minute you expect I.M. Pei to come and congratulate you on it. You look back at Stage 2 of your coding and laugh at how stupid you once were.

Stage 4 – Face Palm
At this level you’ve finally realised that you’ve been an idiot all along. You now write simple, easy to read code. When people see it they say things like ‘huh. makes sense. simple really’. You don’t feel the need to prove yourself, or to make super fancy constructs anymore. You shy away from using every available language feature just because you can, and stick to just making stuff work. You realise that if it makes the code simpler and cuts development time there’s no great harm in making assumptions like what O/S you run on, and what database you use. You even learn a few new languages, recognising that every language has something different to offer. You look back at most things you’ve done in the past and laugh at how stupid you once were, and you will again in 6 months time.

So which stage are you currently at? Anecdotally I find most Java programmers get stuck at Level 3 forever ;)

27
Oct

Sure It Does, You Just Need Big Pockets

Up until recently we’ve had a todo list much longer than any human arms I’ve ever seen. Every week would see us complete one item only to add two more. Todo lists you see, often follow a very accelerated version of Moore’s Law. But we’ve got a secret weapon now: the time to do things (having gone out on our own almost a month ago) and the motivation to (in a very small way) set the world on fire.

So today we’d like to show off something that’s been on our todo list since we first released Pocket Weather AU HD for the iPad. Version 1.2 to be precise.

Featuring Tides:

Warnings:

Detailed Forecasts:

Yes indeedy, you can get your tides, state warnings, detailed forecasts, icons in landscape view and so much more in this new version.

At this point we’re providing an intermission for those who don’t care how this stuff is built. Don’t feel bad, the lights are on, we’ll clean up all the popcorn you’ve managed to spill everywhere. Last chance!

Now let’s talk about just why this release took so long. We promised that when we went into this full time we’d no longer accept compromise, and we meant it. This version was ‘ready to go to Apple’ 3 weeks ago. In the past it would have been myself, at 1am on my couch looking at things and going ‘close enough’ and pressing the submit to iTunes button. When you’re tired anything that’s working starts to look good. Since then we’ve rewritten the warnings feature twice, the tides three times and played with two different ways of showing you detailed forecasts.

After each re-write I’d hand the iPad over to Phil and ask him for feedback. Phil was brutal about everything he didn’t like, which initially made me very defensive, but I’d go and do it because I knew he was right. It was jarring, I wasn’t used to reworking features that worked, and were bug free, with the sole justification being ‘we can do better’. It was also hard to break out of the “we don’t have time for that” mould from our former lives as out of hours developers. After each iteration though we both knew we’d created a better product. Things you’ll never see like that the initial tides screen having left and right buttons (instead of swipe). Then there was the original detailed forecast design that had the day panels sliding left and right to show more or less content. Don’t even get us started the original warnings screen which had resizable panels of all things. In some cases we re-wrote it because we knew we’d taken shortcuts, other times (like with the slidey detailed forecast panels) we realised we’d gone too far the other way and made something a lot fancier and less intuitive than it could have been. In the end we finally had a version that Phil & I approved of, and one which was much better for the process we’d gone through.

There’s three obvious lessons from all of the above:

  • Getting things right often means getting things wrong, but being willing to change them.
  • When people look at a final product and estimate the effort required, they’ve left out the biggest component, all the rework and tweaking that led to that final version (common example from stack overflow).
  • Pocket Weather AU HD is awesome…have you bought it yet?!
8
Oct

Website Refresh

After a lot of hard work in Camp Shifty our new website is ready to roll: http://www.shiftyjelly.com.au/. Why not head over and check it out?

The next few weeks will see a refresh of a lot of our products, starting with Pocket Weather AU HD. Here’s a small sneak peak of the new tides area:

6
Sep

Crossroads

There are times in everyones lives, where you stand at a fork in the road, looking at two differing directions, and having to choose one. ShiftyJelly found itself at just such a point a month or so ago. We have been in the App Store now for two years, working on our apps in our ‘spare time’ while all working full time jobs. The problem is that we don’t really have spare time, that’s just a euphemism for time that we really want to be spending with our families, friends and having fun. Sure we’ve had fun doing this, but it was really starting to wear us down. The last few releases of our products have contained some fairly obvious bugs and it was getting harder and harder to maintain the motivation to open the laptop at 11pm at night and start coding. We are insanely passionate about quality, so this was really starting to get to us.

Introduction aside, we stood at a fork. In one direction was either selling or shutting down ShiftyJelly, in the other was resigning from our full time jobs and taking the leap into doing this full time. In truth there was only one option, but it was not an easy one. To those of you who think we sold out or were going to shut down, shame on you! We resigned our jobs, and it’s full steam ahead!

So what does this mean? Initially it means that we’ll be busy looking for office space, sorting out legal documents, registering various bits and pieces, so we’ll be distracted for a little while. Once the transition period is over though, it means that ShiftyJelly is about to bring it’s A game. No more late night rushed releases, no more cutting corners, just pure unadulterated awesomeness. If you’re one of our competitors, consider yourself on notice. If you’re one of the many companies we turned project work down for, we will now consider it. Best of all, if you’re one of the people that has purchased one of our applications, or supported us, we’re finally going to be able to devote 100% of our time and energy into making products that blow your mind. We’ll also be updating all of our existing products to finally make them what we’ve always wanted them to be, not just what we had time for them to be.

We’ll be keeping you up to date over the next few weeks as we make the transition, but for now we leave you with this teaser image. Who could that be in the shadows…

Shifty Eyes

20
Jul

A Day In The Life Of A Part Time Developer

We’ve had a lot of email recently. Probably because some genius thought it would be a good idea to start putting email us buttons into all of our applications. While it has increased our workload a bit, we’d prefer that to people just getting frustrated, deleting our application then telling all their friends how bad it is. The emails vary from ones that are quite funny to ones that are quite angry. I’d estimate that 9 times out of 10 the answer is very simple, and people normally walk away (assuming that’s what you do after reading an email) very happy. It’s funny, sometimes it almost seems that people are happier to get a buggy application that you then fix (after they find the bug) than to receive a perfect, bug free application. In quite possibly the longest segue in ever, that’s what I want to talk about: Quality, Features and how shiftyjelly applications are made. Possibly unicorns and rainbows too, I haven’t decided.

Most people assume that we’re some large-ish corporation, which I’d like to put down to the amazing quality of our applications, and the fact that ‘shiftyjelly’ is a very serious business like company name. I can see the latest IBM board meeting: “Who did we outsource all our IT work this year Bob?”. “Why shiftyjelly Frank, who else? Dependable chaps the lot of them.”. In truth a typical day in the life of a shiftyjelly goes something like this (there are 3-4 of us btw, depending on who’s counting and how, you can read more about that here):

  • Wake up
  • Eat breakfast
  • Go to our full time jobs (which have nothing to do with shiftjelly)
  • Come home
  • Eat dinner
  • Be social
  • Put the kids/wife/dogs to bed
  • Decide whether to code like a mad monkey or just crash into bed

There’s a point here right? If you’re still reading my guess is that’s what you’re wondering. Well the point is this: we’re just 3-4 part timers working in the wee hours from our couches. It might sound more glamorous if I told you my couch is leather, but really, sometimes it’s just hard work. We make a little money, ’tis true. When split 3-4 ways it’s not a lot though, which you can probably guess by the fact that we still all work full time elsewhere. But we don’t do this for the money. If we did we would have been much better off working the graveyard shift at a service station (gas station for the Americans out there). It would pay more, and I hear the employee discounts are really awesome. No we do this because we love it. Not always, not every day, but we really do love it. Some days we hate it, we chase down excruciating painful bugs for hours on end, sometimes in circles. Some nights you end up giving up and just reverting all the changes you made (thank goodness for source control). But most times it just seems cool. We’re making applications that people use every day. Roofers, tradies, fishermen, office workers, cyclists…even grandma. We’re also motivated by our competitors, perhaps because we’re all alpha males, but every time one of them creeps above us in the charts the coding nights become more frantic, the features get more elaborate, the whole virtual office (we’re separated by many kilometres) hums. All this just for the pure fact that we refuse to be beaten.

So on to the point (yes I know I promised it paragraphs ago): we love you guys, we really do. We love hearing from you. It pains us that we cannot add features faster than we do, but we’re trying. Some days we feel like we’re working 2 jobs. So yes we’re upgrading all our apps to support that fancy new iPhone 4 display, yes we’ll keep adding features to our new iPad versions, yes we’ll never forget about the old iPhone apps, yes we’ll fix all those little annoying bugs that slip through our 2am testing…but it will take time. And until someone comes along and hands us a million dollars (I know, we’re cheap, right?) we’ll probably stay at our day jobs, and it will always take time.

5
Jun

Now That The Dust Has Settled

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

22
Apr

Sorry Media, But Apple Isn’t Evil

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 :)

Follow

Get every new post delivered to your Inbox.

Join 32 other followers