17
X.NET BUILD CROSS PLATFORM MOBILE APPS FOR IOS & ANDROID WITH XAMARIN & MVVMCROSS + Ishai Hachlili (@eshy) Gilles de Bordeaux (@Gillesde)

Build Cross Platform Mobile Apps for iOS & Android with Xamarin & MvvmCross

Embed Size (px)

Citation preview

Page 1: Build Cross Platform Mobile Apps for iOS & Android with Xamarin & MvvmCross

X.NETBUILD CROSS PLATFORM MOBILE APPS FOR IOS & ANDROID WITH XAMARIN & MVVMCROSS

+Ishai Hachlili (@eshy)Gilles de Bordeaux (@Gillesde)

Page 2: Build Cross Platform Mobile Apps for iOS & Android with Xamarin & MvvmCross

Do you know about Xamarin?

Page 3: Build Cross Platform Mobile Apps for iOS & Android with Xamarin & MvvmCross

Open Source (MIT License)• Xamarin.iOS• Xamarin.Mac• Xamarin.Android• Xamarin.Forms• Bindings & Plugins

Free and included With Visual Studio (including free Community Edition)

Page 4: Build Cross Platform Mobile Apps for iOS & Android with Xamarin & MvvmCross

Silo Approach

iOS WindowsAndroid

Swift/Objective-CXcode

C#Visual Studio

JavaAndroid Studio

No shared code • Many languages & development environments • Multiple teams

Page 5: Build Cross Platform Mobile Apps for iOS & Android with Xamarin & MvvmCross

Xamarin’s Unique Approach

Shared C# codebase • 100% native API access • High performance

iOS C# UI

Windows C# UIAndroid C# UI

Shared C# Mobile

Page 6: Build Cross Platform Mobile Apps for iOS & Android with Xamarin & MvvmCross

Xamarin’s Unique Approach

Shared C# codebase • 100% native API access • High performance

iOS C# UI

Windows C# UIAndroid C# UI

Shared C# Mobile

C# Server

Linux/MonoCoreCLR

Azure

Shared C# Client/Server

Page 7: Build Cross Platform Mobile Apps for iOS & Android with Xamarin & MvvmCross

C# is Awesome

LINQ Support

Async/Await

Nuget Libraries Newtonsoft.Json, Refit, Humanizer, etc.

Ishai Hachlili
Slides 8 and 9 (the C# is Awesome/Async Await) should be merged. Event handling is irrelevant since we don't use it in MvvmCross anyway. The XML stuff isn't really relevant either.
Ishai Hachlili
Showing Linq and Async/Await as the first two and a few nuget packages (Humanizer, Refit, Newtonsoft.Json, etc.) that will work across platforms is probably better anyway
Ishai Hachlili
The code sample in the other page is too large, might be best to just create a couple of code samples real quick. One for the LINQ and one for Await
Page 8: Build Cross Platform Mobile Apps for iOS & Android with Xamarin & MvvmCross

iOS – 100% API CoverageMapKit UIKit iBeacon CoreGraphics CoreMotion

System.Data System.Windows System.Numerics System.Core System.ServiceModel

System.Net System System.IO System.Linq System.Xml

Page 9: Build Cross Platform Mobile Apps for iOS & Android with Xamarin & MvvmCross

Android – 100% API CoverageText-to-speech ActionBar Printing Framework Renderscript NFC

System.Data System.Windows System.Numerics System.Core System.ServiceModel

System.Net System System.IO System.Linq System.Xml

Page 10: Build Cross Platform Mobile Apps for iOS & Android with Xamarin & MvvmCross

Anything you can do in Objective-C, Swift, or Javacan be done in C# and Visual Studio with Xamarin.

Page 11: Build Cross Platform Mobile Apps for iOS & Android with Xamarin & MvvmCross

✓Always Up-to-Date

Same-day support:• iOS 5• iOS 6• iOS 7• iOS 7.1• iOS 8• iOS 9• iOS 10

Full support for:• Apple Watch• Apple TV• Google Glass• Android Wear• Amazon Fire TV• and much more

Page 12: Build Cross Platform Mobile Apps for iOS & Android with Xamarin & MvvmCross

Native Performance

Xamarin.iOS does full Ahead Of Time (AOT) compilation to produce an ARM binary for Apple’s App Store.

Xamarin.Android takes advantage of Just In Time (JIT) compilation on the Android device.

Page 13: Build Cross Platform Mobile Apps for iOS & Android with Xamarin & MvvmCross

What is MVVM?

Page 14: Build Cross Platform Mobile Apps for iOS & Android with Xamarin & MvvmCross

Model – View – View Model

View View Model Model +Services

Commands

Binding +Value Converters

Native UI projects Xamarin.iOS Xamarin.Android Windows Apps

Core Portable Class Library Shared between all platforms

Page 15: Build Cross Platform Mobile Apps for iOS & Android with Xamarin & MvvmCross

MvvmCross

MVVM Framework for Xamarin.iOS, Xamarin.Android, Windows Store, UWP, Mac and WPF

Open Source (www.github.com/MvvmCross)

Install from Nuget

Lots of plugins (official and 3rd party) on GitHub and Nuget

Most contributors are active on Xamarin Chat (https://xamarinchat.slack.com invite from http://xamarinchat.herokuapp.com)

Page 16: Build Cross Platform Mobile Apps for iOS & Android with Xamarin & MvvmCross

Let’s See Some Code!

Page 17: Build Cross Platform Mobile Apps for iOS & Android with Xamarin & MvvmCross

Where should you go from here? Our GitHub to see the sample code http://bit.ly/SVCCTasks The meetup page to join us and learn more http://bit.ly/SVMobileNet Home – It’s the last session of the day (but come back tomorrow…)