If you’re reading this, there’s a strong probability that you own an iOS or Android device. Heck, you might even have both.
While we don’t wish to kickstart a “which one’s better” debate, many argue that there are more quality apps in Apple’s App Store, than there is on Google Play. Certainly, it probably is fair to say that Apple enforces a much stricter gatekeeping policy than Google, in terms of the quality of the apps it allows in.
And from a developer’s standpoint, Apple’s mobile operating system is a far more appealing proposition, given it’s a single platform offering a consistent experience, be it for iPhone/iPod Touch or iPad. Android device specs can vary greatly between manufacturers, and it’s not too uncommon for apps to work perfectly well on one device, but fall short – or not work at all – on others.
It’s perhaps for this reason that we see so many apps land in Apple’s App Store long before Android even gets a sniff. Instagram, for example, was taking the iOS world by storm for eighteen months before it finally landed on Android in April this year. But testament to the demand for the app on Google Play was the staggering fifty million downloads it notched up on Android alone by October.
While iOS may be the cool kid in school, Android’s immense popularity is simply too much for most developers to ignore forever. After all, it boasts well over 50% market share in most of the Western world.
It’s against this backdrop that I touched base with the third-party firm responsible for taking an existing uber-popular iPhone app, and transforming it into an Android-compliant incarnation. You’ve heard of Airbnb, right?
Two Toasters to the rescue
Two Toasters was founded by Rachit Shukla in July 2008, two weeks after the Apple App Store launched, which ultimately kickstarted the app economy we see today.
Shukla lived in India, Thailand and Singapore before the age of 15. He moved to Durham, North Carolina, where he was Valedictorian of his high school. After graduating from Wharton, Shukla launched a couple of startups, which failed, before going on to found Two Toasters.
Today, Two Toasters is approaching 20 employees. And while its clients are based in Silicon Valley and New York, the team powering the mobile development firm is based in Durham, NC.
Two Toasters covers everything from strategy, usability testing and design, to user experience, development, and QA testing. Up until mid-2011, its main focus was pretty much entirely on iOS, but it finally made the move to capitalize on Android’s growing market share in summer last year.
The company has developed more than fifty mobile apps to date, for companies of all sizes, including Dick’s Sporting Goods, Lexus and Acura, as well as early-stage startups such as Yipit, Go Try It On and GateGuru. But given its relatively recent transition into the Android realm, only four of its repertoire have been for Android…one of which was for Airbnb, which we’ll get to in a bit.
First up, I asked Two Toasters what the biggest challenges in converting apps from iOS to Android is, and some of the dangers developers face if they don’t properly consider the key differences between the two operating systems.
iOS to Android: Core challenges
“A big technical challenge in developing an Android app based on an iOS one is getting an iOS design that will lay-out on different sized screens,” explains Fred Medlin, Senior Android Developer at Two Toasters.
“On iOS you have a few sizes, so people tend to pick a different size bitmap to use depending on what size phone they have,” he continues. “There is more variation with Android, so you have to account for different screen sizes and pixel densities. On top of that, there are thousands of firmware and phone combinations on the Android platform with users updating their operating system far less often than iOS users.”
So this reaffirms what we know already. It’s typically easier to develop for iOS because there are less variances between the device specs.
I also asked Two Toasters whether, in an ideal world, it would prefer to have free reign to build an Android app based on its own merits, rather than simply copying an iOS one.
“In general we don’t see this as a big issue,” says Medlin. “There are many ways to make the app function similar to, and solve, the same problems as its iOS counterpart. However, any successful Android app needs to leverage the areas where the platform naturally excels. Areas where the Android platform performs differently – and excels – include features such as built-in app voice-search, home screen widgets, scaling of interfaces ‘programmatically’, and near-field communication (NFC) technology.”
However, Medlin added that the fewer features an app has, the better it is. “It’s easier to understand what the app does when it isn’t cluttered with flashy functionalities,” he says. “If you keep it down to two or three important features, the flow will remain fairly similar on the Android and iOS platform.”
It’s clear that there are similar design considerations between both iOS and Android, but it’s not enough to simply port an app from one platform to the other. The navigational nuances and layout differences must be considered.
And given the different programming requirements between Android and iOS, this means app developers will have dedicated teams for each platform…right? Well, yes and no.
“When it comes to strategy and design, our team members are not focused on one specific platform,” explains CEO Shukla. “That is, our project managers and designers are not platform-specific.
“We believe it’s important to take a holistic approach when making sense of the overall mobile product,” he continues. “On the other hand, when it comes to execution – engineering – we find that superior work results from developers focusing their energy on and truly understanding one platform. So, we do have dedicated Android and iOS developers, even though other members of the non-development team span both platforms.”
So this makes sense – the management, design and organization is the same regardless of platform, but the actual coding itself requires engineers to focus their efforts on being the best in one area.
Let’s now look at an example of what is seemingly quite a common scenario – a digital company that wants to bring its success from the Web and iOS over to Android. Here’s how Airbnb made the transition.
Airbnb and Android up a tree…
Airbnb has been something of a revelation in the online accommodation-booking space. I’ve personally used it for multi-destination travelling-holidays, securing top-notch properties in wonderful locations for a fraction of what it would otherwise have cost. And as an avid Android user, I was delighted when it finally landed on Android back in January this year, 14 months after iOS.
So…what was the processes involved in translating the app for Android?
The way Airbnb went about it is very telling of the current developer market, with many companies choosing to specialize in iOS. Indeed, the Airbnb iOS app was developed entirely in-house, while the Android incarnation was outsourced to a third-party mobile product development firm – Two Toasters.
Getting down to business
On the hunt for a streamlined route to Android, Airbnb’s Mobile Engineering Lead, Andrew Vilcsak, contacted Two Toasters and, following the initial reach-out, a series of conversations took place around the necessary processes and their expertise in design and development. Two Toasters then walked Vilcsak through Android-specific challenges.
But what then…was it simply a case of replicating the iOS incarnation? And how closely did the two companies work together to produce the final product?
“The Airbnb iOS app provided fairly strong direction in terms of the product’s functionality and design, so that was a great guide,” says Shukla. “No one from Airbnb actually worked on our team in the Two Toasters office. However, Andrew was involved on a frequent basis, providing us with API input and clarifying product decisions. Working closely together guaranteed a successful shared vision with a focus on bringing the same level of quality and attention to detail from the iOS app to the Android platform.”
It was just a case of adjusting the flow and elements of the original app, no major overhaul required. But this can be a major sticking point in the Android community…it’s normally very obvious when an app has just been copied directly from iOS, rather than built with the navigation nuances of Android in mind.
“We didn’t want the app to just be an iOS app that runs on Android, but we were mindful to stay with their design as much as possible,” adds Medlin.
So, while there was nothing that couldn’t be ported over, there were some functions that took a bit of work to implement on Android.
For example, iOS comes with more animations out of the box than Android, and to recreate this, the developers had to write their own code to implement.
“We thought the mapview in the iOS app was gorgeous, so we set out to make tweaks to the Android mapview that would make it look as similar to the iOS mapview as possible,” says Medlin. “We didn’t port the map over exactly as it appears in the iOS app, but we were able to get it pretty close.”
Another feature worth looking at is the calendar pad, which is used for selecting dates. “If you look closely, you’ll see that the calendar pads in the booking view are thicker at the beginning of the month than at the end of the month, similar to tear-away pads,” says Medlin. “As with mapview, these animations weren’t readily available for the Android platform, so our developers worked to write code that would discretely add that special touch.”
Testing and the road to launch
The development of the Android app, from start to finish, took around five months to complete. The flows and iOS assets were provided by Airbnb, with Two Toasters’ Creative Director taking these guidelines to create a design iteration compatible with Android. And as we’ve seen, the navigation had to adhere to one familiar to Android users.
As we’ve noted already, one of the big development pitfalls of building for Android is the sheer number of devices that use the operating system. With that in mind, a significant amount of time was spent testing the Airbnb Android app across smartphones to iron out bugs thrown up due to varying screen sizes, firmware combos and other device-specific features.
But with all the best will in the world, there’s no substitute for real-world scenarios. So when the app launched in January this year on Google Play, the team had to be on hand for reported problems and roll out a few bug fixes.
In late summer, I used the Airbnb Android app on an impromptu road-trip ’round South-west England, and I found some brilliant places through it.
In terms of the broader Android app ecosystem, I think that criticisms around the lack of quality are unfounded, but what I would say is it is harder to find the good ones. This is partly because of the lower quality-threshold for entry to Google Play, and partly because not all apps are rigorously tested across different devices.
As for Two Toasters, well, with Airbnb and a handful of other Android apps to its name now, its reputation in the increasingly-competitive space can only grow.
Though it couldn’t say who, Two Toasters tells us that it is currently working for another “highly-talked-about” startup, to create an Android version of its iOS app. Interestingly, it’s a company known for its “iOS aesthetic and usability”, but as it didn’t have the internal resources or experience to convert to Android, Two Toasters was enlisted to help.
Sounds familiar, right?
Feature Image Credit – Thinkstock
Get the TNW newsletter
Get the most important tech news in your inbox each week.