SlideShare a Scribd company logo
1 of 40
Download to read offline
Xamarin
Victim of Phonegap’s horrible reputation
Gabor Wnuk, iOS Platform Lead / iOS Architect
github.com/GaborWnuk
What is Xamarin?
What is Xamarin?
Traditional Xamarin
approach
With Xamarin.Forms: more
code sharing, native controls
~70% - 90% code reuse ~90% - 99% code reuse
What is Xamarin?
Business Layer
Realm.io, Networking (NSURLSession / okhttp),
ADS
What is Xamarin?
• C#
• bought by Microsoft and integrated with Visual Studio
• open source
• FREE
• created by genius (Miguel de Icaza, Midnight
Commander, GNOME, Gnumeric, uses OSX, never
received a degree)
Why You should forget
everything You hate about
Cordova based solutions?
Xamarin is not Phonegap.
Not at all.
Xamarin is not Phonegap
• iOS: 100% native ARM,
~ 1% slower than native Swift
~ 30% faster than Objective-C
• Android: Dalvik / ART <-> Mono VM bridge
~ 260% faster* than native Java ;)
github.com/harrycheung/Mobile-App-Performance
Xamarin is not Phonegap
github.com/harrycheung/Mobile-App-Performance
0.427s
0.490s
0.745s
3.012s
Swift
Xamarin
Objective-C
Cordova
Xamarin is not Phonegap
github.com/harrycheung/Mobile-App-Performance
0.461s
1.120s
2.948s
8.878s
C++
Android
Xamarin
JAVA
Android
Cordova
That’s nice. How can i start?
How can i start?
• Download Xamarin Alpha Channel from xamarin.com
• Clone example for this keynote from
github.com/GaborWnuk/xamarin-weather-example
• Listen carefully.
How can i start: project
structure for Xamarin.Forms
• Shared project, shared between
Android and iOS
• Android project
• iOS project
How can i start: shared project
• Database
• Network Communication
• Other business logic consistent
across all platforms
• In our case - UI
How can i start: Android
• Platform specific code base
• Platform specific UI
• Platform specific assets (hdpi,
xhdpi, xxhdpi and so on)
• All of above is optional
How can i start: iOS
• Platform specific code base
• Platform specific UI
• Platform specific assets (also
vector)
• Access to Storyboard
• All of above is optional
Result?
What about our workflow?
What about our workflow?
• Continous Integration?
Continous Integration?
• Full Jenkins support
• Fastlane not officially supported (as of 01.06.2016) but
easy to apply
What about our workflow?
• Continous Integration?
• Testing?
Testing?
• Full Calabash support. Well, they’ve created it.
• Xamarin Test Cloud
Xamarin Test Cloud
What about our workflow?
• Continous Integration?
• Testing?
• CocoaPods?
CocoaPods? Sharpie!
What about our workflow?
• Continous Integration?
• Testing?
• CocoaPods?
• Third party components?
Third party components? NuGET!
What about our workflow?
• Continous Integration?
• Testing?
• CocoaPods?
• Third party components?
• Community?
What about our workflow?
• Continous Integration?
• Testing?
• CocoaPods?
• Third party components?
• Community?
• IDE?
What about our workflow?
• Continous Integration?
• Testing?
• CocoaPods?
• Third party components?
• Community?
• IDE?
• Language?
Xamarin - Victim of Phonegap’s horrible reputation

More Related Content

What's hot

SharePoint Saturday Vancouver - SharePoint Framework, Angular and Azure Funct...
SharePoint Saturday Vancouver - SharePoint Framework, Angular and Azure Funct...SharePoint Saturday Vancouver - SharePoint Framework, Angular and Azure Funct...
SharePoint Saturday Vancouver - SharePoint Framework, Angular and Azure Funct...Sébastien Levert
 
ng-conf NativeScript and Angular 2 Workshop
ng-conf NativeScript and Angular 2 Workshopng-conf NativeScript and Angular 2 Workshop
ng-conf NativeScript and Angular 2 Workshoptjvantoll
 
SharePoint Fest DC - SharePoint Framework, Angular and Azure Functions
SharePoint Fest DC - SharePoint Framework, Angular and Azure FunctionsSharePoint Fest DC - SharePoint Framework, Angular and Azure Functions
SharePoint Fest DC - SharePoint Framework, Angular and Azure FunctionsSébastien Levert
 
Docking from a z in visual fox pro 9
Docking from a z in visual fox pro 9Docking from a z in visual fox pro 9
Docking from a z in visual fox pro 9Mike Feltman
 
What’s new in x case 8
What’s new in x case 8What’s new in x case 8
What’s new in x case 8Mike Feltman
 
Introduction to NativeScript - BuildTruly Native Apps using JavaScript
Introduction to NativeScript - BuildTruly Native Apps using JavaScriptIntroduction to NativeScript - BuildTruly Native Apps using JavaScript
Introduction to NativeScript - BuildTruly Native Apps using JavaScriptLohith Goudagere Nagaraj
 
Nightmapper's presentation
Nightmapper's presentationNightmapper's presentation
Nightmapper's presentationBadoo
 
NativeScript - Open source framework for building truly native mobile apps wi...
NativeScript - Open source framework for building truly native mobile apps wi...NativeScript - Open source framework for building truly native mobile apps wi...
NativeScript - Open source framework for building truly native mobile apps wi...Dan Wilson
 
NativeScript: Cross-Platform Mobile Apps with JavaScript and Angular
NativeScript: Cross-Platform Mobile Apps with JavaScript and AngularNativeScript: Cross-Platform Mobile Apps with JavaScript and Angular
NativeScript: Cross-Platform Mobile Apps with JavaScript and AngularTodd Anglin
 
Cross platform Native apps with JavaScript - Helsinki 2018-04
Cross platform Native apps with JavaScript - Helsinki 2018-04Cross platform Native apps with JavaScript - Helsinki 2018-04
Cross platform Native apps with JavaScript - Helsinki 2018-04Rene Pot
 
Express-introduction-程序猿小卡
Express-introduction-程序猿小卡Express-introduction-程序猿小卡
Express-introduction-程序猿小卡chyingp
 
North American Collaboration Summit 2018 - SharePoint Framework, Angular & Az...
North American Collaboration Summit 2018 - SharePoint Framework, Angular & Az...North American Collaboration Summit 2018 - SharePoint Framework, Angular & Az...
North American Collaboration Summit 2018 - SharePoint Framework, Angular & Az...Sébastien Levert
 
Cross platform development
Cross platform developmentCross platform development
Cross platform developmentdftaiwo
 
Phonegap
PhonegapPhonegap
PhonegapTim Kim
 
Intro to Appcelerator Titanium - Code for Fort Lauderdale 2015
Intro to Appcelerator Titanium - Code for Fort Lauderdale 2015Intro to Appcelerator Titanium - Code for Fort Lauderdale 2015
Intro to Appcelerator Titanium - Code for Fort Lauderdale 2015Adam Paxton
 

What's hot (20)

SharePoint Saturday Vancouver - SharePoint Framework, Angular and Azure Funct...
SharePoint Saturday Vancouver - SharePoint Framework, Angular and Azure Funct...SharePoint Saturday Vancouver - SharePoint Framework, Angular and Azure Funct...
SharePoint Saturday Vancouver - SharePoint Framework, Angular and Azure Funct...
 
From Web to Mobile with Stage 3D
From Web to Mobile with Stage 3DFrom Web to Mobile with Stage 3D
From Web to Mobile with Stage 3D
 
ng-conf NativeScript and Angular 2 Workshop
ng-conf NativeScript and Angular 2 Workshopng-conf NativeScript and Angular 2 Workshop
ng-conf NativeScript and Angular 2 Workshop
 
Nativescript
NativescriptNativescript
Nativescript
 
SharePoint Fest DC - SharePoint Framework, Angular and Azure Functions
SharePoint Fest DC - SharePoint Framework, Angular and Azure FunctionsSharePoint Fest DC - SharePoint Framework, Angular and Azure Functions
SharePoint Fest DC - SharePoint Framework, Angular and Azure Functions
 
Docking from a z in visual fox pro 9
Docking from a z in visual fox pro 9Docking from a z in visual fox pro 9
Docking from a z in visual fox pro 9
 
What’s new in x case 8
What’s new in x case 8What’s new in x case 8
What’s new in x case 8
 
Introduction to NativeScript - BuildTruly Native Apps using JavaScript
Introduction to NativeScript - BuildTruly Native Apps using JavaScriptIntroduction to NativeScript - BuildTruly Native Apps using JavaScript
Introduction to NativeScript - BuildTruly Native Apps using JavaScript
 
Nightmapper's presentation
Nightmapper's presentationNightmapper's presentation
Nightmapper's presentation
 
NativeScript - Open source framework for building truly native mobile apps wi...
NativeScript - Open source framework for building truly native mobile apps wi...NativeScript - Open source framework for building truly native mobile apps wi...
NativeScript - Open source framework for building truly native mobile apps wi...
 
NativeScript: Cross-Platform Mobile Apps with JavaScript and Angular
NativeScript: Cross-Platform Mobile Apps with JavaScript and AngularNativeScript: Cross-Platform Mobile Apps with JavaScript and Angular
NativeScript: Cross-Platform Mobile Apps with JavaScript and Angular
 
Cross platform Native apps with JavaScript - Helsinki 2018-04
Cross platform Native apps with JavaScript - Helsinki 2018-04Cross platform Native apps with JavaScript - Helsinki 2018-04
Cross platform Native apps with JavaScript - Helsinki 2018-04
 
Express-introduction-程序猿小卡
Express-introduction-程序猿小卡Express-introduction-程序猿小卡
Express-introduction-程序猿小卡
 
NativeScript + Push Notifications
NativeScript + Push NotificationsNativeScript + Push Notifications
NativeScript + Push Notifications
 
North American Collaboration Summit 2018 - SharePoint Framework, Angular & Az...
North American Collaboration Summit 2018 - SharePoint Framework, Angular & Az...North American Collaboration Summit 2018 - SharePoint Framework, Angular & Az...
North American Collaboration Summit 2018 - SharePoint Framework, Angular & Az...
 
Titanium #MDS13
Titanium #MDS13Titanium #MDS13
Titanium #MDS13
 
Cross platform development
Cross platform developmentCross platform development
Cross platform development
 
Ansible for Automation
Ansible for AutomationAnsible for Automation
Ansible for Automation
 
Phonegap
PhonegapPhonegap
Phonegap
 
Intro to Appcelerator Titanium - Code for Fort Lauderdale 2015
Intro to Appcelerator Titanium - Code for Fort Lauderdale 2015Intro to Appcelerator Titanium - Code for Fort Lauderdale 2015
Intro to Appcelerator Titanium - Code for Fort Lauderdale 2015
 

Similar to Xamarin - Victim of Phonegap’s horrible reputation

Introduction to Cross Platform Development with Xamarin/ Visual Studio
Introduction to Cross Platform Development with Xamarin/ Visual StudioIntroduction to Cross Platform Development with Xamarin/ Visual Studio
Introduction to Cross Platform Development with Xamarin/ Visual StudioIndyMobileNetDev
 
Cross platform mobile development with xamarin and office 365
Cross platform mobile development with xamarin and office 365Cross platform mobile development with xamarin and office 365
Cross platform mobile development with xamarin and office 365SoHo Dragon
 
Visual studio + Xamarin == Love
Visual studio + Xamarin == LoveVisual studio + Xamarin == Love
Visual studio + Xamarin == LoveAdam Hill
 
Visual studio + Xamarin equals love
Visual studio + Xamarin equals loveVisual studio + Xamarin equals love
Visual studio + Xamarin equals loveAdam Hill
 
Rise of the hybrids
Rise of the hybridsRise of the hybrids
Rise of the hybridsOron Ben Zvi
 
Building Mobile Cross-Platform Apps for iOS, Android & Windows in C# with Xam...
Building Mobile Cross-Platform Apps foriOS, Android & Windows in C# with Xam...Building Mobile Cross-Platform Apps foriOS, Android & Windows in C# with Xam...
Building Mobile Cross-Platform Apps for iOS, Android & Windows in C# with Xam...Nick Landry
 
Mobile Backend Apps and APIs meetup London overview of BaaS APIs and discussi...
Mobile Backend Apps and APIs meetup London overview of BaaS APIs and discussi...Mobile Backend Apps and APIs meetup London overview of BaaS APIs and discussi...
Mobile Backend Apps and APIs meetup London overview of BaaS APIs and discussi...Taras Filatov
 
HTML5 is the Future of Mobile, PhoneGap Takes You There Today
HTML5 is the Future of Mobile, PhoneGap Takes You There TodayHTML5 is the Future of Mobile, PhoneGap Takes You There Today
HTML5 is the Future of Mobile, PhoneGap Takes You There Todaydavyjones
 
Developing a native mobile apps using Ionic&Cordova
Developing a native mobile apps using Ionic&CordovaDeveloping a native mobile apps using Ionic&Cordova
Developing a native mobile apps using Ionic&CordovaDamir Beylkhanov
 
Going Mobile with C#, Visual Studio, and Xamarin
Going Mobile with C#, Visual Studio, and XamarinGoing Mobile with C#, Visual Studio, and Xamarin
Going Mobile with C#, Visual Studio, and XamarinMatthew Soucoup
 
Introduction to xamarin
Introduction to xamarinIntroduction to xamarin
Introduction to xamarinDaniel Fikre
 
Mono for Android... for Google Devs
Mono for Android... for Google DevsMono for Android... for Google Devs
Mono for Android... for Google DevsCraig Dunn
 
Build Cross Platform Mobile Apps for iOS & Android with Xamarin & MvvmCross
Build Cross Platform Mobile Apps for iOS & Android with Xamarin & MvvmCrossBuild Cross Platform Mobile Apps for iOS & Android with Xamarin & MvvmCross
Build Cross Platform Mobile Apps for iOS & Android with Xamarin & MvvmCrossIshai Hachlili
 
Desert code camp 2014, iOS and Android development for c# developers with Xam...
Desert code camp 2014, iOS and Android development for c# developers with Xam...Desert code camp 2014, iOS and Android development for c# developers with Xam...
Desert code camp 2014, iOS and Android development for c# developers with Xam...James Montemagno
 
State of Union: Xamarin & Cross-Platform .NET in 2016 and Beyond
State of Union: Xamarin & Cross-Platform .NET in 2016 and BeyondState of Union: Xamarin & Cross-Platform .NET in 2016 and Beyond
State of Union: Xamarin & Cross-Platform .NET in 2016 and BeyondNick Landry
 
Hybrid Mobile App Development - Xamarin
Hybrid Mobile App Development - XamarinHybrid Mobile App Development - Xamarin
Hybrid Mobile App Development - XamarinDeepu S Nath
 

Similar to Xamarin - Victim of Phonegap’s horrible reputation (20)

Introduction to Cross Platform Development with Xamarin/ Visual Studio
Introduction to Cross Platform Development with Xamarin/ Visual StudioIntroduction to Cross Platform Development with Xamarin/ Visual Studio
Introduction to Cross Platform Development with Xamarin/ Visual Studio
 
Cross platform mobile development with xamarin and office 365
Cross platform mobile development with xamarin and office 365Cross platform mobile development with xamarin and office 365
Cross platform mobile development with xamarin and office 365
 
Visual studio + Xamarin == Love
Visual studio + Xamarin == LoveVisual studio + Xamarin == Love
Visual studio + Xamarin == Love
 
Xamarin介紹
Xamarin介紹Xamarin介紹
Xamarin介紹
 
Visual studio + Xamarin equals love
Visual studio + Xamarin equals loveVisual studio + Xamarin equals love
Visual studio + Xamarin equals love
 
Rise of the hybrids
Rise of the hybridsRise of the hybrids
Rise of the hybrids
 
Introduction to xamarin
Introduction to xamarin  Introduction to xamarin
Introduction to xamarin
 
Building Mobile Cross-Platform Apps for iOS, Android & Windows in C# with Xam...
Building Mobile Cross-Platform Apps foriOS, Android & Windows in C# with Xam...Building Mobile Cross-Platform Apps foriOS, Android & Windows in C# with Xam...
Building Mobile Cross-Platform Apps for iOS, Android & Windows in C# with Xam...
 
Introduction to xamarin
Introduction to xamarinIntroduction to xamarin
Introduction to xamarin
 
Mobile Backend Apps and APIs meetup London overview of BaaS APIs and discussi...
Mobile Backend Apps and APIs meetup London overview of BaaS APIs and discussi...Mobile Backend Apps and APIs meetup London overview of BaaS APIs and discussi...
Mobile Backend Apps and APIs meetup London overview of BaaS APIs and discussi...
 
HTML5 is the Future of Mobile, PhoneGap Takes You There Today
HTML5 is the Future of Mobile, PhoneGap Takes You There TodayHTML5 is the Future of Mobile, PhoneGap Takes You There Today
HTML5 is the Future of Mobile, PhoneGap Takes You There Today
 
Developing a native mobile apps using Ionic&Cordova
Developing a native mobile apps using Ionic&CordovaDeveloping a native mobile apps using Ionic&Cordova
Developing a native mobile apps using Ionic&Cordova
 
Going Mobile with C#, Visual Studio, and Xamarin
Going Mobile with C#, Visual Studio, and XamarinGoing Mobile with C#, Visual Studio, and Xamarin
Going Mobile with C#, Visual Studio, and Xamarin
 
Introduction to xamarin
Introduction to xamarinIntroduction to xamarin
Introduction to xamarin
 
Mono for Android... for Google Devs
Mono for Android... for Google DevsMono for Android... for Google Devs
Mono for Android... for Google Devs
 
Build Cross Platform Mobile Apps for iOS & Android with Xamarin & MvvmCross
Build Cross Platform Mobile Apps for iOS & Android with Xamarin & MvvmCrossBuild Cross Platform Mobile Apps for iOS & Android with Xamarin & MvvmCross
Build Cross Platform Mobile Apps for iOS & Android with Xamarin & MvvmCross
 
Desert code camp 2014, iOS and Android development for c# developers with Xam...
Desert code camp 2014, iOS and Android development for c# developers with Xam...Desert code camp 2014, iOS and Android development for c# developers with Xam...
Desert code camp 2014, iOS and Android development for c# developers with Xam...
 
Xamarin v.Now
Xamarin v.NowXamarin v.Now
Xamarin v.Now
 
State of Union: Xamarin & Cross-Platform .NET in 2016 and Beyond
State of Union: Xamarin & Cross-Platform .NET in 2016 and BeyondState of Union: Xamarin & Cross-Platform .NET in 2016 and Beyond
State of Union: Xamarin & Cross-Platform .NET in 2016 and Beyond
 
Hybrid Mobile App Development - Xamarin
Hybrid Mobile App Development - XamarinHybrid Mobile App Development - Xamarin
Hybrid Mobile App Development - Xamarin
 

Xamarin - Victim of Phonegap’s horrible reputation

  • 1. Xamarin Victim of Phonegap’s horrible reputation Gabor Wnuk, iOS Platform Lead / iOS Architect github.com/GaborWnuk
  • 3. What is Xamarin? Traditional Xamarin approach With Xamarin.Forms: more code sharing, native controls ~70% - 90% code reuse ~90% - 99% code reuse
  • 4. What is Xamarin? Business Layer Realm.io, Networking (NSURLSession / okhttp), ADS
  • 5. What is Xamarin? • C# • bought by Microsoft and integrated with Visual Studio • open source • FREE • created by genius (Miguel de Icaza, Midnight Commander, GNOME, Gnumeric, uses OSX, never received a degree)
  • 6. Why You should forget everything You hate about Cordova based solutions?
  • 7. Xamarin is not Phonegap. Not at all.
  • 8. Xamarin is not Phonegap • iOS: 100% native ARM, ~ 1% slower than native Swift ~ 30% faster than Objective-C • Android: Dalvik / ART <-> Mono VM bridge ~ 260% faster* than native Java ;) github.com/harrycheung/Mobile-App-Performance
  • 9. Xamarin is not Phonegap github.com/harrycheung/Mobile-App-Performance 0.427s 0.490s 0.745s 3.012s Swift Xamarin Objective-C Cordova
  • 10. Xamarin is not Phonegap github.com/harrycheung/Mobile-App-Performance 0.461s 1.120s 2.948s 8.878s C++ Android Xamarin JAVA Android Cordova
  • 11. That’s nice. How can i start?
  • 12. How can i start? • Download Xamarin Alpha Channel from xamarin.com • Clone example for this keynote from github.com/GaborWnuk/xamarin-weather-example • Listen carefully.
  • 13. How can i start: project structure for Xamarin.Forms • Shared project, shared between Android and iOS • Android project • iOS project
  • 14. How can i start: shared project • Database • Network Communication • Other business logic consistent across all platforms • In our case - UI
  • 15.
  • 16.
  • 17.
  • 18.
  • 19. How can i start: Android • Platform specific code base • Platform specific UI • Platform specific assets (hdpi, xhdpi, xxhdpi and so on) • All of above is optional
  • 20.
  • 21. How can i start: iOS • Platform specific code base • Platform specific UI • Platform specific assets (also vector) • Access to Storyboard • All of above is optional
  • 22.
  • 24. What about our workflow?
  • 25. What about our workflow? • Continous Integration?
  • 26. Continous Integration? • Full Jenkins support • Fastlane not officially supported (as of 01.06.2016) but easy to apply
  • 27. What about our workflow? • Continous Integration? • Testing?
  • 28. Testing? • Full Calabash support. Well, they’ve created it. • Xamarin Test Cloud
  • 30.
  • 31.
  • 32.
  • 33. What about our workflow? • Continous Integration? • Testing? • CocoaPods?
  • 35. What about our workflow? • Continous Integration? • Testing? • CocoaPods? • Third party components?
  • 37. What about our workflow? • Continous Integration? • Testing? • CocoaPods? • Third party components? • Community?
  • 38. What about our workflow? • Continous Integration? • Testing? • CocoaPods? • Third party components? • Community? • IDE?
  • 39. What about our workflow? • Continous Integration? • Testing? • CocoaPods? • Third party components? • Community? • IDE? • Language?