Cross Platform Mobile App Development Tools @MarkArteaga [email protected] www.markarteaga.com Mark Arteaga | Founder @RedBitDev www.RedBitDev.com
May 19, 2015
Cross Platform Mobile App Development Tools
@MarkArteaga
[email protected] 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
[email protected] www.markarteaga.com
Mark Arteaga | Founder @RedBitDev
www.RedBitDev.com
Thank you & Questions!
THANK YOU & QUESTIONS!