Dec 12, 2009
A developer based in the USA would probably never have to wait for the previous day’s sales report. But the iPhone app selling business being a global operation all EMEA and even more so APAC countries have to wait for a while until they can see how they are doing. That’s why I started to collect data on when a daily sales report usually becomes available so that I might be able to see a pattern or draw any interesting conclusions from that.
You might remember that I added anonymous availability reporting to MyAppSales 1.0.10. This way whenever a new report is encountered I am able to send out a push notification and automatically post it to the MyAppSales Twitter feed. The theory was that Apple would not make daily reports available at different times around the globe, but just have a single database that treats all developers the same. After a couple of days testing this hypothesis it was proven correct. In the beginning I was often myself the first person to see a report and thus trigger the notification. But very soon it started to happen that colleagues started to consistently beat me to the punch, be it either because they where more eager to get the report or just because the number of people with newer versions of MyAppSales exploded as I added more and more compelling features.
Now after 2 months Thomas Bonnin (thanks!) suggested to do an analysis, so I created a CSV file for the daily availability times for the past 2 months and Thomas kindly created these two charts from it. Bear in mind that the detection granularity grew over time, so at the beginning of this report the actual availability times might have been actually a bit lower.
Nov 16, 2009
Apple appears to be cracking down on apps these days which are not sticking to the SDK agreement when it comes to using undocumented (read “private”) APIs. I’m attempting to make a list here, so if you have received the usual slap on the wrist for actually using one of the undocumented “features” to make it easier on yourself then please let me know so that I can add it here.
The problem with these undocumented API calls is that up until now Apple did not seem to uniformly care if they where to be found in submitted apps. But lately the reviewers seem to have gotten a static analyzer into their hands. With the help of which they can dump all the method names in your app so they will see if you are naughty or nice.
The official statement is that Apple is working on making more and more undocumented API public. They claim that those APIs are not properly tested and will probably change between OS versions thus breaking apps that rely on them. We’ll see if some of these following methods will eventually really become public.
Oct 27, 2009
In his recent article The Apple Tablet OS & User Experience Mike Rundle speculated on several scenarios regarding which OS and UI to expect from any coming Mac Tablet. It’s an interesting read. Now there are a couple of things that are absent from public discussion which I am trying to shed some light on.
iPhoneOS is actually a branch of MacOS which is basically an open source OS based on BSD plus many Apple-specific additions like the proprietary Window manager. This was said multiple times by Apple employees in passing. Apple is working very actively to reintegrate “learnings” and also iphone custom code they needed to specially create for handling multi-touch back into the MacOS version that’s to come after Snow Leopard. Touch is only one thing, another thing thats still missing from CoreOS is the advanced power saving techniques that make the iPhone work a whole day. An absolutely essential thing if you don’t wont to recharge your tablet every 3 hours.
Then there is the matter of chips. The mobile parts all rely on ARM and even the chip company that was acquired by Apple probably will license ARM cpu designs and build them. Intel seems to just not cut it in terms of battery endurance versus processing power. Intel begs to differ, but Apple seems to have set it’s sights on using ARM as the main platform for all their mobile devices. The current MacOS can only be built for Intel, support for PowerPC has been discontinued for 10.6.
I think what’s happening right now inside Apple is this: They are trying to achieve what Microsoft has abandoned eons ago: a unified CoreOS which can be built for a variety of cpus. One possible reason besides the platform’s age might be to free up manpower to work on ARM being the second possible build platform for CoreOS. Apple might also drive a dual strategy and choose whatever chip platform has the most endurance for the needed performance at the time of manufacture. With a unified OS they could switch CPUs at a whim and thus can get better prices for their CPUs.
This will be also the platform to power the iPad. Apple will not compromise on the technology just to make it compatible with current generation binaries. Though most likely in a future version of XCode you will just have to change the build platform so that you can rebuild your iphone app for the ipad. And in some circumstances you’ll have to rearrange the UI elements and resize static images where used. So I guess a month in lead time should be sufficient for most app developers to get a couple of their apps rebuilt.
It will still be Objective-C though…
The most important question is which strategy would make Apple more money: an open OS for which anyone can write and sell apps. Or the iphone strategy where they make 30% on each sale. Clearly the latter has proven to be an enormous boon for Apple. So why should they change it? It is very likely that iTunes for Macs will get a Mac app store at the same time that a iPad section opens on it because both will you will be able to purchase CoreOS apps (Apple hopes also to sell much more games this way) via iTunes.
Actually I don’t think we will see the iPad shipping at the beginning of 2010 as some sites predict. It might be technically “done” already, but the OS is still missing. If Apple continues their recent pattern then we can expect Mac OS X v10.7 “COREpard” in Summer 2010. That will be the time when we will see the iPhone 4G being released as well as the iPad.
In any case we developers can look forward with anticipation of added profits from additional platforms and being able to sell almost identical content several times: for iPhone, iPod, iPad and Mac.
Sep 01, 2009
I was quite looking forward to getting a chance to improve my already quite satisfying Mac experience to the latest iteration of the operating system. Having bought my new MacBook Pro after Juni, I was elegible for an extra cheap upgrade. So I filled in my serial number and got promised a delivery about a week afterwards. But not being the patient type I figured it would not be a sin to borrow a friend’s DVD and install the new cat. Hey, I own a license, who cares which media I’m using?
Installation was as painless as can be. You pop in the DVD while your Mac is running, click a couple of times and then you wait. After 20% there is a first reboot, then you wait, all together roughly 40 minutes. At first you don’t see any new stuff, except the same welcome Animation playing in a Window instead of full screen. But then you start to see little things. Many little things, in fact enough to warrant a 23-page in- depth technical review on Ars Technica which is great bedside reading making you dream nicely about your invigorated Mac.
I was excited to install the new Xcode 3.2 from the “Optional Installs” folder on the DVD, then I downloaded and installed the latest iPhone 3.1 SDK for Snow Leopard which in contrast to Leopard is just the SDKs and now Xcode. The Leopard version contains Xcode 3.1.4, which for strange reasons does kind of run, but is “not officially supported by Apple to run on Snow Leopard”. Still, I will show you how you CAN compile against a 2.x SDK. After that I will show you Apple really wants you to do, but leaves it up to SDK diggers to tell the public.
Jul 19, 2009
Most of the world sees the annual WWDC as one of several fixed occasions where new and exciting stuff is announced or released. But the meat of this Worldwide Developer’s Conference (as the name suggests) is about training.
Being able to attend the WWDC is the dream of many new iPhone developers, as the numbers have shown. 60% of the total 5200 attendees to this years WWDC have never been to the conference before. But attending is expensive. Besides of travel and hotel expenses the ticket alone costs in the vicinity of $2000. Who can really afford to spend a month’s salary on this conference sacrificing a week of vacation time in tandem?
When I got Apple’s notification two days ago that the session videos are now available for sale my heart jumped and my brain got fuzzy thinking whether I should take the plunge and spend $299 for just the iPhone stream or $499 for both iPhone and Mac. So finally after checking my savings and finding several excuses for spending the money like “It’s training and that’s priceless” I spend 429 Euros on the complete package.
Jul 10, 2009
Now that OS 3.0 has been released and we know that the 3.1 bugfix release is on rails we have to re-evaluate the question which platforms we need to be able to support. On the one hand it might be nice to use all the new 3.0 bells and whistles. One the other hand though this could mean we risk losing half of our potential customers who are still on “old software”.
Besides simple disinterest or negligence the main reason for sticking with old software is that people are always waiting to hear from the iPhone Dev Team that a new version can be jailbroken and sim-unlocked. If you are using your iPhone in the network of your own choosing, you would not want to give this up even for the greatest new update.
From the developer’s point of view there are a couple of features (even before version 3.0) where you had to bump up the minimum OS version. I for one implemented the CLLocation properties course and speed in iFR Cockpit which only became available as of 2.2.
Just today Applyzer released an analysis of the required OS version for all apps on the store. Also AdMob frequently publishes metrics on OS versions in use. Let’s check those to get some guidance for our own apps.
Jul 07, 2009
Apple to create API … if enough people want it!
Ever since my app MyAppSales got rejected I have been lobbying for an official and secure API which would permit us developers or creators of tools like AppViz to interface with iTunes Connect. The current situation, as you are probably well aware, is a real pain in the backside.
According to Apple this is the “expected mechanism for retrieving that data”. So they really expect developers to go to the report site every day and download daily reports manually. Apple makes great software and devices, but I keep asking myself how they can be so far away from the truth of the facts of real developer life?
Jun 29, 2009
This is an overview of reasons why Apple has rejected apps temporarily or permanently. Not some theoretic reasons that might be construed from the SDK Agreement, but real instances of passed judgement. For each rejection reason the original paragraph written by Apple is included. I made it as non-judgemental as possible.
Originally this article was written for the Cocoapedia but I am publisizing it here for added exposure because I am hoping for comments informing me of missing reasons. For a reason to be included it must be documented on your blog or website and the link given. There is a website AppRejected.com that seems to be dedicating to collecting such rejection reasons, but there is no way to contact the owner and the list seems to be lacking specific citing of sources and order.
This list may serve as a checklist to help guide the general design principles such that fellow developers can avoid the temporary pitfalls which might delay their apps for two weeks. Also you might check your “killer app ideas” against this list to save you from wasting precious time on ideas that according to this list would in all likelyhood never be permitted into the store.