Tuesday, June 1, 2010

[[Rusty alloc] init]; // fresh start

I'm excited to be back on the iPhone development train again. My last dot net contract just concluded and I'll be working hard to replace my server side solution set with rails alternatives. There is nothing really lacking on the Microsoft side but I don't want to struggle with licensing and tools and all the cost of ramping up a fresh MS stack. If a client is inclined, I'll certainly take that initiative. Its a great toolset and server suite. However, I am interested in something new, something fresh, something that challenges me while giving back just as much. Frankly, its not the technology or the language features that intrigue me, its the people. Much like cocoa developers, rails developer are a family of cool geeks who respect each other. They might be competitive but most of all love to help each other solve problems. In c#, there's too much posturing and ego pumping in the workplace. I have been working with a very sharp young developer recently who has no interest in learning from his peers nor in sharing his technique. He is sharp and he knows it and that's where it ends. Its sad because he could be so much better and do so much more for everyone around him. I hope to find better character in the Rails community. There are certainly wonderful, philanthropic, brilliant people in the dot net community, they are just harder to find (I think) among the rest.

So I will be kicking out some rails websites shortly while I ramp up my Objective C / Cocoa Touch projects. I'll try to be more active in the blogging world as I go.


Monday, November 24, 2008

Unit Testing using Google Toolbox for Mac

It took some serious trial and error but I am very happy to have unit testing integrated into my project workflow.  I tried using XCode's native integration of OCunit but I couldn't get debugging to work.  

Google Toolbox for Mac, and the getting started tutorial, was much easier to follow and implement.  

I am using JSON in my project and I had trouble getting that SDK to work with unit tests but finally discovered that you have to set the "Additional SDKs" and "Other Linker Flags" in both your app and your Unit Test target.

I highly recommend integrating this framework early on anything not trivial.  It will increase the quality of your code dramatically.  At first, you'll feel like you are writing more code but in actuality, the process of test first will result in less code that does more.  Changing it will be much easier and unless you are already a guru level expert, you'll learn some things down the road that you'll want to go back and redo those early attempts.  Unit tests make that possible.  I'll stop expounding the virtues of TDD and just say: rock!  I feel like a programmer again! 

Wednesday, September 17, 2008

iPhone Audience Update and App Store Statistics

In July, I summarized data directly from Apple's financial reports to essentially show how pre-3G launch the number of iPhones sold was approximately 5 million to date.  It is now two months later and there is some evidence that Apple may have surpassed their 10 million goal already although a press release has not yet been posted.

First, since my original post, Apple has released one quarterly earning statement that puts the iPhone sales figures at  717,000 for third quarter 2008.  This gives us confirmed sales as of June 28th of 5.5 million before the iPhone 3G launch.

Second, the 1 millionth 3G iPhone was sold July 14th, three days after the launch.  That would mean to get to 10 million, 3.5 million additional iPhones have been sold in the last two months, which seems possible.  However, I expect a press release to be posted when this is confirmed since many industry analysts and pundits track the 10 Million iPhones commitment Steve Jobs made.

As of September 9th, the App Store stats are:
  • 3000 applications, 600 free
  • 100 million downloads
In the first 30 days, the stats were:
  • 30 million in revenues
  • 60 million downloads
I actually hear fairly inaccurate numbers from time to time and want to do my part to summarize where we are so that we can present an accurate picture to companies and individuals interested in pursuing iPhone & iTouch applications.  As usual, I would like to stress that iTouch users make up a substantial portion of the App Store users but I don't have specific figures on that at this point.

Monday, August 4, 2008

Web Application Development with iUI

Although late, I'm coming through as promised with a web version of the first ever "Atlanta iPhone & iTouch Developers Meetup Group" presentation. While no one would consider it groundbreaking (although "powerful" and "awe-inspiring" could be used), it is a starting point for developers like me who want to get started producing some faux native iPhone applications on the web.

You can try out the application here, download the source here (Note: this is not even the best version of this project, and was rushed to the finish line. The most useful code is in the "php/view.php" file.), and see the presentation here (leveraging the impressive Calameo service for presentation).

As discussed in the "Meetup", the most vital lesson learned during the 8 intense hours it took to create this application wasn't so much technical. Instead, the thing that struck me most was the shift in thinking required to produce a top-notch user experience on the iPhone. I'm not claiming to have done it here; rather, this project helped to shed some light (in some areas a blinding spotlight) on the fairly radical differences between designing a UI for the iPhone and the web.

My feeling is that perhaps the iPhone has the right interface for certain types of interaction, but not others. Hierarchical, sequential, menu-driven systems seem like a natural fit, for example. On the other hand, sorting large amounts of data using multiple filters may be a poor fit (like finding an airfare through Kayak.com). But perhaps my thinking is severely limited by a decade of primarily browser-centric development? Leave your thoughts in the comments.

Saturday, July 12, 2008

iPhone Audience, Part I: How large is the iPhone Application Market?

A good place to start an iPhone Development Blog is with the audience. For this post, we will focus on the simple question of the size of the iPhone application market, which we will follow up with a post on demographics.

Reading through Apple's financial results, I came up with a summary for iPhone sales through second fiscal quarter 2008 captured in the figure to the left. It would be nice to have monthly data to have a closer look at the nature of the growth curve but you get the general idea.

With the launch of the iPhone 3G, we expect to see a significant surge in quarterly and total sales although it will be interesting to see how much of those sales are to first time iPhone owners and how many will be iPhone classic upgrades. For the initial launch of the classic iPhone, Apple reportedly sold 270,000 units in the first 30 hours. The fact that iPhone activation will be exclusively in store may also contribute to more gradual numbers.

In a conference call on December 30, 2006, Tim Cook stated that Steve Jobs had set a goal of shipping 10 million units by the end of calendar year 2008 to capture 1% of an approximately 1 billion handset market worldwide. Strategy Analytics published a report that projects Apple will sell 6.3 million iPhone units this year. That would put the total year-end units right at the promised 10 million mark.

So now we know... There are certainly in excess of 5 million units shipped and it seems reasonable that there could be something like 10 million units sold worldwide by the end of 2008. This is validated by an article on MoneyCentral that states, "Apple has sold 6 million iPhones... American Technology Research analyst Shaw Wu told MarketWatch.com." It is also reasonble that the market will exceed 10 million by year end.

The graphic to the right illustrates projections of how iPhone units shipped can reach approximately 10 million by year end based solely on prior quarterly numbers, i.e. historical performance. We would expect a stronger lift from introduction of the 3G model than I have used in this projection. Now we some sense as to the size of our iPhone audience. For most applications, we need to add in iTouch users, which can run both the web and native applications. I have not been able to find an official source for iTouch sales as a percentage of iPod sales; however, Apple sold ten times as many iPods as iPhones according to the latest quarterly financial results so it is very likely iTouch users represent the larger audience for what is being branded "iPhone applications". Next time, we will investigate some of the demographics of this audience and its growth potential.

If you are already jumping ahead mentally to monetary considerations, please see this excellent post on iPhone App Entrepreneur, which summarizes revenue potential at difference price points. In addition, read through a writeup by PMP Today of the price distribution by category of 652 applications found within the iTunes App Store.

By the way, if you are starting to get nervous that this isn't a technology blog, don't. We will get to the technology shortly... Technology solutions always occur in a larger context and we just needed to get some basic facts and figures out there before we jump to the fun stuff!