Tcdnug xamarin

  • View
    369

  • Download
    3

Embed Size (px)

Transcript

  • 1. CROSS PLATFORM DEVELOPMENTWITH XAMARIN TOOLSJoe KoletarMobile Solution Lead - Application Development

2. RBA Microsoft National Systems Integrator Gold Certified Microsoft Partner 7 Gold Competencies 6 Silver Competencies Named Best Places to Work in the Twin Cities 4 times Xamarin Premier Partner Joe Koletar Mobile Solutions Lead joe.koletar@rbaconsulting.comP:2CROSS PLATFORM MOBILE DEVELOPMENT 3. MOBILE DEVICE OPPORTUNITY Opportunity Mobile devices present an opportunity to reach users where its most convenient Business to Consumer (B2C) Applications Business to Business (B2B) Applications Challenge How to develop applications to reach the broadest range of users in the most effective manner possible for the least costP:3CROSS PLATFORM MOBILE DEVELOPMENT 4. CROSS PLATFORM TOOL OPTIONS There are a spectrum of technology options to provide cross platform support for enterprise apps Cross Platform Solutions MobileNativeCrossInterpretedNativeWeb Wrapper CompiledP:4CROSS PLATFORM MOBILE DEVELOPMENT 5. MOBILE WEBDefinitionWeb site with a mobile customized UI Detect user device and customize display to deviceform factor Responsive Design HTML 5 encourages a common browser experienceand provides some offline supportP:5 CROSS PLATFORM MOBILE DEVELOPMENT 6. MOBILE WEBHow it works Users access web site from device browser Business/Data Code HTML5/CSS/JavaScriptWeb Browser Web BrowserWeb Browser iOSAndroid Windows PhoneP:6 CROSS PLATFORM MOBILE DEVELOPMENT 7. MOBILE WEBCostMaintainabilityPerformanceUser ExperienceOffline CapabilitySensorsToolset ChoicesP:7CROSS PLATFORM MOBILE DEVELOPMENT 8. NATIVE APPDefinitionNative App is written custom for each deviceP:8 CROSS PLATFORM MOBILE DEVELOPMENT 9. NATIVE APPHow it works Native App is written custom for each platform Objective C JavaC#Native AppNative AppNative AppiOS Android Windows PhoneP:9 CROSS PLATFORM MOBILE DEVELOPMENT 10. NATIVE APP Cost Maintainability Performance User Experience Offline Capability Sensors Toolset ChoicesP:10 CROSS PLATFORM MOBILE DEVELOPMENT 11. NATIVE WRAPPER Definition Web App is wrapped in device specific code to run as a Native App Web app is hosted in a chromeless browser window.P:11 CROSS PLATFORM MOBILE DEVELOPMENT 12. NATIVE WRAPPER How it worksWeb App is wrapped in device specific code Access to sensors is achieved through a bridge HTML5/CSS/JavaScriptWeb ViewWeb ViewWeb ViewBridge BridgeBridgeNative API Native API Native API iOS AndroidWindows PhoneP:12 CROSS PLATFORM MOBILE DEVELOPMENT 13. NATIVE WRAPPER Cost Maintainability Performance User Experience Offline Capability Sensors Toolset ChoicesP:13CROSS PLATFORM MOBILE DEVELOPMENT 14. INTERPRETED Definition Interpreted applications map a common language to platform specific APIs Abstraction layer is provided on top of the native API Code is written to run on the abstraction layerP:14 CROSS PLATFORM MOBILE DEVELOPMENT 15. INTERPRETED How it worksApplication is written in scripting languageScript proxies provide access to native widgets JavaScript ScriptScriptScript Interpreter Interpreter Interpreter Native APINative APINative APIiOSAndroid Windows PhoneP:15 CROSS PLATFORM MOBILE DEVELOPMENT 16. INTERPRETED Cost Maintainability Performance User Experience Offline Capability Sensors Toolset ChoicesP:16CROSS PLATFORM MOBILE DEVELOPMENT 17. CROSS COMPILED Definition Cross compiled applications map a common language to platform specific languagesP:17 CROSS PLATFORM MOBILE DEVELOPMENT 18. CROSS COMPILED How it worksCommon business logic is combined withplatform specific UI code into native app C# Business/Data CodeC# iOS UIC# Android UI C# Win Phone UI Native AppNative AppNative App iOS Android Windows PhoneP:18 CROSS PLATFORM MOBILE DEVELOPMENT 19. CROSS COMPILED Cost Maintainability Performance User Experience Offline Capability Sensors Toolset ChoicesP:19CROSS PLATFORM MOBILE DEVELOPMENT 20. XAMARIN TOOLS A DEEPER LOOKAllows programming C# to iOS and Android Access to .NET Base Libraries Full featured language support: LINQ Generics Task Parallel Library Lambdas C# 5.0 support targeted for March Async featureC# bindings for nearly the entire underlyingplatform SDKs UI code is platform specific Supports native User Experience Also imposes a learning curveP:20XAMARIN TOOLS 21. XAMARIN HOW IT WORKSBuilt on top of Mono Open source version of the .NET Framework Ported to numerous platformsOn Android, Xamarins compiler compiles downto Intermediate Language (IL), which isthen Just-in-Time (JIT) compiled to nativeassembly when the application launches.On iOS, Xamarins Ahead-of-Time (AOT)compiler compiles Xamarin.iOS applicationsdirectly to native ARM assembly code.P:21XAMARIN TOOLS 22. XAMARIN PRODUCTSMono for Android Targets Android platform Can code in either Visual Studio or MonoDevelopMonoTouch Targets iOS platform Requires Macintosh computer running at least OSX Lion Can code in MonoDevelopFree Trial versions do not support deployment todevice Must perform testing in an emulator/simulatorP:22XAMARIN TOOLS 23. XAMARIN DEMOP:23XAMARIN TOOLS 24. ANDROID LAYOUTP:24XAMARIN TOOLS 25. XAMARIN ARCHITECTURETaskyPro Architecture across platformsP:25XAMARIN TOOLS 26. XAMARIN LINKSDownload trial software at: http://xamarin.com/trialTaskyPro Source Code https://github.com/xamarin/mobile-samples/tree/master/TaskyProTaskyPro Case Study http://docs.xamarin.com/Android/Guides/Application_Fundamentals/Building_Cross_Platform_Applications/Case_Study%3A_TaskyNumerous tutorials available at Xamarin Dev Center http://docs.xamarin.com/ http://forums.xamarin.com/YouTube Xamarin Channel http://www.youtube.com/user/xamarinhqX86 Emulator install instructions http://docs.xamarin.com/Android/Guides/Deployment,_Testing,_and_Metrics/Configuring_the_x86_EmulatorP:26 XAMARIN TOOLS 27. MOBILE TOOLS SELECTION ConsiderationsYour mobile technology is a vital strategicselection Must consider immediate and future needs Assess skills needed to build and maintain Determine best fit for the applicationP:27 CROSS PLATFORM MOBILE DEVELOPMENT 28. CLOSINGQuestionsGiveawaysP:28CROSS PLATFORM MOBILE DEVELOPMENT