WIPJam Cross Platform Tools - Dec 2013

Post on 19-May-2015

483 Views

Category:

Technology

2 Downloads

Preview:

Click to see full reader

DESCRIPTION

You typically need to develop for more than one type of mobile platform – so how does that work? What is the difference between a native app and web app? This session will uncover the decisions and tools available to make your application available on the iOS, Android, Windows Phone/Windows 8 and other platforms of importance to your end users to maximize your reach and minimize your maintenance effort.

Transcript

Cross Platform Mobile App Development Tools

@MarkArteaga

mark@redbitdev.com www.markarteaga.com

Mark Arteaga | Founder @RedBitDev

www.RedBitDev.com

WHY ARE WE HERE?

CHALLENGE & GOALS?

• Target all relevant platforms• Reduce development time• Reduce development costs• Make end customers happy on all

platforms (BYOD)• Share common code across platforms

MOBILE LANDSCAPE

NATIVE APPS

• Built with standard native UI controls• Conforms to platform’s design

conventions• Optimal performance• Leverages platform level HW

acceleration• Access to full platform functionality

Defining Native: App Characteristics

• Objective C• Xcode on Mac

OS• Free

Tools/SDK• $99 Store

Fee/yr

• Java, C/C++• Plugin for

Eclipse plus others

• Free Tools/SDK• $25 Store Fee

(One Time)

• C#, C++, VB.NET

• Visual Studio/ VS Express

• Free Tools/SDK• $19 Store

Fee/yr Personal

• $99/yr Company

TECH APPROACHES TO CROSS PLATFORM

JavaScript Frameworks – What is It?• Mobile optimized website• UI rendered by browser– Safari for iOS– Chrome for Android– IE for Windows

• No app store deployment• Standard JavaScript, HTML, CSS• Low barrier to entry

JavaScript Frameworks - Tools• jQuery Mobile• Sencha Touch• jQT (jQTouch)• KendoUI• Many open source

Hybrid Apps – What Is It?• Native apps using embedded web

browser• HTML, CSS, JavaScript is used as to

render the UI• JavaScript & native “bridge” to

access device capabilities– Notifications, compass, filesystem

• Leverage existing JavaScript frameworks

• Tries to accomplish ‘write once run anywhere’

Hybrid Apps – Frameworks

• Apache Cordova (PhoneGap)• Others based on PhoneGap

Native Runtimes – What is it?• Compatibility layer that sits on top of

the native OS• Attempts to shield app from platform

differences• Executes code using different

methods– Interpretation– JIT Compiling– AOT Compiling

• Compiles to native code

Native Runtimes – Tools/Frameworks

• Xamarin.iOS, Xamarin.Android• Appcelerator• Corona• AppMobi• Adobe Flex

REDBIT’S CHOICE

Native Runtimes

• Javascript as the coding language• Compiled down to native app– Javascript is not compiled– Interpreted code

• Uses native controls on platform (ie button)

• Attempts to have one code base for– business logic code– User interface code

• Program to lowest common denominator for one code base

• C# as the coding language• Compiled down to native code– AOT Compiling to binary code for ARM

• Does not try to accomplish write once run anywhere– Code sharing of core business logic –Write UI for every platform as every

platform has different UI concepts

Our Final Choice

Why ?

• Development team had more experience with C#

• Compiles down to native code for performance

• Does not try to accomplish ‘write once run anywhere’

• Can share across iOS, Android and Windows (WPF, Windows 8, Windows Phone)

HOW DO YOU DECIDE?

Questions to ask …• Do you really need a native app? Is mobile

optimized satisfy requirements?• Native required then what platforms are

your customers on?• Is there a BYOD strategy in your

organization? • What are your development teams

strengths? Web/.NET/Java etc• Will customers accept an app that ‘does

not feel native to platform’?• Do you require platform integration such

as gestures, notifications, GPS, camera?

Questions to ask … (con’t)• Do you require offline functionality?• How does your app get discovered?– Enterprise app – you tell them where to get it.– Consumer app – they have to find you, they

usually use web

• Maintainability – easier to update a web app than a native/hybrid/runtime app

• Costs – Least - develop mobile optimized site– Mid – develop hybrid app– Mid 2 – Runtime app, share code, unique UI– Most – Pure native apps (write for every

platform)

@MarkArteaga

mark@redbitdev.com www.markarteaga.com

Mark Arteaga | Founder @RedBitDev

www.RedBitDev.com

Thank you & Questions!

THANK YOU & QUESTIONS!

top related