Andrew Little

Team Lead of Mobile and Web Apps over at In 2009, I bought my first Mac, grabbed an iOS Developer license and took a weeklong vacation. That week changed everything. This is a personal collection of articles.

Read this first

 Watch. It’s personal.

2014 has been one of the strongest for Apple’s product line in many years. In the first 9 months of the year, the following updates were announced, each of which may eventually move the needle for Apple’s business:

  • HealthKit: central spot for all of our health tracking apps and devices
  • HomeKit: central spot for all of your home automation apps and devices
  • Swift: new language to woo more devs. More devs == more apps == more $
  • iPhone 6/6+: you know these will sell
  • CloudKit: devs can build/host their own services with minimal effort and $
  • CloudDrive: sync files between iOS and Mac. Means they’ll sell more Macs
  • Handoff: move tasks between iOS and Mac. Means they’ll sell more Macs
  • Payments: sounds like they’ll take a cut of each payment processed

That’s 2014. And I probably missed stuff. Not sure I’d agree with Eddie Cue that it’s the best “product pipeline in 25 years”, but I suppose...

Continue reading →

Thoughts on Adopting Swift

A new programming language was by far the biggest conference surprise. Although an interesting development, I think that applying Swift in practice has people asking a lot of interesting questions. Things like, did I just lose my job security? Should I adopt Swift in my project now? Questions that I’m not sure Apple will have direct answers for as I think each team will need to assess their skill and needs when answering the question of timing. Let’s look at the pros and cons of Swift adoption.

Pro: Performant. Granted I’m taking this from the few benchmarks shared during the keynote, it does seem that part of the story behind Swift is that it performs better than Objective-C. Could be a bit early to call this a meaningful benefit, but it probably shouldn’t be discounted - especially since performance can mean so much on a mobile device.

Pro: Accessible. I...

Continue reading →

WWDC 2014

Best ever?

Quite possibly. This year’s WWDC put the Developer back at the centre of the conference. I think most developers would agree that there was a strong lineup of both customer and developer announcements. Ultimately, Apple’s customers will win twice thanks to Apple being strong on both fronts. Apple once again showed that it gets the fact that apps power the platform; both their own and 3rd party.

If you like audio, then check out this short clip covering my thoughts. If not, then please read on as I’ll cover some of my initial thoughts.

Developer focused. No time spent on the retail store updates, or hardware updates; this was 100% developer focused. Only what we need to know to get excited about the platforms all over again.

Disconnect from hardware. Interesting that hardware wasn’t touched on at all. After announcing a new Mac Pro last year, this was...

Continue reading →

Another damn iPhone app?!

There are over a million of these things, we know. And yeah, 70% of them are list apps of one type or another. So why did we endeavour to build yet another iPhone list app?

We wanted to learn.

iOS 7 Only. We wanted to see what we could build if there were no legacy strings attached. How fast could we could we put together a polished app that’s not beholden to previous operating system releases. Turns out, you can build one pretty damn fast. As exposed in our first post on the MediaBox Blog (coming soon), the elapsed time of our build was many months, but this is with coding for an hour here, and an afternoon there… not a ton of dedicated build time. iOS 7 provides an incredibly powerful set of APIs that allow you to do things such as add real world physics to the app with just a few beautiful lines of code (which we did, by the way).

New Roles. Building and launching your own...

Continue reading →

iOS 7: tale of two developments

Turns out developing for iOS 7 takes on a rather different feel, depending on your app’s legacy. It goes something like this. If you’re building a brand new iOS 7-only app, then it’s absolute dream to develop. Super simple. However, if you’re adding iOS 7 support to an existing app, then you’ve got some work ahead; not all of it fun.

New app, iOS 7-Only. For those apps which will come into being explicitly for iOS 7, the development cycle has never been smoother. For your shiny new version 1, you no longer feel compelled to add custom drop shadows, custom buttons, and fancy table styles to set your app apart. Why? Because the users of iOS 7 (most of them) are going to enjoy your app even if it’s composed of simple, clean looking, iOS 7 controls. Furthermore, fancy adornments, like drop shadows, feel decidedly out of place in iOS 7. Instead,...

Continue reading →

Mobile @ Scale: my experience

Facebook recently hosted its first-ever Mobile @ Scale conference at its hacker headquarters. The conference assembled senior engineers and directors from Twitter, Facebook, Pinterest, Dropbox and LinkedIn into a rather small room to discuss common issues faced by mobile engineering teams. Access to information was impressive and the transparency was refreshing. I was very excited to be a part the crew invited to attend.

Below, I’ll cover what I felt were the high level themes, and some of the more interesting bits, from the jam packed day of talks. I’ll later publish a podcast I recorded which covers the content in more detail!

Silo Problem Solving. The Facebook VP of Engineering, Cory Ondrejka, was first to point out that we’re all facing and solving similar problems in mobile, it being such a fresh, and fast changing area of tech. The issue is that we’re...

Continue reading →

Apple TV, evolved

Apple TV

From a product development perspective, it’s been incredibly fun to watch the slow, but steady, evolution of the Apple TV. Reworking the UI, adding bluetooth keyboard support, content additions, and AirPlay among other enhancements. Although still considered a “hobby” according to Tim Cook, I have found his language in support of the product has been getting stronger in recent quarters (I listen to every earnings call). I think Apple knows there is something there, thanks to the millions of units flying off the shelves, but I’m betting the content access continues to be the uncontrolled dependency that blocks the Apple TV from becoming a more central product. While we wait for the next iteration, hoping for something big, I hear nothing but love from the people who choose to drop $120 on this little black box. Probably the most value for dollar you can extract...

Continue reading →

Add to my Home Screen?

If you you don’t follow the reference in the title of this post, you’re probably not alone. In fact, I would bet big money that very few people make it a practice to add web sites to their iPhone’s homescreen.

This is one of those rather esoteric iOS features that are often cited by those who adamantly defend web apps as being on equal footing to native apps, but rarely used by those customers that we’re all trying to please, equally. The idea is that a web site can “easily” be added to the Home Screen, just like any native app.

All you have to do is:

  1. Open Safari on an iOS device
  2. Navigate to mobile-friendly website
  3. Click the Share Action button in Safari, and select “Add to Home Screen”.

Easy. Right?

I think it’s easy to say the words “add to home screen”. It’s also easy to say that users will love doing...

Continue reading →

Inside Facebook: iOS Development

This is an absolutely fantastic inside look at how Facebook builds their iOS app, and the path they took from web to native. I have summarized some of the standout info, but encourage everyone who’s interested in native iOS development to watch the entire talk.

Facebook for iOS was originally created by a single developer. Later, they converted to a web app, using HTML5 and javascript in a native wrapper, a hybrid solution:

Facebook was growing really fast… [the] web was in our DNA, so we decided to use HTML5 and javascript in a native wrapper.

  • they developed a bridge between native and web; significant investment
  • developed a way of placing web and native components together on one view; this wasn’t easy
    • benefits to hybrid: instant products updates (no app store review), made A/B testing really simple (data guides them on feature decisions), and got them to a...

Continue reading →

My simple view of web app architecture: Thin Server

What follows is by no means a novel approach to building web apps. It just happens to be the way which I believe allows us build them in a manner that’s fast, flexible for the future, and mobile app {native or web} friendly.

I’m oversimplifying intentionally, but I see two architectural components for modern web applications: UI Layer and a REST API. Nothing more. The technologies used to build each piece are really up for debate, but the UI will likely be mostly Javascript (I suppose you could use Dart ;)), and the API will be composed of some reasonable backend technology (Java, PHP, Python… whatever works for your team).

This approach is similar to that used on, as described here on their engineering blog, though I think they’ve tweaked it since the time of this post:

One of the most important architectural changes is that is now a...

Continue reading →