Cloud Four Blog

Technical notes, War stories and anecdotes

Ditching the Training Wheels: Why the iPod Touch Will Be Discontinued

Shortly after it was announced in September 2007, Steve Jobs described the iPod Touch as “training wheels for the iPhone”. Those training wheels have served Apple well over the last four years.

But I’m convinced that Apple is ready to ditch the training wheels—and the iPod Touch along with them. While it may not happen this year, I wouldn’t be surprised if it does. If the iPod Touch is still around three years from now, I will be very surprised.

Let me explain why the end of the iPod Touch is inevitable and why Apple might be closer to discontinuing the iPod Touch than most think.

Why Discontinuing the iPod Touch is Inevitable

By all accounts, the iPod Touch has been a very successful product. Apple has sold over 60 million iPod Touches which represents almost a third of all iOS devices sold. On recent earnings calls, Apple has noted that iPod Touch sales continue to grow and now account for over half of all iPod sales.

So why would Apple discontinue a successful product?

iPod Sales are Stagnating

Explosive growth is everywhere in mobile. I’m accustomed to looking at graphs with a sharp upward trajectory. So graphs that deviate from that pattern stick out like a sore thumb. Last October, Asymco published one that showed how iPod sales had been passed by iPhone sales.

Graph showing iPod sales have stayed relatively the same while iPhone sales have grown rapidly to surpass iPod sales

Since 2006, iPod sales have stayed at near the same volumes. There are seasonal growth spurts—many are sold during the holiday season. But overall growth has stagnated.

iPod revenue has continued to grow due the fact that an increasing percentage of iPod sales come from iPod Touch devices which have a higher price point. But even that growth didn’t prevent Apple from experiencing a decrease in iPod sales in Q2 with 9 million iPods sold compared to 10.9 million in Q2 2010.

No matter what silver lining you find, it is clear that iPod sales aren’t keeping up with iPhone and iPad growth.

The Market for the iPod Touch is Shrinking

When people talk about the market for the iPod Touch, they usually talk about three types of people:

  1. Teens and pre-teens who do not own an mobile phone
  2. Adults who have to use a different phone for some reason (e.g., a corporate-supplied blackberry), but want an iOS device for personal use
  3. An adult who cannot afford the price of an iPhone and its recurring fees so they have a cheaper phone

There is demographic data that supports reason number one. In January 2010, Comscore and Admob released a survey that found that 65% of iPod Touch owners were seventeen or younger.

Graph comparing demographics of mobile platforms including iPod Touch

However, the number of youth who don’t have mobile phones is decreasing rapidly. Pew Research found that in the United States the “bulk of teens are 12 or 13 when they get their first cell phone”. The average age that U.K. children get their first mobile phone is eight years old. The trend around the world is towards children getting mobile phones at younger ages.

age at which child got first cell phone - parent reported

This means that over time the 65% of iPod Touch owners who are under 17 are likely to convert to a mobile phone. If they can afford an iPhone, they’ll likely get one. Otherwise, they end up being very similar to the adults who want an iPhone, but can’t afford one—effectively collapsing those two segments into one.

As the number of people without smartphones decreases regardless of age, it really comes down to choosing the iPod Touch because the iPhone is too expensive. If only Apple planned on selling a cheaper iPhone to reach those people.

A Quick Aside: Tell Me Again Why Companies Should Make Products to Compete with the iPod Touch

Many people have wondered why more companies don’t make products that compete with the iPod Touch.

Let’s take a look at what we know about landscape for an iPod Touch competitor:

  • iPod sales aren’t growing
  • The core market is shrinking as more youth get phones
  • Soon there will be $85 smartphones

Given these facts, why would any company chase the iPod Touch?

Coming Soon: The Cheaper iPhone

There is no question that Apple is going to release a cheaper iPhone. The only question is how much it will cost, what will include, and when it will be released.

Why are we so confident? To repeat an earlier post, Apple COO Tim Cook, CFO Peter Oppenheimer and VP of Internet Services Eddy Cue recently met with Bernstein Research analyst Toni Sacconaghi who published an note to advise his financial clients1. Here is the key paragraph from Fortune’s summary of Sacconaghi’s note:

The analyst says Cook “appeared to reaffirm the notion that Apple is likely to develop lower priced offerings” to expand the market for the iPhone. Cook said the company is planning “clever things” to address the prepaid market, and that Apple did not want its products to be “just for the rich,” and that the company is “not ceding any market.”

So we can be confident that they are working on a cheaper iPhone, so let’s try to answer the other questions.

What will the cheaper iPhone look like? What features will it include?

I have no idea. It’s been fun trying to track the rumors of the next generation iPhone and try to figure out what might actually be rumors coming from the new, less expensive iPhone.

How much will it cost?

The Bloomberg reported that the target price for the cheaper iPhone is $200 without contract. The Wall Street Journal said that the cheaper iPhone “would be available to carriers at about half the price of the main iPhones. That would allow carriers to subsidize most or all of the retail price”.

When will the cheaper iPhone be released?

I believe it will come out in September with the next generation iPhone. Not only does the timing make sense, but I think it would have been irresponsible of Cook and Oppenheimer to discuss the cheaper iPhone with the Bernstein Research analyst if it wasn’t due this year.

Is there room for a cheaper iPhone and the iPod Touch?

The low-end iPod Touch costs $229. If someone can get an “iPhone Nano” for around $200 without a contract, why choose to buy an iPod Touch. Even if you don’t use the phone capabilities, you can simply use it on WiFi. If you can later afford to use it as a phone, you’re set.

Right now, the iPhone and iPod Touch can coexist because while the iPhone sells for less than the iPod Touch, that price isn’t the true price. It is the subsidized price and consumers understand the commitment they are making. A contract-free, $200 iPhone will cannibalize iPod Touch sales.

Would Apple Really Cannibalize its Own Product?

Yes. This is what sets Apple apart. It isn’t afraid to cannibalize its own products. Plus, Apple needs to sell cheaper iPhones for many reasons I’ve covered in the past.

More Signs that the Cheaper iPhone Will Replace the iPod Touch

I’ve suspected that the iPod Touch would get EOL’d for quite some time, but recent developments have made me convinced it is going to happen sooner rather than later.

First, in order for Apple to go after people who haven’t been able to afford an iPhone, they need to do more than simply provide a less expensive phone. They need to address some of the following issues:

  • The phone needs to work for people who don’t have a computer for syncing.
    Last week’s iCloud announcement now makes this possible.
  • If they want to pursue prepaid market, it needs to be available without contract.
    This is a constant in all of the rumors about the cheaper iPhone
  • Ideally, the phone would be unlocked so you can pick the best plan.
    For the first time this week, Apple started selling unlocked iPhones in the United States. This will allow people to use iPhones on regional carriers like MetroPCS, Virgin and Cricket.
  • Being unlocked won’t be as useful unless you can switch from carrier to carrier.
    Verizon’s CFO has confirmed twice that the next iPhone will be a “world phone” meaning that it will support both CDMA and GSM allowing it to hop between networks.

In addition, if they want to attract more of the teen audience, they should find a way to replicate the success of the Blackberry Messenger. Oh wait, that’s right. Apple now has iMessage.

So those are the tactical things that Apple needs to do in order to have a successful cheaper iPhone launch. What other signs are there that the iPod Touch might be nearing the end of it’s life?

And perhaps most importantly, the new iPhones are going to be announced at the event that Apple has traditionally used to launch its music products.

Will the iPod Touch Be Discontinued this Year?

I’m increasingly convinced it will happen soon. Will it happen this year? I’m not sure.

But it seems clear that Apple is preparing to take off those training wheels and go after the lower end of the smartphone market.

Why is Apple Going to Release a Cheaper iPhone? Because They Said So.

The most common objection to my article on why a cheaper iPhone will be a big deal is that Apple competes on premium brand and won’t cannibalize sales of its high end product.

I was surprised people contested the idea that Apple is going to sell a cheaper iPhone. But then I realized that not everyone follows mobile as closely as I do and probably missed the news:

Apple said they were going to release a cheaper iPhone.

Apple COO Tim Cook, CFO Peter Oppenheimer and VP of Internet Services Eddy Cue recently met with Bernstein Research analyst Toni Sacconaghi who published an note to advise his financial clients1. Here is the key paragraph from Fortune’s summary of Sacconaghi’s note:

The analyst says Cook “appeared to reaffirm the notion that Apple is likely to develop lower priced offerings” to expand the market for the iPhone. Cook said the company is planning “clever things” to address the prepaid market, and that Apple did not want its products to be “just for the rich,” and that the company is “not ceding any market.”

What is there to debate?

You may think that they are going to cannibalize their high end sales or that they will damage their brand. I may think they proved they are willing to undercut their own products with the iPod Mini and Nano so they can do it again.

But regardless of who is right, it seems pointless to debate whether or not they are going to release a cheaper iPhone. It’s coming regardless.

Cheaper Doesn’t Mean Cheap

I think a lot of people are getting hung up on the word cheaper and hearing the negative connotation of cheap. I wonder if people would have had as strong of a reaction if I had used “less expensive” instead of cheaper.

No one looks at the quality of the iPod Nano and thinks “cheap,” but it is undeniably cheaper than the classic iPod or the iPod Touch. Expect the same from a “cheaper” iPhone—it will look and feel great, but cost less.

So why use “cheaper” instead of “less expensive?” Brevity.

1 I doubt a financial advisor could lie about meeting with Apple management. That would likely cause them some SEC grief. But if you want corroborating sources, check out the New York Times, Bloomberg, and Wall Street Journal. Everyone is hearing a cheaper iPhone is in the works. It is the details of the phone (e.g., size) that no one knows.

2011 is not the Year of the iPad 2. It is the Year of the Cheaper iPhone.

Steve Jobs on stage announcing 2011 as the year of the iPad2Yesterday, Apple declared that 2011 is the Year of iPad 2. Calling 2011 the year of anything other than transformation in the Middle East is crazy.

But if we’re going to limit ourselves to Apple products, I think it is more likely to be the Year of the Cheaper iPhone than the iPad 2.

Before the first rumors of a cheaper iPhone surfaced, I’d been talking to friends about demographic and sales information that indicated to me that the tech press was too focused on high-end devices and missing the lower end of the market.

Because of this, I’m bullish on the impact of a cheaper iPhone and what it would mean for Apple’s smartphone market share. Let me explain why.

The Real Reason Why Android is Successful: It’s Good Enough and Cheaper

It seems like I’ve spent most of my life rooting for companies who made products that were superior in design, but lost to products that were good enough and cheaper.

I was flabbergasted that people would buy inferior products that promised headaches instead of joy. I thought people just didn’t understand how these inferior products were going to cost them much more in the long run with the thousand cuts of poor user experience and design.

At some point I realized that I wasn’t giving people enough credit. They knew that Tivo was a better product, but the DVR that the cable company gave them for free was good enough and cheaper. The same has long been true of Windows machines.

The problem for a lot of Apple fans is that they still can’t understand why someone would chose the obviously inferior product. M.G. Siegler of TechCrunch wrote an article entitled, “Is Android Surging Only Because Apple Is Letting It?” His thesis was that Android was only winning because the iPhone wasn’t available on Verizon. In the article, he wrote:

Now, don’t get me wrong, almost all Android phones are a million times better than the phones we had just a few years ago before the iPhone burst onto the scene. And if the iPhone didn’t exist, there is no question that I would use an Android phone and would probably be very happy with it. But the iPhone does exist. And I simply can’t bring myself to use an Android phone when I know a superior device is out there. That’s my only requirement for me to use a product: it has to be the best.

Most people don’t require their phones to be best. They simply want something that’s good enough to get email, text message, and browse the web. Oh and cheaper is better.

BTW, the predictions of big lines to buy the Verizon iPhone hasn’t panned out and sales have thus far been “disappointing.” So much for the theory that carrier exclusivity is why Android passed iPhone in market share.

But Isn’t Android the Same Price as the iPhone?

A common misconception about the smartphone market is that Android phones and iPhones are essentially the same price. Both the Samsung Fascinate (Galaxy S) and the iPhone 4 cost $199 with a two-year contract.

But the Android phones don’t stay at their launch price point. Verizon had a large television campaign last fall that offered a buy one get one free offer for the Fascinate. Verizon’s site currently lists 13 different Android models for under $100.

That’s why the average selling price (ASP) is so important. On average, the iPhone costs twice as much as its nearest rival:

Chart comparing handset ASP

Q2 2007 to Q2 2010 Average Selling Price. Source: Asymco

The lower ASP for Android devices is what allows carriers and retailers to offer steep discounts on these devices. And cheaper phones are important because there is a lot of growth at the lower ends of the market.

Have you heard of the Samsung Freeform?

No? I hadn’t either until I noticed it was the number three phone in terms of impressions in Millennial Media’s March 2010 mobile mix report.

Table of top phones in Dec 2010 on Millennial Media network. Freeform is number six.

Millennial Media’s report tracks the number of ad impressions delivered to a given phone. As you might expect, the top phone is the iPhone and the top ten list contains a mix of Android, Blackberry and iOS devices.

Photo of Samsung Freeform w/ MetroPCS on screen.But amongst those well-known devices is the Samsung Freeform. The Freeform was still the number six phone in the report as late as December of last year.

The inclusion of the Samsung Freeform on this list stood out like a sore thumb. I had to know more about this phone.

It turns out that the Samsung Freeform is one of those feature phones that start to edge into smartphone-like capabilities. It has a keyboard for texting and a reasonably capable browser.

The phone is only available through MetroPCS. Right now, you can get it for $49 unsubsidized.

But more importantly, you can get unlimited voice, text and web on the Samsung Freeform for only $40 per month.

Growth at the Low End of Smartphone Market

Around the same time I learned about the Freeform, a Comscore survey in Europe found that “smartphones are generally seen as luxury devices that come with big price tags and high monthly tariffs, yet the largest segment of the market and the one demonstrating greatest momentum is actually the low to mid tier.”

I haven’t found a similar study of growth rates in the United States, but I have found other evidence that seems to support the theory that significant growth in smartphone market is happening at the low price points.

U.S. Minorities Lead Caucasians in Mobile

Over the last year, there have been numerous studies showing that minority adoption and usage of mobile is outpacing caucasians:

Smartphone Penetration by Race/Ethnicity

Pew Internet Research found that African-Americans and Latinos use more mobile data applications. Nielsen found that a higher percentage of minorities both own smartphones and recently acquired smartphones.

It probably goes without saying, but census data shows that minority populations still have lower household incomes than caucasians. Obviously, lower prices will be an important feature for people with less discretionary income.

Android Growth Due to Lower Prices

As I stated above, I believe Android’s skyrocketing growth can be attributed to being good enough and cheaper. The last comparison of income levels for Android and iPhone owners is from Q1 2010. At the time, 36% of Android owners had household incomes of less than $50,000 versus only 22% of iPhone owners. I suspect the difference is more exaggerated now.

Therefore, Android’s success is further proof that growth is happening at the lower end of price spectrum.

The Rational for the Cheaper iPhone in a Single Chart

A couple of weeks ago, I came across a pie chart from Comscore that clearly explains why Apple was rumored to be making a cheaper iPhone:

Comscore pie chart showing household income of iPhone users

If you read the Comscore blog post that this chart comes from, you won’t find anything about the cheaper iPhone. The post focuses on how valuable iPhone subscribers will be to Verizon compared to other smartphone owners because iPhone owners have higher household incomes.

According to Comscore, 81% of iPhone owners have household incomes greater than the U.S. median household income ($44,389).

TNS Global found similar results in a survey noting that “iPhone users are also younger, but the most highly educated, employed as a manager or professional and earning more than $100K per year.”

Does Apple care about the low end of the market?

When I tweeted about the above chart, I got a lot of feedback from people who were confused about what I thought the chart meant. My friend Jonathan Stark jokingly asked if BMW was going to announce a car for under $10k? The implication being that Apple stakes out the high end and doesn’t care about the low end of the market.

@grigs I think we're in agreement... Apple don't give a crap about the low end of the market (other than perhaps to block competitors) --@jonathanstark

I have always thought that Apple cared about market share, but that it wasn’t the top goal for Apple. Apple seems to value:

  1. Building the best product they can
  2. Selling products with a high profit margin
  3. Gaining market share

In that order. They won’t compromise their design ideals, brand or margins to chase the low end.

But if they can create an cheaper iPhone that lives up to Apple’s brand promise and sustains their margins, I see no reason why they wouldn’t pursue the low end of the market given the growth opportunities there.

iPod Nanos

Until recently when people brought up the idea of Apple pursuing an iPod Nano and iPod Shuffle like approach to the smartphone market, I didn’t think Apple could do it. It didn’t seem like there was enough room to differentiate the iPod Touch from a low end iPhone.

I also had my doubts they could build a product at the low price point without compromising. They can’t decrease the screen size like they did for the iPod Nano or remove it entirely like they did for the iPod Shuffle.

However, I now believe there is a lot of room for Apple to explore the low end market. There are a lot of premium features on the iPhone 4, like the retina display, that could be removed on a low end phone without compromising the quality of the design.

But no matter what I think, we should listen to what Apple COO Tim Cook said about the low end market. Cook recently told an analyst that “Apple did not want its products to be ‘just for the rich,’ and that the company is ‘not ceding any market.'”

Will a Cheaper iPhone Make a Difference? The Biggest Cost of a Phone is the Carrier Subscription

When rumors of the cheaper iPhone first surfaced, many people commented on the fact that reducing the cost of the phone won’t help Apple unless they do something to reduce the monthly subscription cost. I disagree.

The success of Android indicates that even if the monthly costs are the same, that many people will chose the slightly less expensive phone. While consumers in carrier subsidized markets never see the full average selling price of phones, it does seem to make an impact in market share.

Second, if Apple is able create an iPhone that is relatively inexpensive without a carrier subsidy, then people can choose to buy it without a contract or go prepaid. In fact, a cheaper iPhone may be the best way to force lower prices by increasing competition between carriers.

There are nuggets that hint at this strategy in quotes from the recent analyst briefing:

A cheaper iPhone available without a contract and with a soft SIM allowing people to switch networks would force carriers to compete on price. If Apple also expands into the prepaid market and signs up lower priced carriers like MetroPCS and Virgin Mobile, the impact on carriers could be as large as the impact of the original iPhone.

But even if they cannot lower the carrier costs, making a cheaper iPhone is the only thing they have full control over if they want to expand the iPhone and reach people with lower household incomes.

A Cheaper iPhone Will Be a Smash Hit

Those who have followed me on twitter or seen me speak at conferences knows that despite the fact I love Apple products, I haven’t been bullish on its prospects of Apple dominating mobile market share. The main reason for my pessimism had been based on other platforms being good enough and cheaper.

Horace Dediu of Asymco recently wrote that he still holds “that 20% smartphone share is possible for the iPhone.” This was my best guess for where Apple would end up as well.

The news that Apple will be releasing a cheaper iPhone changes my view substantially. If Apple is aggressive about the low end of the market, and it sounds like they may be, then the limitation on their market share will likely be their ability to keep up with demand. My off-the-cuff guess is a cheaper iPhone puts Apple at 30 to 40% of the market when the dust settles.

But we don’t need to look that far into the future to know that a cheaper iPhone is going to be a big hit. It is going to be huge this year.

The Importance of Average Selling Price

Comparing prices of mobile phones is difficult. I was reminded of this fact recently when I saw Amazon’s price for the Droid X: 1 cent.

Droid X at Amazon for $0.01

At launch, the Droid X cost $199 with a two-year commitment. Amazon originally offered the Droid X for a penny in November—only four months after the phone was released.

That’s a tremendous phone for a penny.

But the point of this post isn’t to convince you that this is a great deal. Instead, I wanted to look at the challenges of trying to compare mobile phone products based on price.

Last summer, there were numerous articles comparing the Droid X to the iPhone 4. Nearly every article noted that they cost the same price with a two-year contract.

But while the iPhone 4 continues to sell at $199, someone who waited a few months to buy a Droid X can save quite a bit of money.

This illustrates some of the problems that come from trying to compare mobile prices. For example:

  • Every new product is judged against the comparable Apple product. However, these comparisons only occur at the time the products are launched, not in the subsequent months when the price decreases. Apple is the only company that maintains the product price until a new model is ready to replace the old one.
  • Apple also uses a minimum advertised price policy to prevent retailers from selling products at a steep discount. Most other companies allow retailers to discount their products which means consumers can find deals.
  • Carrier subsidies distort the market. They fluctuate from product to product and over time depending on what the carrier and the handset manufacturer negotiate. And carrier subsidies do not exist in every country which means that the U.S. view of the relative prices of phones will differ from those in countries without subsidies.

Because these factors make it difficult to compare the price of phones, I don’t pay much attention to the price that new products are released at. Instead, I look at the average selling price to get a sense of the “real” price of the handsets.

The Average Selling Price

The average selling price (ASP) tell us how much money a handset manufacturer is receiving on average for the phones that it sells. The average selling price is usually reported during quarterly financial results and thus can be considered as accurate as possible given regulation on fraudulent reporting.

Horace Dediu of Asymco recently charted the ASP for major handset manufacturers.

Chart comparing handset ASP

Q2 2007 to Q2 2010 Average Selling Price. Source: Asymco

Looking at this chart, it becomes clear the Apple is still selling at the high end of the smart phone market. The average selling price for the iPhone is $635. The nearest competitor is RIM with an ASP that is half of the iPhone ($295).

Even if I’m walking out of the store with a new iPhone for $199, someone is ultimately paying $635 for that phone. And my suspicion is that the person ultimately paying that price is the consumer.

This is why the average selling price is probably our best metric for comparing how much companies are really charging for their phones over the life of their products.

Averaging selling price helps get rid of the distortion of the carrier subsidies and inflated MSRP which only the few customers who buy immediately at launch have to pay. ASP instead shows the “real” price that manufacturers are getting for their phones which makes it easier to compare true costs.

When is Mobile Safari not Mobile Safari?

When it is AppleCoreMedia. Let me explain.

I wrote recently about a quiz that we built that included HTML5 audio files. In addition to the volume problems already discussed, we encountered intermittent issues where the audio either would not play or would play much later than it should.

For the quiz, we preloaded the HTML5 audio file via javascript. To make sure that the file was set up for caching, we set far future expires headers as well as making sure the file was sufficiently small.

Whenever we displayed the screen that told the user whether or not they got a question correct, we play the preloaded audio file. Most of the time this worked flawlessly, but occasionally the iPhone would play the sound long after the results screen was displayed or not play the file at all.

That’s when things started getting weird. We watched the log files and started seeing some odd behavior. Here’s what we saw:

"GET /trivia HTTP/1.1" 200 2346 "-" "Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_2_1 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8C148 Safari/6533.18.5"
"GET /media/quiz_wrong.m4a HTTP/1.1" 206 337 "-" "AppleCoreMedia/1.0.0.8C148 (iPhone; U; CPU OS 4_2_1 like Mac OS X; en_us)"
"GET /media/quiz_right.m4a HTTP/1.1" 206 337 "-" "AppleCoreMedia/1.0.0.8C148 (iPhone; U; CPU OS 4_2_1 like Mac OS X; en_us)"
"GET /trivia.css HTTP/1.1" 200 988 "-" "Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_2_1 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8C148 Safari/6533.18.5"

See what happened there? The user agent string changed from the normal Mobile Safari one (AppleWebKit) to one I hadn’t seen before: AppleCoreMedia.

It makes sense when you think about it. All video and audio playback gets handled by a system component. That component is responsible for downloading the asset. Ergo, the user agent string should change accordingly.

Surprisingly, this is true on desktop Safari as well. The equivalent user agent string is “Apple Mac OS X v10.6.6 CoreMedia v1.0.0.10J567.”

AppleCoreMedia Caching

On its own, the change from Mobile Safari’s user agent string to AppleCoreMedia’s user agent string would hardly be worth noting. But we were encountering problems with the sound not playing all of the time.

Because we noticed the sound problems happened more frequently on 3G than on WiFi, we started to suspect network issues and wondered if the audio file that we preloaded was getting cached properly. Here’s what we found in the logs:

"GET /trivia HTTP/1.1" 200 2346 "-" "Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_2_1 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8C148 Safari/6533.18.5"
"GET /media/quiz_wrong.m4a HTTP/1.1" 206 337 "-" "AppleCoreMedia/1.0.0.8C148 (iPhone; U; CPU OS 4_2_1 like Mac OS X; en_us)"
"GET /media/quiz_right.m4a HTTP/1.1" 206 337 "-" "AppleCoreMedia/1.0.0.8C148 (iPhone; U; CPU OS 4_2_1 like Mac OS X; en_us)"
"GET /trivia.css HTTP/1.1" 200 988 "-" "Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_2_1 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8C148 Safari/6533.18.5"
"GET /media/quiz_wrong.m4a HTTP/1.1" 206 5494 "-" "AppleCoreMedia/1.0.0.8C148 (iPhone; U; CPU OS 4_2_1 like Mac OS X; en_us)"
"GET /media/quiz_right.m4a HTTP/1.1" 206 2597 "-" "AppleCoreMedia/1.0.0.8C148 (iPhone; U; CPU OS 4_2_1 like Mac OS X; en_us)"
"GET /js/trivia.js HTTP/1.1" 200 2618 -" "Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_2_1 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8C148 Safari/6533.18.5"
"GET /media/quiz_right.m4a HTTP/1.1" 206 337 "-" "AppleCoreMedia/1.0.0.8C148 (iPhone; U; CPU OS 4_2_1 like Mac OS X; en_us)"
"GET /media/quiz_wrong.m4a HTTP/1.1" 206 337 "-" "AppleCoreMedia/1.0.0.8C148 (iPhone; U; CPU OS 4_2_1 like Mac OS X; en_us)"
"GET /media/quiz_right.m4a HTTP/1.1" 206 2597 "-" "AppleCoreMedia/1.0.0.8C148 (iPhone; U; CPU OS 4_2_1 like Mac OS X; en_us)"
"GET /media/quiz_wrong.m4a HTTP/1.1" 206 5494 "-" "AppleCoreMedia/1.0.0.8C148 (iPhone; U; CPU OS 4_2_1 like Mac OS X; en_us)"

All of that occurs before the first quiz answer is submitted so it is only in relation to preloading the audio. The files get downloaded multiple times. Lest you think this is simply http chunking per the 206 responses, here are the file sizes:

-rw-r--r-- 1 cloudfour psacln 2256 Dec 10 17:33 quiz_right.m4a
-rw-r--r-- 1 cloudfour psacln 5153 Dec 10 17:33 quiz_wrong.m4a

Before the audio file is ever played, AppleCoreMedia has downloaded 11,662 bytes for quiz_wrong.m4a. At 5153 bytes, the source file is less than half of the total bytes download.

When we could replicate the audio problems, we would find that the server would return a 304 response to AppleCoreMedia letting it know that the m4a had not been modified, but then AppleCoreMedia would go ahead and download it anyways. Of course, this behavior was inconsistent making it difficult to troubleshoot.

To try to narrow down the behavior, I created a simple page with links to m4a and mp3 files. I didn’t do any HTML5 audio embedding and didn’t include javascript. The page was as vanilla as can be. The test file size was 30,196 bytes. Clicking on the m4a link with a clear cache had the following result:

"GET /examples/applecoremedia/trailer_iphone_sound/ HTTP/1.1" 200 653 "-" "Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_2_1 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8C148 Safari/6533.18.5"
"GET /examples/applecoremedia/trailer_iphone_sound/trailer_iphone_trimmed.m4a HTTP/1.1" 200 30551 "-" "Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_2_1 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8C148 Safari/6533.18.5"
"GET /examples/applecoremedia/trailer_iphone_sound/trailer_iphone_trimmed.m4a HTTP/1.1" 304 233 "-" "AppleCoreMedia/1.0.0.8C148 (iPhone; U; CPU OS 4_2_1 like Mac OS X; en_us)"
"GET /examples/applecoremedia/trailer_iphone_sound/trailer_iphone_trimmed.m4a HTTP/1.1" 206 22410 "-" "AppleCoreMedia/1.0.0.8C148 (iPhone; U; CPU OS 4_2_1 like Mac OS X; en_us)"
"GET /examples/applecoremedia/trailer_iphone_sound/trailer_iphone_trimmed.m4a HTTP/1.1" 304 233 "-" "AppleCoreMedia/1.0.0.8C148 (iPhone; U; CPU OS 4_2_1 like Mac OS X; en_us)"
"GET /examples/applecoremedia/trailer_iphone_sound/trailer_iphone_trimmed.m4a HTTP/1.1" 206 22410 "-" "AppleCoreMedia/1.0.0.8C148 (iPhone; U; CPU OS 4_2_1 like Mac OS X; en_us)"

This is even more confusing than the last example. The full m4a file is first downloaded by Mobile Safari. Then AppleCoreMedia asks the server if the file has been modified and is told by the server that it hasn’t. AppleCoreMedia then ignores this information and proceeds to download the file. Then it repeats the process for good measure.

And despite setting far future expires headers for everything, the next time you play the m4a file, the same process is repeated.

Because of the issues we had previously had with short audio files, I decided to try a longer video file to see what it would do. Again, I set up a simple page and linked to the video file. The video file was 3,995,176 bytes (3.8MB).

"GET /examples/applecoremedia/trailer_iphone/ HTTP/1.1" 200 729 "http://www.cloudfour.com/examples/applecoremedia/" "Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_2_1 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8C148 Safari/6533.18.5"
"GET /examples/applecoremedia/trailer_iphone/trailer_iphone%20-%20iPhone.m4v HTTP/1.1" 206 386 "-" "AppleCoreMedia/1.0.0.8C148 (iPhone; U; CPU OS 4_2_1 like Mac OS X; en_us)"
"GET /examples/applecoremedia/trailer_iphone/trailer_iphone%20-%20iPhone.m4v HTTP/1.1" 200 70500 "-" "Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_2_1 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8C148 Safari/6533.18.5"
"GET /examples/applecoremedia/trailer_iphone/trailer_iphone%20-%20iPhone.m4v HTTP/1.1" 206 71910 "-" "AppleCoreMedia/1.0.0.8C148 (iPhone; U; CPU OS 4_2_1 like Mac OS X; en_us)"
"GET /examples/applecoremedia/trailer_iphone/trailer_iphone%20-%20iPhone.m4v HTTP/1.1" 206 386 "-" "AppleCoreMedia/1.0.0.8C148 (iPhone; U; CPU OS 4_2_1 like Mac OS X; en_us)"
"GET /examples/applecoremedia/trailer_iphone/trailer_iphone%20-%20iPhone.m4v HTTP/1.1" 206 3995571 "-" "AppleCoreMedia/1.0.0.8C148 (iPhone; U; CPU OS 4_2_1 like Mac OS X; en_us)"

Mobile Safari still downloads some part of the m4v file, but it isn’t the full file size (70500 bytes). It is unclear what it does with this data chunk nor why it appears to only be part of the data, but the server reports a 200 response instead of 206.

The next time the video is played, the same pattern repeats. Nothing appears to be cached. Based on previous research into iPhone 4 cache sizes, I would have expect even the 3.8MB video to get cached.

What I Expected to See

To illustrate what I expected to see, I ran with my simple audio file test in Firefox. The only change I made was to use an mp3 file instead of an m4a.

"GET /examples/applecoremedia/trailer_iphone_sound/ HTTP/1.1" 200 653 "-" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3"
"GET /examples/applecoremedia/trailer_iphone_sound/trailer_iphone_trimmed.mp3 HTTP/1.1" 200 28185 "-" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3"

No matter how many times I load the mp3 file and then hit the back button to the web page containing the link, neither the web page nor the mp3 file were downloaded again. They had been successfully cached.

What does all this mean?

I wish I knew. For our project, it meant that we could not consistently ensure that the audio file would play at the right moment when the message was displayed on the screen letting the user know if they had got the question right or not. This issue combined with the volume issues caused us to remove the feature.

For consumers using iPhones, it appears to mean that every time you watch a video or play an audio file, that your phone is going to download it again. This makes for a slower experience and puts a seemingly unnecessary burden on the carrier network.

For developers, it is important to realize that video and audio playback in Mobile Safari is not handled by Mobile Safari even if you’re controlling it via javascript and the system media player is never visible. Everything you’ve learned about how Safari and Mobile Safari handle the downloading of assets doesn’t apply when AppleCoreMedia is doing the work instead of Safari.

Finally, this is just one more clue about how mobile is still frontier land. Even something that seems simple like a quiz that plays sounds can bump up against the boundaries of what we know about how mobile browsers work and what they can reliably do.