Advertisement
Advertisement

More Related Content

Advertisement

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
  2. What is Xamarin?
  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. 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
  16. 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
  17. Result?
  18. What about our workflow?
  19. What about our workflow? • Continous Integration?
  20. Continous Integration? • Full Jenkins support • Fastlane not officially supported (as of 01.06.2016) but easy to apply
  21. What about our workflow? • Continous Integration? • Testing?
  22. Testing? • Full Calabash support. Well, they’ve created it. • Xamarin Test Cloud
  23. Xamarin Test Cloud
  24. What about our workflow? • Continous Integration? • Testing? • CocoaPods?
  25. CocoaPods? Sharpie!
  26. What about our workflow? • Continous Integration? • Testing? • CocoaPods? • Third party components?
  27. Third party components? NuGET!
  28. What about our workflow? • Continous Integration? • Testing? • CocoaPods? • Third party components? • Community?
  29. What about our workflow? • Continous Integration? • Testing? • CocoaPods? • Third party components? • Community? • IDE?
  30. What about our workflow? • Continous Integration? • Testing? • CocoaPods? • Third party components? • Community? • IDE? • Language?
Advertisement