This document discusses cross-platform mobile app development tools and strategies. It explores developing native apps for each platform versus cross-platform approaches using JavaScript frameworks, hybrid apps, and native runtimes. The document's author chose to use a native runtime called Xamarin that compiles C# code to native iOS, Android, and Windows apps. Key considerations for choosing a cross-platform strategy include development skills, platform integration needs, discoverability, costs, and maintaining a native user experience on each platform.
4. Target all relevant platforms
Reduce development time
Reduce development costs
Make end customers happy on all
platforms (BYOD)
• Share common code across platforms
•
•
•
•
9. Defining Native: App Characteristics
• Built with standard native UI controls
• Conforms to platform‟s design
conventions
• Optimal performance
• Leverages platform level HW acceleration
• Access to full platform functionality
10. • Objective C
• Xcode on Mac
OS
• Free Tools/SDK
• $99 Store Fee/yr
• C#, C++, VB.NET
• Visual Studio/
VS Express
• Free Tools/SDK
• $19 Store Fee/yr
Personal
• $99/yr Company
• Java, C/C++
• Plugin for Eclipse
plus others
• Free Tools/SDK
• $25 Store Fee
(One Time)
13. 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
14. JavaScript Frameworks - Tools
•
•
•
•
jQuery Mobile
Sencha Touch
jQT (jQTouch)
KendoUI
• Many open source
15. 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‟
16. Hybrid Apps – Frameworks
• Apache Cordova (PhoneGap)
• Others based on PhoneGap
17. 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
21. • 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
22. • 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
24. 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)
26. 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?
27. 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)
28. Thank you & Questions!
Mark Arteaga | Founder
@RedBitDev
@MarkArteaga
mark@redbitdev.com
www.markarteaga.com
www.RedBitDev.com