Why Cross-Platform Development Is The
Only Way Forward
Boydlee Pollentine | @boydleep | #tiConf AU 2013
Who's this guy then?
Co-OWNED a successful software company in Australia before moving to ENgland. I now have a local digital agency in norwich.
@BOYDLEE ON TWITTER
What is it?
The ability to build one app on whatever platform a developer
is comfortable with and then deploy that app across multiple platforms to all major computing hardware devices*.
*May not exist
why is it so much more important than ever before?
TO UNDERSTAND THAT QUESTION, WE FIRST NEED A BRIEF HISTORY LESSON...
The year 2000.
Y2K didn't cause the collapse of all civilisation.
The ILOVEYOU virus almost did (not really).
Sydney hosted the Olympics, during a time when us Aussies were actually still good at sport.
The world had never heard of Justin Bieber.
PC market share
Yes, we had the web, but it
wasn't exactly the rich
experience we have today.
Unless you're using a government website, in which case it's still exactly the same.
THEN IN 2007, this happened...
Fast forward five years
A market now dominated by smart phones and tablets running Google Android and Apple iOS.
PC market share
As more and More bit players enter the market, the ability to create apps natively for every single platform becomes harder and harder.
this does not even include the sheer and vast number of permutations of android, ios and other platforms.
Greater than 130 hardware models (not including tablets),
Greater than 10 platform versions from 1.5 to 4.x,
Firmware can usually be updated at any time.
Android alone has more 2000 device combinations and that's ignoring orientation changes and tablet computers!
so the time for the cross
platform tool has
And there's a lot of them...
BUT HOW DO THEY ACTUALLY WORK?
There are essentially three different types of architecture.
Web, using HTML and CSS,
Cross-compilation or interpreted, where an SDK in one language compiles down to multiple language sets, byte-code or assembly,
A mixture of both.
Web based cross platform tools include Phonegap bundled with sencha touch, jquery mobile, etc.
Created with standardised HTML & CSS,
Much easier to get working across a broad range of devices,
Much easier to design with,
Generally poor selection of device API's.
Hard to replicate native look and feel.
Generally poor performance.*
AND BEFORE SOMEONE COMPLAINS...
The performance problems of web based cross platform tools are not always the fault of the tools themselves but rather the very shitty WebKit browser implementations they run in.
Compilation BASED CROSS PLATFORM TOOLS INCLUDE Appcelerator Titanium, xamarin, RubyMotion, ETC.
Generally greater performance than web based tools,
Broad (and in some cases almost 1-1) mapping of native APIs,
Designing for them can be easier,
Develop in your language of choice.
Steeper learning curve,
Longer time to completion,
Designing for them can be harder,
You're at the mercy of the toolchain.
is there really a significant level of time and effort saved?
*figures from research2guidance.com May 2013
expectation has become
than ever BEFORE.
I got 99 problems
...and now the customer wants Android so I have 2999 problems,
...and now the customer wants WP8 so I have 3283 problems,
...and now the customer wants BB10 so I have 4301 problems...
Customers don't want their app "limited' to a platform
Umm... but there's API's for BB10 right?
Yeah they say Beta, but it should still work.
It can't be that hard.
CUSTOMERS WANT THEIR APP ON EVERY PLATFORM and every device
Well it works OK on my phone but on my friends/sons/colleagues/mothers Android ChinaEBayAwesomePhone 1.0 it crashes.
CUSTOMERS EXPECT MORE FOR LESS MONEY THAN EVER BEFORE.
So we can get two platforms for the price of one?
Can't you just swap out API xyz with API zxy?
Wow, I didn't realise software was that expensive.
There's a guy on eLance that can do it for $11 an hour - can't you match that?
Testing has become harder
and takes longer than the
At least half of your
development budget should
be assigned to testing.
That goes for client work too.
So bearing all
this in mind,
is cross platform
Tipsy & Tumbler Ltd
Why we chose cross platform.
Why we chose Appcelerator Titanium
as the primary tool for our mobile
What are the beneFITS?
What challenges have we faced as a
company that primarily uses third
party cross platform tools?
Get a good designer.
Unless you are a designer.
In which case - get a good developer.
Get your clients app drafts on TestFlight ASAP.
Manage expecations between devices and hardware.
Your contracts should define what hardware you support BEFORE you start development.
We are just a small company, but the same principles are being applied by giants, such as...
NOT just for enterprise or commercial applications.
The accompanying app for a certain rapper's upcoming album who shall remain nameless but had 99 problems before deciding to put a ring on it, was built in Titanium.
sometimes developers forget that we are here to not just build great stuff, but also to make money.
as a business, cross platform makes good financial sense.
"We can do dual-platform natively, but using Titanium, the costs are significantly less." ~ FeatherDirect LLC
"It reduces the time and effort in training and development, meaning we save money." ~ ThingsAreMoving.com
while we're talking business...
you are going to hear these at least once if you have any kind of mobile agency.
I have a great idea for a mobile app!
Would you consider revenue sharing?
I will pay when the app is finished.
The cross platform movement is also tied to the open source movement.
Not all, but most, cross platform toolkits are open source and able to be modified using native languages if required.
As we extend computing further and futher into the mobile and wearables space, the need to develop across mutiple platforms becomes even greater than today.
Have no doubt,
even if the present means
looking like a douchebag.