41
Cross Platform Mobile Development - Introductio n #ISMOBIL E t strategy works best for my apps? marcelv@infosupport .com @marcelv

Cross platform mobile developement introduction

Embed Size (px)

Citation preview

Page 1: Cross platform mobile developement   introduction

Cross Platform Mobile

Development - Introduction

#ISMOBILE

What strategy works best for my apps?

[email protected]

@marcelv

Page 2: Cross platform mobile developement   introduction

Cross Platform Mobile Development - Introduction

AgendaMobile space– Market shares– Research predictions

Building mobile apps– What are my options?– What is native app development?– Hybrid solution with Mono

What strategy works best for my app?

Page 3: Cross platform mobile developement   introduction

Cross Platform Mobile Development - Introduction

Market research# of mobile devices sold now exceeds # of PC’s!

Page 4: Cross platform mobile developement   introduction

Cross Platform Mobile Development - Introduction

Market researchIn a few years the number of mobile devices will dwarf the number of PC’s

Page 5: Cross platform mobile developement   introduction

Market SharesRight now it is a two horse race

Cross Platform Mobile Development - Introduction

Page 6: Cross platform mobile developement   introduction

Market sharesThe game is not over, there is still a big market to gain!

Cross Platform Mobile Development - Introduction

Page 7: Cross platform mobile developement   introduction

Android23%

BlackBerry 13%iOS

16%

Symbian38%

Windows Phone

4%

Others4%

2010

Source: Gartner (http://www.gartner.com/it/page.jsp?id=1622614)

Smart Phone OS predictions

Cross Platform Mobile Development - Introduction

Android39%

BlackBerry 13%

iOS19%

Symbian19%

Windows Phone

6%

Others4%

2011

Android49%

BlackBerry 13%

iOS17%

Symbian0%

Windows Phone20%

Others3%

2015

Page 8: Cross platform mobile developement   introduction

Tablet Market shares predictions

2010Android

17%

iOS73%

Others10%

2011Android

22%

Windows4%

iOS67%

Others7%

2012Android

35%

Windows11%

iOS45%

Others9%

2015

Source: Gartner (http://www.gartner.com/it/page.jsp?id=1800514)

Cross Platform Mobile Development - Introduction

Page 9: Cross platform mobile developement   introduction

Cross Platform Mobile Development - Introduction

Building mobile apps

Page 10: Cross platform mobile developement   introduction

Building apps for the Mobile Space

Cross Platform Mobile Development - Introduction

User Experience Developer

productivity

Which platforms

?Application

Lifecycle Management

Distribution: Public or private

Corporate?Security & privacy

Page 11: Cross platform mobile developement   introduction

User interface designGraphical design– How does the app look?

Interaction design– How do I create an effective and efficient user

interface?– How do I create a natural experience that people

understand without training?

Cross Platform Mobile Development - Introduction

Page 12: Cross platform mobile developement   introduction

User ExperienceEmotionSenseSometimes almost a religion!Must closely match the native device experience!

Cross Platform Mobile Development - Introduction

Page 13: Cross platform mobile developement   introduction

Touch interface

Cross Platform Mobile Development - Introduction

Page 14: Cross platform mobile developement   introduction

USABILITY RESEARCH

How target size influences error rate

1/25

1/100

1/1000

Page 15: Cross platform mobile developement   introduction

Use touch target sizeRecommended size– 7x7mm

Optimized for accuracy– 9x9mm

Optimized for small size– 5x5mm

Each target has 2mm padding

touch target padding

Microsoft: 9x9mmApple HIG: 44x44px

Page 16: Cross platform mobile developement   introduction

Technology options for building apps

Page 17: Cross platform mobile developement   introduction

Application types

Cross Platform Mobile Development - Introduction

Page 18: Cross platform mobile developement   introduction

HTML 5 mobile websites

Runs from the webMaximum reachNo native user interfaceOptional shortcut on the device with offline support

Cross Platform Mobile Development - Introduction

Page 19: Cross platform mobile developement   introduction

HTML5 mobile apps

Can be purchased from AppStoreInstalled on the deviceNetwork connection not required to runNo native user interface

Cross Platform Mobile Development - Introduction

Page 20: Cross platform mobile developement   introduction

Native mobile apps

Can be purchased from AppStoreInstalled on the deviceNetwork connection not required to runNative interfaceMaximum richness

Cross Platform Mobile Development - Introduction

Page 21: Cross platform mobile developement   introduction

Native mobile apps

Different development environments– Java for Android– Objective-C for iPhone– XAML/C# for Windows Phone

Cross Platform Mobile Development - Introduction

Page 22: Cross platform mobile developement   introduction

Application types

Cross Platform Mobile Development - Introduction

Native look & feel -- -- ++Camera Access -- +- ++GPS ++ ++ ++

Secure service communication JSON/REST JSON/REST JSON/SOAP

Access to calendar -- -- ++Twitter integration +- +- +Distribution ++ AppStore presence AppStore presence

Page 23: Cross platform mobile developement   introduction

Building native apps, the options

Cross Platform Mobile Development - Introduction

Objective-CC / C++

C / C++Different CPU architectures

C# / Silverlight 3+

Java

Page 24: Cross platform mobile developement   introduction

Building native apps, the optionsReally?Write an app for each device?I need to master Objective C, Java and C#?Any alternatives?

Cross Platform Mobile Development - Introduction

Page 25: Cross platform mobile developement   introduction

3 types

Cross Platform Mobile Development - Introduction

App Logic

Vendor tools “Magic Box” Hybrid

XCodeObjective-

C

WP7 Silverlight

C#

Android SDKJava

Appcelerator Titanium

JavaScript > Native

PhoneGapHTML5 / CSS /

JS

Adobe AIRActionScript

AntennaRapid Scripting

Language

Service2MediaLua

C#

XamarinMonoTouch

WP7 Silverlight Xamarin

Mono for Android

RhodesRuby + HTML

Sybase Unwired

“4GL” code gen Shared languageKony

Javascript Lua

Dennis Joosten
C / C++ wordt hier ook veel gebruikt. Ik weet niet of er ook Xplatform Java variant is?
Page 26: Cross platform mobile developement   introduction

What is native?

Page 27: Cross platform mobile developement   introduction

What is the meaning of “native”?

Native = use the frameworks and libraries of the OS, regardless of the language or toolsNative = User experience 100% aligned with default OS device experience+ Leveraging all device capabilities

Cross Platform Mobile Development - Introduction

Page 28: Cross platform mobile developement   introduction

Hybrid - .NET Multi platform

Cross Platform Mobile Development - Introduction

Mono for AndroidMonoTouch C# / Silverlight

• Wrappers on OS framework/API• .NET feel: properties, events, LINQ, PLINQ, XML, WCF, etc.• App & UX 100% native!

Page 29: Cross platform mobile developement   introduction

But aren’t apps built with mono slow?

Page 30: Cross platform mobile developement   introduction

Comparison Mono & Objective-C / Java

Cross Platform Mobile Development - Introduction

Page 31: Cross platform mobile developement   introduction

Perceived performanceYes there is overheadNative-to-Managed causes overheadMono has a garbage collectorCPU-intensive: use LLVM compiler

But it’s no problemMost of us don’t build real time 3D gfx

Make the app feel fastKeep download size smallCut startup time by offloading tasks ASAPUse background tasks & activity indicators

…is in the eye of the beholder

Performance…

Page 32: Cross platform mobile developement   introduction

Even game developers choose Mono!

Delta engine

Cross Platform Mobile Development - Introduction

Page 33: Cross platform mobile developement   introduction

But can I access all device capabilities?

Page 34: Cross platform mobile developement   introduction

iOSMonoTouch.CoreLocationMonoTouch.CoreMotionMonoTouch.AVFoundationMonoTouch.AddressBookMonoTouch.EventKit…

Android: Android.Hardware.SensorAndroid.LocationAndroid.BluetoothAndroid.Nfc…

Windows Phone: Microsoft.Devices.Sensors.GyroscopeMicrosoft.Devices.Sensors.AccelerometerMicrosoft.Devices.Sensors.CompassMicrosoft.Devices.Sensors.Motion…

You can access all device capabilities!For each platform there is a set of namespaces that enable full device access

Use device abstractions!

Page 35: Cross platform mobile developement   introduction

Ok, but coding models differ significant.

How much code can I share?

Page 36: Cross platform mobile developement   introduction

Code sharing ISKE app

Re-us-

able20%

Shared

app logic20%

Windows813%

iOS18%

WP712%

Android16%

Shared65%

Specific35%

Per App

...and that’s without the back end

Page 37: Cross platform mobile developement   introduction

As long as you do proper design

Page 38: Cross platform mobile developement   introduction

What strategy works best for my app?

Business reasons for your app– Presence– I really want to add value to my product / brand

The tradeoff’s– Always Connected

• HTML, Native– Occasionally connected

• Disconnected HTML, Native– What device capabilities do you need?

• GPS => HTML still an option• Phone book, dial integration, Accelerator, compass, etc

– HTML + Magic box can be used– Native

Cross Platform Mobile Development - Introduction

Page 39: Cross platform mobile developement   introduction

What strategy works best for my app?

So I choose for HTML– Will I pick pure HTML or use magic box– Magic box adds capabilities to access device

sensors

So I choose Native– Will I pick a new development strategy for each

device?– Will I use one uniform platform and programming

language• Code sharing capability up until 70-80%!

– Bottom line: Native != 3 stacks

Cross Platform Mobile Development - Introduction

Page 40: Cross platform mobile developement   introduction

Call to actionRevisit your app development strategyWhat are the reasons I choose my current implementation strategyConsider going native, since native provides the best experience– But don’t accept vendor multi stack as the only

solution

If going native consider the use of Mono– Provides all capabilities you have with vendor tools– Adds code sharing capability and will reduce

development cost significantly!

Cross Platform Mobile Development - Introduction

Page 41: Cross platform mobile developement   introduction

Questions?

Cross Platform Mobile Development - Introduction

Questions?