iPhone 5

An industry insider told me that sales of Samsung’s Galaxy S III sky-rocketed the day after Apple’s big reveal of the iPhone 5. Evidently potential customers were holding off their upgrades until they had seen the new product, but what they saw disappointed.

I probably shouldn’t be admitting this, but I have already used the iPhone 5 and I was underwhelmed too. iPhone has become the safe (even boring?) option, something you would confidently give to your Mum and Dad. Apple’s runaway success has become the de facto smartphone, but the commercial imperative not to alienate their mainstream customer base has stifled innovation.

The original popularity of iOS (then iPhone OS) was due to its perfect blend of technology, form and function. Often it wasn’t possible to customise something to your liking, but that was by design and the intention was to keep things deliberately simple.

I look at iOS 6 and wonder where Steve Jobs’ painstaking obsession with simplicity has gone. I never expected CEO Tim Cook to share the same ethos, but since Jobs had apparently described Sir Jonathan Ive as being his “spiritual partner” there was a hope that he would carry forward Jobs’ legacy. It’s likely however that Ive’s control only extends as far as the hardware design, not the operating system, which is the responsibility of Scott Forstall.

Watching the official iPhone 5 promo video, it’s hard not to be impressed by Apple’s manufacturing techniques and the obvious attention that has gone into the hardware design (like crystalline diamond-cut chamfers!), but it doesn’t detract from the hard truth that to the average customer the new iPhone just doesn’t seem all that different.

With each new iPhone Apple usually succeeds in generating enough excitement and desire to persuade existing customers to follow the natural upgrade path, but they also lose some customers to Android – and they rarely return. I don’t know anyone (including myself) who has switched to Android and then gone back to an iPhone. Once you’ve broken away from the closed iPhone ecosystem it feels quite liberating to have the freedom of open services and a wide range of devices.

Conversely with each evolution of the Android platform the gap has been closing and arguably the Android 4.1 ‘Jellybean’ release has leapfrogged iOS by delivering a simple intuitive user interface and powerful features – much like the original iOS.

Samsung are seizing the opportunity to capitalise on the apathy surrounding iPhone 5 with a marketing campaign directly comparing their two flagship products:

Apple fanbois have responded with their own parody advert, but when the best they have to brag about is ‘fits all pockets’ and ‘elastic bounce back’ (the subject of Apple’s recent patent dispute with Samsung), it doesn’t bode well.

It’s certainly not all doom and gloom for Apple. They will of course sell iPhone 5 by the millions, but the shine is starting to fade.

I do have an answer to their predicament. Apple needs another product with which to dazzle and showcase their technical excellence and suppressed innovation.

Dear Tim, how about you add a new model to the iPhone range? Call it the ‘iPhone X’, pack it with enough fancy gizmos and new technology to satisfy the Android crowd and demonstrate what the biggest company in the world can really do.

Android 4.0 turns GET into POST

After upgrading to Android 4.0 ‘Ice Cream Sandwich‘ I found that some of my existing apps weren’t working as expected.

On deeper investigation I discovered the culprit. When installed on devices running ICS the apps made HTTP POST requests when they were programmed to be GET requests.

It appears that Google have subtly changed the working of the java.net.HttpURLConnection class – without telling anyone!

The Android package reference documentation has this little gem tucked away in the class overview notes:

HTTP Methods

HttpURLConnection uses the GET method by default. It will use POST if setDoOutput(true) has been called. Other HTTP methods (OPTIONSHEADPUTDELETE and TRACE) can be used with setRequestMethod(String).

My now non-functional Android apps did indeed call setDoOutput, but in Android releases prior to 4.0 this did not result in the HTTP method being changed from a GET to a POST.

Even explicitly setting setRequestMethod("GET") does not fix the problem. Basically if you don’t want your app to POST, you must not call setDoOutput.

The apps have not changed, there is nothing referencing this change in the API Differences Report, but the behaviour is definitely different in Android 4.0.

Could this be what’s behind the flurry of Android Market app updates for ICS-related fixes?

Opting-out of Google Location Server

In September Google announced their intention to comply with requests from European data protection authorities and offer a method for opting-out of their Google Location Server (GLS).

Peter Fleischer (Google’s Global Privacy Counsel) has today published an update on the European Public Policy Blog and Google have added specific opt-out details on their Maps Help page.

What is GLS? It’s a location service that most Android smart phones use to request your current location. Your smart phone could simply use satellite positioning (GPS) to accurately pin-point your location, but GPS consumes battery and generally only works outside.

Instead of using GPS your smart phone attempts to discover your location by scanning for nearby WiFi access points. It gathers the relative signal strengths, network names and unique network addresses and sends the details to the Google Location Server (GLS) for processing.

The GLS checks its database of WiFi access points and returns an estimate of your location. If your local WiFi access points are known and already in the GLS then it will return a fairly accurate location, almost on a par with GPS, for a fraction of the power.

Google built their WiFi location database while collecting data for Google StreetView and it is constantly updated and augmented by smart phone crowdsourcing. The manner in which Google collected this data has been controversial and Google have been investigated for breaches of interception laws. As a result Google has been forced to offer this opt-out scheme to appease regulators.

So what do you need to do to ensure that your own WiFi access point is not included in the Google Location Server database?

Simply append “_nomap” to the SSID of your WiFi network and Google will remove it from their database the next time a device sends information to the GLS.

It’s undoubtedly an inconvenience to change your WiFi network name and re-associate all your wireless devices, but if this scheme is adopted by all the mapping services (Microsoft, Apple, Skyhook) then it could well be worth it.

Android shortcuts

I’m frequently being offered app updates via Android Market. Most of these work without a hitch, but occasionally I update an app and then find that it no longer runs from an existing shortcut. The device reports “Application is not installed on your phone“, or the shortcut icon has disappeared altogether.

The problem stems from the way in which Android creates shortcuts. An Android shortcut is not simply an alias to the application binary, it’s actually an Intent that directly specifies the ComponentName it should run.

It’s not enough to use the same manifest package name and digital certificate when you publish an update to your app.

For any existing shortcuts to carry on working you also need to ensure that the ComponentName is identical, which means making the entry point Intent the same as it was in the previous version.

In short, keep your ACTION_MAIN Intent the same and your app will update cleanly.

Adobe retires Flash for mobiles

In early 2010 Apple announced the eagerly anticipated iPad and iPhone 4. They were hugely successful product launches, but at the same time Apple also came under increasing pressure from customers and developers to support Adobe Flash on their shiny new iOS devices.

In reaction to the criticism Steve Jobs delivered a scathing personal attack on Adobe Flash in an Apple article entitled “Thoughts on Flash“.

Jobs began by saying he “wanted to jot down some of our thoughts on Adobe’s Flash products so that customers and critics may better understand why we do not allow Flash on iPhones, iPods and iPads“.

In his critique Jobs went on to detail six main reasons why Apple was so staunchly against Flash, which I have paraphrased below:

  1. Open. Adobe’s Flash products are 100% proprietary. By almost any definition, Flash is a closed system.
  2. Full web. Adobe has repeatedly said that Apple mobile devices cannot access “the full web” because 75% of video on the web is in Flash. What they don’t say is that almost all this video is also available in a more modern format, H.264, and viewable on iPhones, iPods and iPads.
  3. Reliability, security and performance. Symantec recently highlighted Flash for having one of the worst security records in 2009. We also know first hand that Flash is the number one reason Macs crash.
  4. Battery life. H.264 can be decoded in hardware which doubles battery life during video playback.
  5. Touch. Flash was designed for PCs using mice, not for touch screens using fingers.
  6. Cross platform. We know from painful experience that letting a third party layer of software come between the platform and the developer ultimately results in sub-standard apps and hinders the enhancement and progress of the platform.

Reading Jobs’ article again really highlights his genius for strategic vision.

New open standards created in the mobile era, such as HTML5, will win on mobile devices (and PCs too). Perhaps Adobe should focus more on creating great HTML5 tools for the future, and less on criticizing Apple for leaving the past behind.

Steve Jobs
April, 2010

How prophetic that closing paragraph was in light of Adobe’s announcement just 18 months later to cease development of Flash for mobile devices, and focus on HTML5 instead.

The news of this dramatic Adobe turnaround came in an official blog post from Danny Winokur, VP & General Manager, Interactive Development at Adobe.

Flash to Focus on PC Browsing and Mobile Apps; Adobe to More Aggressively Contribute to HTML5

HTML5 is now universally supported on major mobile devices, in some cases exclusively.  This makes HTML5 the best solution for creating and deploying content in the browser across mobile platforms. We are excited about this, and will continue our work with key players in the HTML community, including Google, Apple, Microsoft and RIM, to drive HTML5 innovation they can use to advance their mobile browsers.

Our future work with Flash on mobile devices will be focused on enabling Flash developers to package native apps with Adobe AIR for all the major app stores.  We will no longer continue to develop Flash Player in the browser to work with new mobile device configurations (chipset, browser, OS version, etc.) following the upcoming release of Flash Player 11.1 for Android and BlackBerry PlayBook.

Although Jobs was undoubtedly correct to back the HTML5 open standard, I have to question whether he was merely a soothsayer or the architect of Flash’s demise. Clearly with no Flash support on Apple’s iOS products there was a massive disincentive for developers to continue using Adobe’s technology.

Either way, Jobs got his way. It’s a shame he never got to see it.


Google Maps API

Google have announced that they will introduce usage limits and start billing excess usage fees for their Google Maps API from 1st January 2012.

The free usage limit has been set at 25,000 map loads per day. If you exceed this limit your choices are:

Excess usage is billed at $4 per 1,000 map loads.

What happens if you do none of these?

Your maps will continue to function. However if your application qualifies for and consistently exceeds the published Maps API usage limits, you do not have a Maps API Premier license, and you do not enroll for online purchasing of excess map loads, a warning may be shown on your map and a Maps API Premier sales manager may contact you to discuss your licensing options.

While this apparently won’t affect 99.65% of users and is aimed squarely at the high-usage ‘abusers’, one does wonder what plans Google have for widening the net of their haul by reducing the limits even further.

Fortunately developers who use the Maps External Library to embed maps in their Android or iOS apps shouldn’t be affected, but again I wonder how long before Google decide to cash-in on this lucrative revenue stream too.

Apple presumably have the same fears. Earlier this year they quietly acquired Swedish mapping technology firm C3 Technologies, so it’s probably safe to assume that they are developing an alternative maps API to challenge Google’s dominance.

While I appreciate that Google is a profit-making commercial enterprise, the manner in which these fees have been introduced is a cause for concern.

It’s akin to a drug dealer giving away free hits and then exploiting the poor addicts once they’re hooked on drugs.

Is this indicative of a new Google business model to get us all using their ‘free’ services and then bleed us dry once we’re all dependent?

Google’s “Don’t be evil” corporate motto might need to be updated soon.

" The first one's free kid ... "

HTC’s Dropbox bonus deception

HTC have been promoting a partnership with Dropbox which gives HTC smartphone customers an additional 3GB of free Dropbox storage space.

The extra storage capacity appears when you activate the Dropbox client on a HTC smartphone with the new HTC Sense 3.5 software.

There’s something they don’t tell you though, which only becomes apparent when you receive the confirmation email from Dropbox:

Congrats on becoming a Dropbox Guru! We’ve awarded you 3GB of bonus space for the next 12 months! You now have 5.25GB on Dropbox. To get even more space, check out our upgrade options.

Thanks again for supercharging your HTC phone with Dropbox!

According to the email, the 3GB bonus space is only awarded for 12 months.

This has been confirmed in the Dropbox support forums by their staffer ‘Michael N’:

We are excited to confirm the announcement from HTC. Owners of HTC phones with a Sense 3.5 ROM will be receiving 3GB of extra space for 1 year, free of charge. All you need do to earn the space is install the Dropbox app on the HTC phone, then complete the Getting Started Quest at www.dropbox.com/gs

So what happens if you are still using the 3GB of bonus space at the end of the 12 months?

Well according to an update from Michael N: “The 3GB extra space goes away, and you’re over quota. Your Dropbox desktop client will stop syncing.

Your options are then to delete files and reduce your storage to under the 2GB free limit or upgrade to Dropbox’s Pro 50 plan at a cost of $9.99/month. How convenient!

While Dropbox themselves have been fairly transparent, HTC have been careful not to mention this built-in timebomb.

The bonus space is time-limited and only available to owners of a HTC phone with the new Sense 3.5 ROM. This is very different to HTC’s announcement: “We’re proud to announce that we’ve partnered with @Dropbox, bringing 5GB of storage to all of our #Android phones.

The Advertising Standards Authority now regulates advertising across all media -including marketing on websites. I wonder if this includes marketing statements made on Twitter from an official company account?

I feel a complaint to the ASA coming on!