Today is a good day to code

Why I Am Not Switching to Verizon ( And You Shouldnt Either )

Posted: January 10th, 2011 | Author: | Filed under: Apple, Verizon | Tags: , , | No Comments »

There have been a few times recently that AT&T’s
network has saved my bacon, recently, once in San Diego, a couple
of times in Denver, and a few times in San Francisco. AT&T is
definitely faster on downloads than Verizon, and often faster than
the hotel broadband. Not only that, but Verizon actually costs more
than AT&T, which is ridiculous. Android phones that are wildly
more complicated to use are not a useful proxy for how much
bandwidth the average iPhone user consumes. I think I’ll stick with
the carrier who has experience dealing with the iPhone’s load.

The other thing that bugs me a bit about the whole AT&T sucks thing, is that it is so market dependent. Typically which carrier “sucks” in a given market is whether or not, and how much sub 1 GHz frequency they have in the given market. Since Verizon has a bunch of 700 MHz spectrum here in the bay area, they typically have better signal indoors, etc… Leading people to believe that Verizon is the second coming. It is a similar situation in many markets, but not all so your milage may vary.

As far as voice is concerned, Verizon may have a bit of an edge, but with data, the jury is still out. Technically Verizon should perform marginally better on voice traffic in large markets due to the efficiency of CDMA, but since both carriers are moving to LTE, this is a largely insignificant difference. The real difference maker will be latency, and the size of the backhaul. AT&T has spent the past 3 years or so constantly upgrading it’s back hauls in all of their markets, I haven’t heard anything about Verizon upgrades.

Verizon might do a bit better in their packet latency, but I’d wager that it isn’t enough of a difference to really make anyone switch. AT&T’s latency isn’t that bad for a mobile provider, and it has actually been getting better here in the Bay Area.

I think that everyone who leaves AT&T for Verizon will be complaining the same way they were when they were on AT&T. The smartphone market caught all of them with their pants down, let alone tethering. The rumor is that Verizon will offer an unlimited data plan, firstly, this is unlikely, secondly, if they do I’m sure there will be some ridiculous throttling they will do which will make power users wish they could pay for full speed.

At the end of the day, I’m glad that Verizon is going to finally get the iPhone it will keep AT&T honest. I hope that T-Mobile gets it too so we can have some decent competition. All phone companies are the same, they all want to get the most for the smallest amount of capital invested. Verizon will probably try to louse up the iPhone with their “apps” and end up screwing up the experience in some way. Starting off by reducing the time users have to return their phones is s great way to reduce confidence in their ability to deliver the service level that they claim.


Mides SFTP / FTP Uploading Bug

Posted: June 9th, 2010 | Author: | Filed under: Apple, Companies, iPhone, mides | Tags: , , | 6 Comments »

A few days ago I submitted Mides 1.8.5 to the App Store with some cool features and fixes to a number of minor bugs.  I was happy when it was approved and then went live.  Unfortunately, there was a bug in the release for iPad users, a hidden dependency that was broken with the changes that I made to the file view, and as a consequence, file uploading was broken.  The workaround, to type the file name into the now blank rename / upload screen will work only if the file resides in the root path, any files in subpaths will upload a file called (null).

While there is a partial-workaround, and the fix was a two-line change to a single class, it is still what I consider to be a severe bug.  As soon as a customer let me know about it, I fixed it and submitted it to Apple, emailing wherever I could to try to get the fix deployed to the App Store quickly.  I am super grateful to my customers for letting me know right away that there was a bug in the update.

I guess what I really want to say is that as a one-man shop, especially one with a day-job, it is extremely difficult to move quickly.  The approval process makes it extremely painful to keep short release cycles and iterate as I like to, because there is a risk that you will have a severe bug.  On the web, and elsewhere, recovering from this is pretty easy, just push an update, boom everyone has it.  With the App Store I can’t, since the review process can take a while, and while you are waiting, your ratings and reviews get destroyed.  Very few people go back and update their one star reviews after you have fixed their problems, so your ratings are unrecoverable.

So I am going to slow down the cycle of releases,  and allow myself adequate time for rigorous regression testing.  My hope is that this should improve the quality of each release.  I think this is Apple’s intent and desire, and maybe they are right.  As for me, I have learned my lesson, this is shrink wrap, not web development, and I will think about it that way.  I’m sorry for anyone who is experiencing a hardship due to this bug, and I hope the fix is approved soon.


Why I Disagree With Gruber : AT&T’s Price Changes Suck

Posted: June 3rd, 2010 | Author: | Filed under: android, Companies, iPhone | Tags: , , , | 1 Comment »

First, let me get the link to Gruber out of the way : good and bad regarding at&t data plans.  I read his post, I disagreed with AT&T’s price changes, and after reading it, I still disagree with the changes.  They are all bad.  First AT&T announces that they are upping their cancellation fee to $375 from $175, which was bad, but understandable given the percentage of their customers buying the iPhone.  Then they announce this garbage.  My biggest issue with it isn’t that they are charging for it, it is the way they did it.  They took a device that we all love for its simplicity and tied it to a maze of complicated data + text + voice plans.

Remember, when the first iPhone launched, there was just the iPhone plan, and the only choices that customers had to make was how much extra to pay for SMS, which sucked but at least it was understandable.  Now, trying to explain to regular people what will happen if they buy the iPhone HD is nearly impossible.  When I told my wife about it, not technical, she said, “but wait, it was supposed to be unlimited.”  It doesn’t matter if the cap is high, as soon as people know there is a cap, they will change their behavior.  They will start to think, maybe I should wait to look up this site until I get into Wi-Fi, or maybe I shouldn’t watch this YouTube video, or how many kilobytes per second is the streaming on this h.264 video, all way too complicated.

Going from bad to worse, we were on the verge of a new age for the internet with plentiful, high speed data everywhere.  We were going to start seeing a new class of always connected applications, able to provide real-time data.  Consumers are likely to start self-restricting their mobile data use unless they are on the few and far-between Wi-Fi hot spots.

There is a class of argument along the lines that AT&T was drowning with the amount of data its consumers were using and that no carrier could keep up with providing quality service for the prices they were charging. I can buy that, but the solution is simple, instead of complicating everything, increasing ETFs, and other stuff that is hard to understand for most people, just raise the price of the iPhone plan to $99.99 and give unlimited everything.

Contrast this to T-Mobile, who recently re-iterated that their unlimited was really unlimited.  One could argue that they have fewer customers and can afford to have more aggressive pricing.  That is true, however to the end user, unlimited is unlimited.  Unlimited is better than limited.  It is simple to understand.  I am very glad that I bought a Wi-Fi only iPad, or I’d feel like a sucker who got baited and switched after Steve Jobs got on stage and announced a “breakthrough” data plan for the iPad.  A 2 GB capped plan is not breakthrough, it is hobbled.  The iPad is designed to watch video, stream audio and in general consume the hell out of bandwidth intensive content.

Basically I’m glad I terminated my AT&T contract when I did.  My iPhone 3GS makes an awesome iPod, my iPad can take its place, I will be able to use my Nexus One for tethering when Froyo comes out if T-Mobile does what I expect and make it free.  AT&T’s crap makes the next generation iPhone look less attractive, since after all, the shine wears off on any new technical gadget, no matter how wonderful, but you are stuck with the crap contract.  T-Mobile also one-ups AT&T by offering attractive no-contract rates if you want to just buy your phone outright.  When the Nexus Two, or the dual-core Snapdragon HTC Scorpion or whatever comes out, I can just save up the money, buy the phone, slap in my SIM card and away I go, I don’t have to wait for 2 years.

The cell phone industry ought to be ashamed of itself for what it is doing.  Even with crappier cell service, which is getting better, T-Mobile is a far better carrier than AT&T.  At least they don’t bait-and-switch their customers and partners with half-truths and complicated one-off deals.  If this doesn’t make people look around for an alternative carrier to AT&T I don’t know what will.  You can get overpriced, horrible service, not be able to make calls, not be able to use the data you are paying for, not be able to get out of your contract for a fortune, and still have to pay large amounts each month for garbage service.  What happened to the model where the business didn’t take their customers for granted, where they actually did things to be better than their competition?  Why are we stuck in the US with carriers who just want to squeeze their customers for every penny while providing as little service as possible.  I don’t understand what is good about AT&T’s price changes, and I hope they don’t set a precedent for other carriers.  If so we may find ourselves, in this country, at the far back of the line as far as wireless connectivity goes.


Mides 1.8.1 Endless Keyboard Popup Issue

Posted: April 9th, 2010 | Author: | Filed under: Apple, Companies, iPhone, mides | Tags: , , , | No Comments »

The Mides 1.8.1 release should have fixed a bunch of the startup, and SFTP stability issues, but there was one lingering issue. The endless keyboard popup issue. The fix is to disable the “Twist to complete” feature in the iPad settings app.

The reason this is an issue is that the accelerometer values for the iPad are way more extreme than the iPhone due to it’s size, so the code that I had to ignore small movements of the device is not working on the iPad. I will remove twist to autocomplete for the iPad in a future release as it doesn’t make sense for this device, and since there is now a button for it.

This issue shouldn’t affect the iPhone, it is an iPad only issue. There was no way to find then issue before I had hardware since the accelerometer is not available in the way I need on the iPad simulator. But at least there is a good workaround.


Mides 1.8 Release

Posted: March 29th, 2010 | Author: | Filed under: Apple, Companies, iPhone, mides | Tags: , , , | No Comments »

On Thursday I submitted Mides 1.8 to Apple, hoping to get it in for the big launch of the iPad store. However, it got kicked back to me because the reviewers approached it in a pattern that I hadn’t tested. They exposed a bug related to some #ifdef code that had hung around after my refactoring.

While I am disappointed that I didn’t make it for the launch, I am happy that Apple found that bug before my customers did. I have since fixed that bug and fixed some other minor issues related to SFTP. So all in all, this release should be a really good one. Unfortunately I’ll have to wait a few days to resubmit until my iPad comes in the mail. It’s better to test on real hardware. I could sit here and pretend that I didn’t want to release until I had the device to make sure that I had everything just right, but I am too honest for that.

I think that this is a huge launch and would have loved to be there at day 1. Suprisingly I just missed the 2.0 launch in much the same fashion. But I was in the store about a week or two later. Fortunately we won’t have to wait that long this time.

The announcement that Apple was accepting apps before the hardware shipped caught me by suprise. I thought they would make everyone wait until the device was out. 1.8 is a very ambitious release, trying to get SFTP and the iPad refactoring into it.

I’ll probably keep plugging away on 1.9 until I can resubmit my 1.8 branch. Mides on the simulator is awesome. I can’t wait to load it up on my shiny new iPad, I can’t wait for everyone who is supporting and using mides to do the same!

*EDIT* 4/2/2010

Mides actually will make the launch of the iPad app store.  In fact, it is in there already!  I am super jazzed to have a launch title on the AppStore.  The iPad version is pretty cool.  Just having more screen real-estate is huge.  I hope that there are no strange bugs.  Once I get my iPad on Saturday, I’ll sanity check it and try to fix any bugs that I notice.  Apple did pretty good due diligence on the app though, so I figure it is OK.


Why I Decided to Raise the Price of Mides

Posted: February 13th, 2010 | Author: | Filed under: Apple, Cocoa, Companies, iPhone, mides, Objective-C, Programming | Tags: , , , , | No Comments »

A few days ago I completed an analysis of what my profit and loss looked like for both of my applications. What I discovered was very disturbing, or would be to any entrepreneur.

I have to date put around 200 hours of work into Mides and around 90 hours into CycleMetrics. So far I have made less than $2,000 total on either of them.

Part of this is my fault, I started out with something of a flawed concept with the design of Mides because I was in love with the idea of nested code, self closing tags, and closures. This ended up eating away almost all of the devices’ memory, and was so recursive as to be nearly unmaintainable.

So I killed my darlings, went in for a heavy refactoring of the code without nesting, and ended up with a pretty decent mobile IDE.

However, at what my hourly rate is at this point in my career, based on my salary plus benefits, I am as of now, with all of my original plus ongoing effort into the software, about $30,000 in the hole on Mides, and $10,800 in the hole on CycleMetrics.

When I launched my app, shortly after the app store launched, I thought that I would be able to make back my money in 2 years and get positive. It has been 2 years, and I’m nowhere near making my investment back.

This is mostly O.K. since I have an awesome job, and I’m not missing a house payment or anything, but I think it is unwise to basically give away software that you keep shelling out effort on. I can’t let it die either, that doesn’t make sense, I love the idea of programming on your mobile, and I love the idea of being able to code on the apple tablet even more.

I also hate ads, and don’t want to do the ad driven thing. So while I’m still subsidizing the hell out of Mides at $9.99, it isn’t the slap in the face that $4.99 was.

So as a result, I have decided on $9.99 for Mides. I am putting in a fair amount of work to get to the tablet in an intuitive and sane manner, I also have a bunch of features planned. Some of which have been suggested by the awesome community at getsatisfaction.com/mides, and others that fit in with my dream of Mides.

I am still not sure what I want to do about CycleMetrics, but I have some online features that should be able to drive more reveneue for me. I don’t want to go to ads, and I don’t want to lock users in or try to steal their personal info to try to make a buck on it. That just doesn’t jibe with my philosophy.

We’ll see if the market thinks Mides is worth $9.99. I still think it is worth way more, but that is because I see it as it will be, not as it is. If people don’t think it’s worth $9.99, then they will later, but I can’t promise to keep the price there as I struggle to make it my dream of a fully featured mobile development environment.


What if Apple’s Vision of a Modern Platform is Right?

Posted: February 8th, 2010 | Author: | Filed under: Apple, Cocoa, Companies, Google, iPhone, Microsoft, Objective-C, Programming | Tags: , , , | No Comments »

This past weekend, I was thinking more about the iPad.  One of the thoughts that kept coming back was about the iPhone / Cocoa Touch development ecosystem as a platform, and how that looks in comparison to existing platforms.  The conclusion that I came to was a bit disturbing to me as a developer concerning the future of application development in general.

It is somewhat useful to quickly recap the development environments of the past to contrast them to today.  First we need to talk about Microsoft and what a platform meant to them.  To Microsoft, the computer was a tool for technical users.  Even if their said goal was to put a computer on every desk, the engineers clearly have and had difficulty putting them into the place of their users.

As the computers’ abilities increased, so did their complexity, and the complexity of the OS.  Doing simple tasks like taking a piece of text from a word processing program and putting it into your spreadsheet program in DOS was mostly ridiculously complicated.  Windows made things a bit easier initially, but only for the most technical users.  Doing what should be mostly simple tasks were still difficult, DOS was still around and necessary to do many common tasks.  The thing booted from DOS which created no end of problems.  It just wasn’t an optimal solution for the mass of computer consumers out there.  This was evinced by a proliferation of “computer” classes which were supposed to take the burden of designing something that was easy off of the engineers who designed the system.  That it did, and they proceeded to make a system that was even more of a tangle.

For those who would say that the Macintosh is much easier, I take issue with the word “much.”  In reality Unix / Linux / Mac OS X.x is not terribly easy to use.  To someone who has a good understanding of the computer, and conventions it is much simpler and more straightforward to use and manage.  For a technical user Apple does a fantastic job of making most things that normal people want to do easy without preventing technical users from doing complicated things, but the underlying complexity is not without its cost to the typical end user.

Now, if you were designing a platform today, for millions of people worldwide, with different levels of technical ability, the issue of computer and operating system security looming large, and the ever increasing abilities developers have to make computers do insanely complex things in the blink of an eye, how would you develop it?  Would it be like Windows, putting the burden of learning, understanding, and protecting themselves on the user?  Would it be like Unix / Linux, putting the burden of everything on the user, but exposing incredible levels of customization to the user?

What you would do would depend on what your goal was, but if your goal was to provide the best possible user experience, you would likely ( I know that I would ) take it upon yourself to protect your users from viruses, phishing, hacking, malware, etc…  You would likely make it difficult or impossible for developers working on your platform to make choices that would negatively impact the usability of the platform.  You might choose a somewhat difficult language combination for development to make a barrier to entry for developers, to make sure that the developers that did create for your platform were of a caliber such that they could actually make compelling content for your devices.

You might establish a certification board of some sort to determine if the applications being developed for your platform met your requirements for ease of use, stability, and security.  You may come to the conclusion that the only way to enforce your vision of the platform and be the ultimate consumer advocate, you would have to make sure that every application went through this board before they were available on your platform.  Once available for your platform, you might make the installation and configuration experience as painless as possible for the user, even if it meant imposing further complexity of implementation on the developer.

Does any of this sound familiar.  When I went through, designing a platform as a consumer advocate, what I ended up with was pretty much like what Apple has for the iPhone / iPad / iPod Touch development environment.  With one exception, I was actually more stringent in that I wouldn’t allow wapletts ( web application applets ) on the platform.  I would require those developers to just build a web application customized for the experience.

The funniest thing, or strangest if you don’t like that colloquialism, was that designing the platform as a developer, it didn’t look anything like this, in fact, it looked much more like the development experience around Ubuntu linux.  Where I ended up is that perhaps as developers, we are heaping too much responsibility on the average user trying to use the platform.  I think that Apple has the right mix with the app store experience for the types of devices that are running the Cocoa Touch framework on Objective-C.

That being said.  I don’t like it.  However, I understand it, and the UX / UI Designer at my heart rejoices at the emergence of this paradigm, where the responsibility for security and workflow consistency are on the developer, not the user.  But the programmer in me rebels at having someone tell me how to design and implement what I want on my device.  Having someone lord over me as to what is an acceptable software application is irritating to say the least.  I think the UX designer, and consumer advocate in me wins, and there are platforms like Mac OS X that I can work on to satisfy the programmer urges in me.

I predict, however that Apple will do away with the use of the existing Mac OS X on the MacBook,the iMac, and the MacBook Air.  I think they will start running this Cocoa Touch OS with all of the restrictions and HIG guidelines as the iPhone.  I think that there will be an app store for these devices, and I think that it will be the only way to install software.  Seeing iWork on the iPad is the first example of the migration of Cocoa Touch to a full fledged computer operating system.

Apple will probably, keep the MacPro line and the MacBook Pro, perhaps adding an iMac Pro running Mac OS X.x in the way we have always come to expect it, and it will likely become even geekier than it already is.  The most floor slapping, hilarious thing is that Apple has come full-circle to an old Microsoft idea that was right on, however, big surprise, was improperly executed.

Originally Microsoft had its Windows Professional and Home lines, they had Windows 2000 for business and Windows 98 for home users.  The concept was that they wanted to have a much simpler OS for normal consumers and a much more complicated, and powerful, platform for businesses to use.  Apple has slightly turned this on its head, they, in my humble opinion, want to have a platform that is an awesome one for media consumers, and general consumers, and a platform for the programmer geeks that have made Apple what it is.  It is for that reason that I anticipate a iPad Pro soon after the launch of the iPad, perhaps even as soon as WWDC ’10.  The iPad Pro would likely run a Cocoa Touch OS that was less restricted, and more like Mac OS X.x.

Ultimately, I think Apple wants, and will make everyone happy, but we are at the beginning of this incredible consumer platform, and I think that for its stated goals, the App Store, the “awful policies,” et cetera, are the best possible way to get to it.  However, I think for its perception among geeks, Apple needs to communicate their strategy as soon as possible.  If they intend to make all of their devices like the iPod Touch, then we have a problem.  However, this is extremely unlikely.  I can’t wait until WWDC this year!


Thoughts on the Apple iPad

Posted: January 28th, 2010 | Author: | Filed under: Apple, Companies, iPhone | Tags: , , , , | 1 Comment »

First off, let me say that I am an apple fanboy to the highest degree.  Prior to today, there has been only one Apple device since 2001 that I have not really wanted in its original form, that product is the Apple TV.  Today, there are two.  In the rest of this post I’d like to explore why I feel this way.

There are bound to be many, many people who will find a tablet like the on Apple described yesterday to be wonderful.  I am coming from a slightly different place, as I have a MacBook Pro, an iPhone, and a Kindle.  What I was looking for was something innovative enough to replace all three, and the tablet isn’t it.

Looking at my needs for a portable computer, we can eliminate the tablet right off.  It can’t run GCC, it can’t run clisp, PHP, etc… So for me as a developer it isn’t practical, as a writer, it is.  Between iWork’s pages and the keyboard attachment, it will make a fantastic transportable word processing device.  The biggest problem with this is that I can’t run openoffice or word.  Not that I would necessarily want to, but if all of my files are in word format, and Pages mangles them, then this is a non-starter.  Also, without the ability to move files easily onto and off of the device, I’m sure there will be a mobile me tie-in here, it just isn’t as flexible as my laptop, ahem… netbook.

On the smartphone front, this device is way too big to put into my pocket, doesn’t have a camera, and doesn’t support standard cellular voice.  Of course I could use skype, etc… but sometimes, for as much as we complain about AT&T, it is nice to just make a regular voice call and have it not be complicated.  On top of that, since it doesn’t tether to my iPhone, something that I should be able to do just in general.  Instead, I have to, on top of the data plan that I already pay for for my iPhone, pay an additional $29 per month to use the internet.  The 250 MB plan is a joke, as soon as I watch a few Hi-Def youtube feeds, I will have gone through it.  This doesn’t replace my smartphone, iPhone.  It doesn’t even really work together with my iPhone.

While the iPad, even with its unfortunate name, has a really beautiful ebook reader application.  The books are way more expensive than the Kindle, and the screen is still a backlit LCD.  I can read my Kindle just fine in the high-noon sun, which I do a lot.  I can read my kindle with no problem at the playground with my kids.  I can’t even see what is on my laptop in the sun, perhaps the iPad will be better, but it doesn’t even come close to the readability of the Kindle.  It is great that the battery life on the iPad is 10 hours, I can’t look at the screen reading text for that long.  So it doesn’t really replace the Kindle in its current form.

Overall, it is awesome at some things, but it doesn’t really replace what I have, is it better at browsing the web than my laptop with a 3G card?  No, not really, I can use Verizon or Sprint 3G, I’m not stuck with AT&T, I have the choice to use Firefox or Google Chrome, I’m not stuck with Safari.  I like Safari, but Chrome and Firefox have better features.  Is it better at media, since I tend to consume a lot of audio podcasts, no it isn’t.  For users like me the iPad is just what I hoped it wouldn’t be, its a big iPod touch.  I already have an iPod touch and an iPhone and a laptop.  There is nothing that the iPad does that would make me replace any of them, not even the iPod touch, since I can actually put that in my pocket and take it with me.  There is also the neck pain that comes from looking down into your lap for 4 hours that we have all felt from playing games on the iPhone.

I don’t intend to buy the iPad, at least in its current form.  I was really hoping that Apple would come in and do something super cool with gestures or something to make that form factor work, what they have done is smart in that they aren’t really challenging the other markets, they are trying to make a niche that is there own.  I think the super wealthy digerati will buy this, and some people who don’t already have an iPod Touch or a Kindle, or even some people who don’t have a laptop, but most people will still spring for the $300 netbook over the iPad.

It has dawned on me though that the iPad is a megaton bomb on Google’s Chrome OS hopes.  iPad Safari will be able to run all of the google apps in the same fashion that Chrome OS likely will, from an icon on screen, so to the majority of users they will be the same.  Google does have one advantage, and that is its openness.  Google is talking about allowing NSAPI plugins that run native code on the platform, Apple can claim that one could just write a native application, but it doesn’t allow augmenting the web browser to provide additional functionality to web applications.  The lack of openness could end up biting Apple as we transition all of our desktop environment to the web.


Why the Volume Approach to Sales in the Apple App Store Won’t Work

Posted: December 16th, 2009 | Author: | Filed under: Apple, Companies, iPhone | Tags: , , , , , | No Comments »

For a few months I have been thinking about the app store. Specifically I have been thinking through all of the drama and screaming that is occurring on the internet over the rejection of a few apps, the difficulty of finding anything quality in the app store, and the impact to actual users. The conclusion that I have come to is one that is different from the conclusion to which I had figured I’d arrive before thinking deeply about it.

Basically the App Store is great for Apple, but bad for developers. OK, you may think, well that is obvious and it is, but I don’t think that it is quite as simple as that. Firstly, I think Apple has brought their brilliance for marketing physical machines, accessories, and their integrated software and applied it to third party applications. Secondly, they have created an ecosystem where sales volume is king and the primary means of competition is over price, not quality. Regarding the second point, I am certain that they did not intend to do this however, it is in fact where things are today.

To understand why volume alone in software sales does not make one rich or profitable, you have to look at the contrast between physical goods sales, and service sales in an environment similar to the app store.

Imagine that you have an area like the Akihabara district in Tokyo, Japan, where you can buy anything technology based, motherboards, cameras, MP3 players, etc… Everyone who wants to sell this stuff crams into the Akihabara district even though there are already thousands of people there selling the same exact thing. So why would you do this one might think? It is because even though you have to drop your price to compete with the others, the number of people who will come to the Akihabara looking for some electronic thing is very high, if you were to locate elsewhere, you could increase the price, but you would have fewer people coming to your store. This is less than optimal for someone selling a physical good, to understand this, you have to look at how profitability works when selling a real thing.

If I can buy 5 widgets at $2, my cost is $10, if I sell the widgets at $4, my revenue is $40, my net profit is $30, not too bad. Now lets say I move into the Akihabara, I will need 1000 widgets to accommodate all of the foot traffic, and the people who want my widgets. Because I can sell 1000 widgets, the supplier is willing to sell them to me for $0.25 each. Now I have to cut my price because I have thousands of others selling the same type of widget, so lets say I cut the price to $2.50, my cost is now $25.00, but my revenue is now $2,500, that leaves my net profit at $2,475. I am making way more money now that I am in the Akihabara, even though I am losing some business to my competitors and my per item cost is lower, my profitability is actually better.

Now, lets say we do the same thing for a service based industry like plumbing. I have a plumbing business out in the suburbs and I charge $175 / hour to fix plumbing, maybe I get 100 hours of work every month since I am out in the suburbs and I am the only one. I am making $17,500 per month, I’m doing pretty well. Now I move into the plumber’s alley in town with 50 other plumbers, well, in order to get jobs, since it is so easy for customers to shop around, I have to cut my rate to $65 / hour, and since I am around there with 50 other plumbers, there is a bit more foot traffic, but I am just one guy so when I am out on a job, I can’t collect any more work. Now I am doing 150 hours of work each month, but at $65.00, I’m only making $9,750 per month. The answer would be to hire another guy, let’s say I do that, now I can do 300 hours of work each month, but I have to pay this clown, plus the drain on my time to train him to do it my way, after his pay, I am making $45.00 / month, $13,500, not bad, but still not as good as working less and making more in the suburbs.

Software is not exactly the same, but it is similar enough that the calculus works out nearly the same. I have just seen this happen with my CycleMetrics application, which applies to a broad vertical, versus my Mides application, which applies to a very narrow vertical, and came out when there were very few items in the app store.

With software, there is a significant up-front cost of your, or if you have to hire a team, your team’s time.  But for most people in the App Store, it is just you, lets say you want to build a really high quality application, it takes you about 18 months to get it all done alongside your day job.  You have put about 2,000 hours into it.  Typically your time is worth about $125 / hour, or at least that is the neighborhood in which an agency would price you out at as an iPhone dev in the bay area.  So you have put $200,000 into this iPhone application, or if you were to do a 12 month consulting job instead ( because it would be full-time ), that is what you would have made in salary plus benefits, or salary if you are a typical contractor.

By the time you put out your app, there are 300 other applications that do the same thing, 90% of them are crapware fake web apps with a Cocoa wrapper.  But in the App Store, the users can’t really tell the difference since the reviews have been gamed endlessly.  You don’t do any of that stuff, you play by the rules.  All of the other apps are priced at $0.99.  The target you have set to recoup your initial capital investment of $200,000 is two years.  You expect to sell about 100 a month average over 2 years, because your app is super awesome and you get a good pre-release review.  You realize that you would have to sell your app at $84 each to make that up in 2 years.  So you give up and hope for the best, you hope that Apple features you, or you hit the top 50 list.  You price your app at $19.99.  Apple rejects you a few times, so you have to put in another 100 hours into getting through the review process, now you are 2100 hours into it.  You figure you will eat that as a sunk cost now, chalk it up as a learning experience.

You sell 15 initially because people think it is so awesome that name-the-apple-podcast reviewed it.  Soon you start to notice a few bugs being reported in the comments that the Apple review has missed, and so have you.  But it will take a while to get the fix to market, and so you start this process over and over again.  This time it only takes 10 hours, but you have invested 2110 hours into the project, and have a 2 star rating in the App Store.  Now your sales are so low that you have to drop the price to keep moving units.  If you try raising your prices later, you will just not sell.

Even if all of the past time is sunk, you have future time in support and maintenance costs, even if you don’t add features.  It is the plumber model, you can never be as profitable as if you are a single guy working in an area in which there is nothing else like what you offer.

Most developers don’t count their initially invested time as money, so most developers don’t see this, but time is the only truly non-renewable resource.  They hear about the guy that sold 80,000 copies of x game in a month and raked in a million dollars.  Of course there will be a few like this, its like winning the lottery.  Apple picks a few and they do well for a time, after that however, they get pushed back into the pit with everyone else.

So, is there any way to fix it?  Apple has no incentive to fix it, they, and the app consumers are the beneficiaries of the huge delta in hours invested in the iPhone apps in the app store, and the lack of profit that the devs are getting.  I don’t think we should complain about it though.  It is awesomely powerful to be able to reach millions of people through the app store with a tap and a search.

There are three ways for devs to acheive profitability, one is for everyone in a section to raise their prices.  The overall sales volume would drop, but the profitability would increase, and everyone would make more money, not as much as if they were by themselves in the section, but more than they can make with the brute force of the quasi-free market forces in the app store.

The second way is to use the app store and your application to sell services outside of the app store, like Omni or pandora.  In Omni’s case, they use OmniFocus to drive sales of their mac desktop application where they have a vertical they own, selling productivity products for Mac OS X.  In Pandora’s case, they are using their application to drive affiliate link revenue as well as potentially some aggregate data mining products.  Either way, the bulk of their revenue is going to come from their other business efforts, the App Store is just an adjunct to this.

The third and probably most difficult way would be to come up with a product that is so unique in its technical application that it creates a natural barrier to entry, or to create a product for a vertical that is profitable, but is so small or difficult to understand that most competitors wouldn’t bother.  Examples of this would be like some sort of law research assistant with artificial intelligence that you could charge $199 for, or a notional application that would speak to industrial robots for which you could charge $30,000, but then you become acutely aware of the 30% that Apple charges.  At that price point, it might make more sense to develop it for Android and offer it directly from your site, but you get the idea.

The gist of all of this is that Apple has created a wonderful retail location in the image of their physical item store, one in which they have a monopoly on impressions and can leverage economies of scale.  Since economies of scale have no clear practical application to software development, the App Store should be seen as a massive lead generator for some other monetization strategy.  Getting angry at Apple for being Apple is pointless, take what they have given you and use it.

The last thought that I will leave you with is that Objective-C development is fun, and researching the background of Objective-C / Cocoa from smalltalk is also fascinating.  I am not for one minute suggesting that you shouldn’t develop applications for the iTunes App Store.  On the contrary, I think you should, but you should develop the applications because you enjoy the process, not because you hope to recoup your investment in a number of years.  You will likely not be able to recoup but a fraction of what you have invested.  That is not to say that you won’t get an awesome job with someone who has figured out how to make money in the store because of that initial time investment.  That is what I would be using the developer program for, to enrich and expand my programming abilities, not to try to get rich quick.


Mides: What’s Going On

Posted: July 8th, 2009 | Author: | Filed under: iPhone, mides | Tags: , , , , , | No Comments »

I have been getting killed in the reviews for the past couple of weeks.  Probably deservedly so.  I wanted to drop a brief update as to what is going on with Mides.  After exploring the concept of including a PHP interpreter to debug scripts, I have decided that at this time it isn’t practical.  There are too many problems and roadblocks to implementing it, not to mention that it is only palatable, performance wise, on the iPhone 3GS, which many people do not have at this time.

What I have decided to do is to work on additional features to improve the functionality of Mides as an IDE.  I have some code completion features I am working on, improving the performance of the documentation searches, and adding line numbers are a few of the improvements that I have brewing for the next release of Mides.

I appreciate all of the awesome feedback, and am working to implement as much of it as I can, or at least as much as my day-job will allow.