Fast Chicken / Big Ted

Purveyers of fine iOS apps including mobileAgent and Trip Wallet

Google, Apple, Amazon, Starbucks, Vodafone and Tax

The Telegraph has the usual rant article about multi-nationals and the amont of tax they don’t pay. This time, Googles Eric Schmidt is putting his foot in his mouth:

“It’s called capitalism,” he said. “We are proudly capitalistic. I’m not confused about this.”

There was a lot of noise generated when Google, Amazon and Starbucks went in-front of a government committee and were quizzed about the amount they pay in the UK.

Companies have long had complicated tax structures, but a recent spate of stories has highlighted a number of tax-avoiding firms that are not seen to be playing their part.

Starbucks even offered, out of the good of it’s heart (**BS**) to pay £20m over the next 2 years in extra tax.

Personally, I find this laughable.

I like having public services (schools etc) which need tax to operate, to the point where I’ve repeatedly voted against my own interests for parties which promote these things (Labour in New Zealand for example). So I have no objection to paying the required tax – but not any more than that.

The blame for this lies firmly with the politicians who were trying to grill Starbucks et al in the committee: They are the ones setting the rules. The multi-nationals are exploiting the rules while staying within them, and if the politicians want change, they need to make changes to the law. Either that, or shut the hell up about it.

This will, of course, never happen. “Fixing” Amazon (and Apple) would require a change to EU law. “Fixing” the other 2 would require a change in international law, which isn’t even law at all. It’s a lot easier to give an outraged 30 second soundbite.

Vodafone is different situation. They have been in the press recently for the same things as Amazon et al, but previously, in 2010:

Vodafone was accused of owing £6bn in tax, and the company had reserved £2.2bn to meet it’s UK tax obligations, but George Osborne struck a deal to accept £1.25bn

To me, this is the “crime”. A large multi-national saying “nah, we don’t want to pay you £6b. How about £1.25b?”. The other one is just proper, and importantly legal, tax management.

Looks like the New Zealand press and politicians tried to shame Facebook and Google on the same thing, but it didn’t stick quite as well. Easier to ignore a very small market, I suspect.

uxarchive.com; Layer Co-ordindates; Library Rules

uxarchive.com is a great reference covering how a lot of the best apps handle on-boarding, exploring, search and sharing.

I suspect it will grow to other areas over time, but it’s a great way to see how some of the best are handling these fairly common tasks.

Hat tip: sidebar.io


David Rönnqvist over at iDeveloperTV* has a great article up, explaining how the co-ordinate system works in iOS animations.

Layers work almost the same, they have properties for the frame (derived), bounds, position and anchor point. By default the anchor point is in the center of the layer, in which case the position corresponds to the center property of the view. But the anchor point can be moved and then the above statement is no longer true.

The co-ordinate system_s_ in iOS is one of the things I find the most confusing – or inconsistent, if I’m not the only one not understanding it. This article gives a great overview of how the Layers “version” works.

* Makers of fine things like NSConference and the iDeveloper Live podcast.


I love the concept of Library Rules in an office.

When visitors come to our office, one of the first things they notice is how quiet it is. Naturally, one of the first questions they ask is “how do you keep it so quiet?”

My answer is “library rules.”

Everyone knows how to behave in a library. You keep quiet or whisper. You respect people’s personal space. You don’t interrupt people who are reading or working, learning or studying. And if you need to have a full-volume conversation, you hit a private room.

So if you want to keep things quiet at the office, treat it like a library. It works surprisingly well.

Sadly, we don’t have enough (any) dedicated offices to do this all the time, but the idea is brilliant.

A Case for the AppleTV Transmitter

On the latest CultCast, the guys on there were talking about a strong AppleTV TV rumour:

Here’s what I heard:

  • The software was developed at the behest of Steve Jobs himself, who persuaded FuzeBox to make the software not just for the Mac, but for an upcoming Apple TV.
  • Steve Jobs gave the company a special dev lab on Apple’s campus.
  • According to FuzeBox’s CEO, the upcoming Apple TV has a 60-inch screen. It has no inputs whatsoever, except an AC power cord. No wires. You can’t plug in a cable box or a game console. Nothing.
  • It does have Gigabit wireless Wi-Fi and gesture controls, equivalent to Microsoft’s Kinect accessory for the Xbox.
  • And finally, the story of how FuzeBox got an ultra rare meeting with Steve Jobs is worth telling — details below.

Now, I’m the first to admit that not all of this adds up.

The general consensus was:

But what about my cable connection? Blu-Ray? XBox?

Which is a good point: while we don’t have a TV or a game console here, most people do, and they have some form of set-top box for Cable, Sky, FreeView or some other digital input.

But then I got thinking, as I was walking home: how about turning it all around?

At the moment, there are a number of Airplay target devices. Apple has the Airport Express and the AppleTV. Others have licensed the Airplay protocol to receive audio including companies like Denon, Bowers and Wilkins, JBL and iHome.

If Apple release it, I’d add the new 60” AppleTV TV to that list too. It all works amazingly well.

But at the moment, the only things that can transmit to an Airplay device are iTunes, iOS and OSX Mountain Lion.

What happens if we throw another one in there: The AppleTV Transmitter.

(Yes, that’s an awful name…)

Think of a device the size of the black AppleTV puck. It lives with your cable tuner/audio receiver, and talks Gigabit WIFI to your AppleTV, either as part of your existing network, or using it’s own standard like Sonos does.

It has 2 HDMI inputs, and when you connect a source to it – your Blu-ray player or a Cable box – it shows up as an “app” on the AppleTV home screen. Hit the icon, and you see the live TV.

It could also use an IR emitter to control the set top box, so you could control the channels without having to use the cable TV remote.

Apple already has the technology to do on the fly H.264 encoding – iOS does it with Airplay Mirroring and the “second screen” function that works with some games – so it’s feasible to encode on the fly and send it to the TV from a small iOS device. There might be the issue of delay, but as the audio and video could both be delayed by the same amount, it’s not likely to be an issue in most cases.

People buying a new AppleTV TV are sorted – they can plug in their set-top box and watch cable TV like normal. The Cable TV providers don’t win, but they also don’t lose in this situation, either.

Now go forward in time a little bit: Apple gets the cable providers to build this function into their set top boxes and PVR’s. No need for a separate “transmitter”, and an app running on the AppleTV TV could communicate back to the set-top box and control the channel and other functions.

Kind of the reverse of what Denon and co are doing with the Airplay receivers. Anyone can license the Airplay protocol to make an Airplay transmitter.

Extend it a little further, and if iOS – the iPad mostly – can receive Airplay, you can then watch your Cable TV on your iPad, anywhere in the house. Apple becomes the TV.

Gaming is the only area which this doesn’t cover. I can’t see a situation where the h.264 encoding, transmission, decoding and display wouldn’t cause a game-ruining delay. A lot of gamers get twitchy if there is a few frames – 15-30ms – of delay. I suspect Apples answer to this might be “whatever” – if you are that into gaming, buy another TV, there are lots on the market, or play games using Airplay Mirroring from your iPad. I think they are covering enough to leave this segment on the table.

This also makes people with an existing AppleTV happier, as it’s now their one go-to place for everything video, rather than a secondary device hanging off the receiver. It keeps the cable companies happy as they are not at all cut out, and even have the opportunity to push this as an up-sell to existing customers.

Apple can also sell this world wide – anything which throws out an HDMI signal can go into this. No more messing with various world-wide standards, the local set top box deals with that messy part. And you can hide it all away in a cupboard, which is very “Apple”. The content providers are happy too, as Airplay already has DRM, so their content is safe.

This would be an interesting time in the living room.

Android Design Resources

I’ve been doing some Android development work lately (more on this when it’s out), so I’ve been collecting Android design inspiration, as a lot of the conventions I’m used to from iOS are very different on Android.

Android UI Patterns is good blog for this, including their recent Finding Free Android Libraries Online, which covers a few sites which are similar to Cocoa Controls.

Android UI|UX is another good one, covering all sorts of topics including a series on general UI/UX tips. They also do some good Holo redesigns of popular apps.

My other favourite place is still Dribbble, which is great for finding Android, iOS, iPhone or iPad design inspiration.

Back to iOS shortly, for my first proper iPad app, which I’m very much looking forward to!

6 Charts on Climate Change Which Should Worry You

From Christopher Mims and Stephanie Gruner Buckley on Quartz

Meanwhile, a report from the US National Research Council, commissioned by the US Central Intelligence Agency (CIA) and other intelligence agencies, says the consequences of climate change—rising sea levels, severe flooding, droughts, fires, and insect infestations—pose threats greater than those from terrorism ranging from massive food shortages to a rise in armed conflicts.

This is pretty scary stuff – and it should be. Of the 13,900 articles published on “global warming”(1) in the past 20 years, 24 reject it.

Scientists do not disagree about human-caused global warming. It is the ruling paradigm of climate science, in the same way that plate tectonics is the ruling paradigm of geology. We know that continents move. We know that the earth is warming and that human emissions of greenhouse gases are the primary cause. These are known facts about which virtually all publishing scientists agree.

As the video at the end points out, the cost of adjusting what we are doing is huge – but the cost of doing nothing is bigger, and growing each year. We are only seeing the results of what we did in the 60’s and 70’s now. What we are doing now we will not see until 2050 or so.

We live on an interesting and chaotic planet, which is only going to get more interesting(2) and chaotic.


(1) Global Warming is a shit name. Climate change is a lot better. (2) “May you live in interesting times” – Chinese Curse

The iPad Mini: Fraser Speirs Found the Words I Was Looking For

Fraser Spears, on his blog:

It is, in my opinion, just that side of ‘too small’ to be a 5-days-a-week, 6-hours-a-day tool for pupils. It is in no way too weak a computer to be used that way. I just think that the more restricted keyboard will prove tiring and the fractionally more cramped UI will show itself as problematic over extended use.

Exactly the words I was looking for, but rather failed to find.

This is exactly why I just received notification from Apple on my refund for the iPad Mini. Unlike Fraser, I couldn’t get “over it”, even after a few attempts:

The second week, though, was different. I was teaching all week and didn’t really have time to chew over questions of should-I-use-this-iPad-or-that-iPad, I just had to get my gear and get up in front of classes hour after hour after hour. It got to Friday and I realised that I had literally not touched my 3rd-generation iPad all week.

Roll on the iPad Mini 2 with Retina Display.

How Much Does an App Cost?

Nice, and extreamly accurate, analogy of what it costs for an app to be developed.

“I want something that works well on one platform” = 2007 BMW 335i = $20-25K. You want something solid that’ll work web/ mobile web / iOS / Android. Just one of those. It doesn’t need to be the most beautiful thing in the world, but you need it to be solid through one medium. It’s realistic to pay 20K+ for something like this.

I hate pricing up app development work, tho so far, I’ve been pretty good at it (within 10% for a 2 month project). I usually go for fixed cost, as thats what most clients require, but with that, there has to be some give and take on both sides, especially if there isn’t a tightly defined vision up front. I suspect I’ve been lucky with the people I’ve worked with.

I think Vlads numbers are about spot on, too. I think I’d be pricing the Q7 at 30-75, not 50-75, but close enough.

Apples Lack of Online Service Chops

Justin Williams has a very good article – and links off to an equally good one from Patrick Gibson – about Apple’s awful record with online services:

Apple has always been given a pass with the cloud stuff because they make such great hardware and the on-device software experience is top-notch. How nice it is to hold an iPhone in my hand is of little consequence to me if I can’t actually use it. As more stuff you care about makes its way into the cloud, Apple’s inability to reliably build a web service is becoming a bigger hindrence than my phone not working if I hold it the wrong way.

This area is something I’ve been thinking about for a while, and I whole-heartedly agree with him, and with Patrick:

Google is getting better at design faster than Apple is getting better at web services.

(OK, I don’t agree that Apple should buy Twitter, but the first part I can go for)

Apple’s list of server-side “fail whales” is quite long, and keeps getting longer. Some are incidental, and some are very major.

Oh, and then there’s Maps. I love how the new maps looks and interacts, but that data is an embarrassment. And thats exactly my point.


I’ve long maintained that I’d love to have the 3 (possibly 4 or 5 now) big players to get together do what what they are good at:

  • I want Apple doing the design, hardware and client software (iOS and Mac). In this they are second to none, and second is a very distant second.
  • I want Google doing the server side. Gmail / Google Apps is not perfect, but it’s close enough for my usage. They know huge data, and they do it well.
  • I want Microsoft (or possibly Xamarin :) ) doing the developer tools (tho not the developer ecosystem). Love it or hate it, but Visual Studio is an exceptionally full-featured and stable product.

Previously, I stopped at those three (this thinking was in 2008 or so, around when the iPhone 3G came out), but now I’d add:

  • I want Facebook doing group social. Unless they screw it up, that battle is over for a while.
  • I want Twitter doing person-to-person social (ie, iMessage), tho I expect that Google could replace them in this fairly quickly, so maybe not.

Of course, this will never happen: Two of the above are in a cold war situation, for a start. But I’m not too far off, I guess: I use i-devices, my mail / cal etc is with Google Apps, I wrote software for all of the platforms in .NET/C# (Web, iOS, Mac, Android, Windows, Linux), I use Facebook to “catch up” with people far away and talk to friends on Twitter.

So maybe it’s not too bad.

But just imagine how good a tightly integrated, “what you are best at” solution would look like, rather than the guns-pointed-at-each-other situation we have now.

That. Thats what I want.

UIActivityProviders; Xamarin Stuff; Updates;

Things have been a bit quiet around here – the blog – because things have been anything but quiet in real life.

Last night, we launched another site. I didn’t have a lot to do with it except in the last week (performance tuning and live server setup and deployment mostly), and there is a huge backstory around this one which would need in-person explanations. But it’s live and working.

Well done to all those who worked on it.

On the side, I’ve been doing an Android app for a friend in New Zealand. It’s done aside from some last-minute testing, and it was certainly fun to do.

I can’t say I love Android compared to iOS, as the whole UX rubs me the wrong way, but there are some things I wish iOS had – the Android layout engine being one of them. It was a fun and very worthwhile experience. Needless to say, it’s been done in Mono for Android.


Thanks to the ever brilliant iOS Weekly, here’s UIActivity Providers for various services including SoundCloud, Instapaper and Instagram.

I suspect this is the first step in opening up cross-process communications in iOS – there is the concept of a Remote View Controller, which also looks interesting (think about how the MFMailComposeViewController works, and how that could be used between 3rd party apps)

If you do iOS development, and don’t subscribe to iOS Dev Weekly, you need to. Now.


Xamarin has been on fire, launching their conference, Evolve, which I’m planning on going to, and also the World Wide Consulting Partner Program. This allows companies who are either just getting started, or who need short or medium length consulting to get expert, international help from mobile experts who know the Xamarin tools backwards.

Needless to say, I’m planning on getting on the list – I was (almost) a Xamarin employee when it was announced, so I missed the first intake.

There is also the Xamarin Developer Showdown if you want to try your hand at writing apps using their cross-platform library, and win some nice loot!

Ars Peter Bright on the History of Windows

Over the past few days commute, I’ve been reading Peter Bright’s history of the Windows APIs. It’s quite fascinating, and very much worth a read. The article is quite long, but it covers everything from Win16 to WinRT, stopping in OLE, COM, .NET, DCOM and everywhere else on the way.

The Longhorn vision was not without its problems, however. The chief problem was it depends on .NET. While .NET has seen substantial uptake among a certain kind of developer, it has left others out in the cold. The early adopters of .NET were developers working on internal line-of-business (LOB) applications, and even as the platform has grown and evolved, that hasn’t really changed. Developers of large desktop applications—think Office, or Photoshop, or even games—have stuck with native code and the Win32 API.

Windows Longhorn – and the release of Vista – was the exact time I left the Windows space for my personal use. I bought a Mac back then, and I’ve not looked back. While the “failure” of Longhorn wasn’t the motivating factor in me moving, Microsoft’s apparent (at the time) refusal to move to .NET, despite pushing it hard to developers, made no sense to me. The refusal to ship .NET 2.0 as even an optional update to XP SP2 still strikes me as small minded, even after 7 years.

At the same time, Apple was going through an almost identical process, and they handled it very, very differently. They had the Carbon API’s, which were very C-like, and Cocoa, which is a fully object oriented framework. Carbon came from OS9 (forward ported to OSX) where as Cocoa came from NeXT and started its Apple-based life in OSX 10.0.

There is some written history about it, but the crux of it is, Apple kept Carbon around in 32-bit form, until OSX 10.5, when they announced that Carbon would never be ported to 64 bit. After that, the only API option available for 64bit apps was Cocoa (which is 32 bit and 64 bit). Companies had the better part of a decade to move over, and while a lot of them did, some – Adobe, Microsoft and even Apple being some of the biggest – left it until the last minute.

I think Apple’s way, in this case, was a better one, and one that I wish Microsoft had done: Keep the old API around (win32 / Carbon), but deprecated. Push the new one like crazy (WPF/Cocoa) and once it has some traction, kill the old one with a few years of notice.

Microsoft is actually doing this right now, but I think, once again, they have botched it. WinRT is based a lot around the .NET framework, and it uses XAML for the presentation layer. You can write code in C++ (managed or native – WinRT a big COM library) or C#. Or JavaScript. But if you want to use the new Metro UI, and have it run on ARM and on Intel, you really need to be writing it your code in C# + XAML. Fat binaries only make sense if you are porting old code over, and there is a good chance, if you are doing WinRT/Metro, you’re doing something new.

Where I think they really fell down is this: WinRT isn’t the .NET framework. It’s similar, but is different enough that code doesn’t just port. It’s so far removed from Win32 that that code will never port over. It’s the worst of both worlds, but I suspect someone in Microsoft has put a stake in the ground: We need a new API, and this is going to be it. If thats the case: bravo. It is a move in the right direction – a new, well designed, OO API, one that they should have come out with in the Vista era, but was half executed upon, in the form of WPF.


* Until Microsoft decides on a single name for the Metro-style apps, I’m going to call them Metro-style. It was – and is – such a good name. Windows Style? Windows 8 Style? Microsoft Style? All boring, unimaginative names for something which is quite critical. Pick one. Please.