Complaints about the iPhone App Store are not uncommon among developers. The submission process is frustrating at best, you can expect arbitrary rejections, and Apple's policies have not always been particularly open or welcoming. If you make it through the process and get an app accepted, it can be essentially buried where it will remain unused unless you dedicate significant energy to marketing it.
And so I figured I would do a small scale experiment to check App Store response in these areas (and App Store user behavior)....and post the results here in the hopes that developers planning to write iPhone apps would benefit from my experience.
Cheaper by the (Half) Dozen
Having a limited amount of time available, and appreciating the value of quick iterations in development or in any business process, I limited myself to submitting a few apps with similar functionality and different target audiences. What follows is my findings (with a bit of R code used for analysis).
Six free iPhone apps were submitted for publication during a 21 day period between July 23, 2010 and August 13, 2010. Four apps were accepted and two were rejected.
The four apps that were accepted:
- R-Chart (R Programming Community News) has been available 96 days and averaged 4.44 downloads per day. (Download it if you want to keep up with this blog and/or R community news).
- FRB (U.S. Federal Reserve Board News) has been available 82 days and averaged 4.15 downloads per day.
- Duq News (Duquesne University News) has been available 92 days and averaged 2.52 downloads per day.
- Visit the Lehigh Valley (Lehigh Valley Tourism Info) has been available 93 days and averaged1.31 downloads per day.
Two apps were rejected
- DeSales U (DeSales University News)
- Blender Buzz (Blender Software Blog/News )
App Functionality and Subject Area
All apps contained essentially equivalent functionality, but differed by subject area and graphic and styling qualities. The "R-Chart" and "Blender Buzz" apps reference resources of interest to software users and were intended to promote this blog and the Blender Buzz blog. They are topical and not limited by locale or institution. "Duq News" and "DeSales U" provide news from Duquesne and DeSales Universities. "Visit the Lehigh Valley" provides information about places and events for visitors to Eastern Pennsylvania. The "FRB" app provides latest publicly available news from the U.S. Federal Reserve Board.
Review Process and Time
It took between 7 and 9 days for the App Store to review an app and either accept or reject it. It does not appear that subject area of the app contributed to its acceptance. Both R-Chart and Blender Buzz were directed at programming communities - one was accepted and the other was rejected. Likewise, one of the University apps was accepted, the other was rejected. Each app was submitted once only. None were resubmitted after initial rejection.
A total of 1120 have been downloaded. As noted above, the result is between 1 and 4 downloads per day.
I have not expended much effort in promotion. I tweeted about the R-Chart App and mentioned it here on this blog but never promoted any of the others. So the downloads were the result of folks searching for an app that was of interest to them.
So getting an app accepted by the app store is not an insurmountable process - but does require time and planning. It is not an activity that will just take care of itself. And because of inconsistency in the process, you would do better to allot a bit of extra time for the app store process. And unless your app fills a rather unique niche, you will need to do marketing in the same way that you would for a web site or any other resource.
R Code used in the Analysis is Below
> # Read in the data
> df = read.csv('app_stats.txt')
App Downloads Submitted_Date Response_Date Response
1 R-Chart 426 2010-07-23 2010-07-30 Accepted
2 FRB 340 2010-08-04 2010-08-13 Accepted
3 Duq News 232 2010-07-26 2010-08-03 Accepted
4 Visit the Lehigh Valley 122 2010-07-25 2010-08-02 Accepted
5 DeSales U 0 2010-08-02 2010-08-09 Rejected
6 Blender Buzz 0 2010-07-26 2010-08-03 Rejected
> # Get the total downloads
> Do a plot of downloads
> ggplot(data=df, aes(x=App, y=Downloads, fill=Response))
+ geom_bar() + coord_flip() + theme_bw()
> ggplot(data=df, aes(x=App, y=as.numeric(Processing_Time), fill=Response)) + geom_bar() + coord_flip() + theme_bw()
> # Cast the date columns as such
> # Find out total dates each application was on the market
> as.Date('2010-11-03') - min(df$Submitted_Date)
> # Determine total number of days apps were being submitted for review
> max(df$Response_Date) - min(df$Submitted_Date)
> # Processing time at the app store
> df$Processing_Time = df$Response_Date - df$Submitted_Date
> # Time each app has been available for download
> df$days_available = as.Date('2010-11-03') - df$Response_Date
> # Downloads per day
> df$downloads_per_day = df$Downloads/as.numeric(df$days_available)
> # Limit view to selected columns