Développement cross-plateforme sans compromis avec Xamarin

48
#XamarinFR 1

Transcript of Développement cross-plateforme sans compromis avec Xamarin

Page 1: Développement cross-plateforme sans compromis avec Xamarin

#XamarinFR

1

Page 2: Développement cross-plateforme sans compromis avec Xamarin

@micjames6

[email protected]

micjames.co.uk

Mike JamesDeveloper Evangelist, Xamarin Inc

Twitter

Email

Web

Page 3: Développement cross-plateforme sans compromis avec Xamarin

The best language for Windows development.

Modern Features • Advanced Tools • Proven Libraries • Large Community • Statically Typed

#

Page 4: Développement cross-plateforme sans compromis avec Xamarin

Xamarin makes C# the best language for mobile development.

Native Code Generation • Platform API Bindings • Code Sharing • Visual Studio

+#

Page 5: Développement cross-plateforme sans compromis avec Xamarin

Xamarin ‘embraced and extended’ .NET

Page 6: Développement cross-plateforme sans compromis avec Xamarin

Architecting

Mobile Apps

Page 7: Développement cross-plateforme sans compromis avec Xamarin

Silo

Approach

Build Apps

Multiple Times

Page 8: Développement cross-plateforme sans compromis avec Xamarin

Write Once,

Run Anywhere

Approach

Lowest

Common

Denominator

Page 9: Développement cross-plateforme sans compromis avec Xamarin

Xamarin’s Unique Approach

Native With

Code Sharing

Page 10: Développement cross-plateforme sans compromis avec Xamarin

Windows APIs

Page 11: Développement cross-plateforme sans compromis avec Xamarin

iOS APIs | 100% Coverage

Page 12: Développement cross-plateforme sans compromis avec Xamarin

Android APIs | 100% Coverage

Page 13: Développement cross-plateforme sans compromis avec Xamarin

Anything you can do in Objective-C, Swift, or Java

can be done in C# with Xamarin using Visual Studio

Page 14: Développement cross-plateforme sans compromis avec Xamarin

C# runs on 2.6 Billion Devices

Page 15: Développement cross-plateforme sans compromis avec Xamarin

How

Xamarin

Works

C# + .NET Runtime

Native UI

Native Performance

Page 16: Développement cross-plateforme sans compromis avec Xamarin

Portable Class Libraries

Page 17: Développement cross-plateforme sans compromis avec Xamarin

Xamarin.Forms

With Xamarin.Forms:

more code-sharing, native controlsTraditional Xamarin approach

Shared UI Code

Page 18: Développement cross-plateforme sans compromis avec Xamarin

Xamarin.Forms

Quickly and easily build native

user interfaces using shared code

Xamarin.Forms elements map to

native controls and behaviours

Mix-and-match Xamarin.Forms

with native APIs

Shared UI Code

Page 19: Développement cross-plateforme sans compromis avec Xamarin

What’s Included

40+ Pages, Layouts, and Controls

Build from code behind or XAML

Two-way Data Binding

Navigation

Animation API

Dependency Service

Messaging Center

Shared UI Code

Page 20: Développement cross-plateforme sans compromis avec Xamarin

Pages

Content MasterDetail Navigation Tabbed Carousel

Page 21: Développement cross-plateforme sans compromis avec Xamarin

Layouts

Stack Absolute Relative Grid ContentView ScrollView Frame

Page 22: Développement cross-plateforme sans compromis avec Xamarin

Controls

ActivityIndicator BoxView Button DatePicker Editor

Entry Image Label ListView Map

OpenGLView Picker ProgressBar SearchBar Slider

Stepper TableView TimePicker WebView EntryCell

ImageCell SwitchCell TextCell ViewCell

Page 23: Développement cross-plateforme sans compromis avec Xamarin

• Not for all types of apps

• Is your app very customised?

• Great for data driven apps

• Utility apps

• Also supports maps

Considerations

Page 24: Développement cross-plateforme sans compromis avec Xamarin

24

Platform-specific

projects act as

"host" to create

native application

Portable Class Library or

Shared Project used to

hold shared code that

defines UI and logic

Project Structure

Page 25: Développement cross-plateforme sans compromis avec Xamarin

Pages

• Single screen of content

• ContentPage holds one visual element

ContentPage

Control

Content property

Page 26: Développement cross-plateforme sans compromis avec Xamarin

Layouts

• Layouts handle child elements

• Layouts come in two types: managed and unmanaged

ContentPage

Layout

Content property

Control

Control

Children

Control

Page 27: Développement cross-plateforme sans compromis avec Xamarin

Demo - Creating User Interfaces

Page 28: Développement cross-plateforme sans compromis avec Xamarin

28

Providing Behaviour

var entry = new Entry

{

Placeholder = "Enter text",

Keyboard = Keyboard.Email

};

entry.TextChanged += (sender, e) => {

// Input changed

};

Controls expose properties to alter visualisation

Controls expose events to provide interactive behaviour

Page 29: Développement cross-plateforme sans compromis avec Xamarin

Demo - Adding Behaviour

Page 30: Développement cross-plateforme sans compromis avec Xamarin

30

Model-View-ViewModel

ModelView ViewModel

How to display

information

What to display

Flow of interaction

Business Logic

Data objects

Events

DataData

Page 31: Développement cross-plateforme sans compromis avec Xamarin

31

Model-View-ViewModel

ModelView ViewModel

Xamarin.Forms Data

Binding

Events

Data

Page 32: Développement cross-plateforme sans compromis avec Xamarin

32

Data Binding

Page 33: Développement cross-plateforme sans compromis avec Xamarin

33

Data Binding

Page 34: Développement cross-plateforme sans compromis avec Xamarin

34

Data Binding

Page 35: Développement cross-plateforme sans compromis avec Xamarin

35

Data Binding

Page 36: Développement cross-plateforme sans compromis avec Xamarin

Demo - Stocks

Page 37: Développement cross-plateforme sans compromis avec Xamarin
Page 38: Développement cross-plateforme sans compromis avec Xamarin

38

Extensibility

• Custom Renderer• Easily subclass any control you wish to customize

• Add your own custom controls• Add custom bindable properties

http://developer.xamarin.com/guides/cross-

platform/xamarin-forms/custom-renderer/

Page 39: Développement cross-plateforme sans compromis avec Xamarin

39

Extensibility

Standard Entry Control

Page 40: Développement cross-plateforme sans compromis avec Xamarin

40

Extensibility

Step 1: Custom Xamarin.Forms Control

Page 41: Développement cross-plateforme sans compromis avec Xamarin

41

Extensibility

Step 2: Use Custom Control in Shared Pages

Page 42: Développement cross-plateforme sans compromis avec Xamarin

42

Extensibility

Step 3: Implement Custom Renderer

Page 43: Développement cross-plateforme sans compromis avec Xamarin

43

Extensibility

Step 4: Export Renderer

Page 44: Développement cross-plateforme sans compromis avec Xamarin

44

Extensibility

Dependency ServiceAllows shared code to access platform-specific SDK features via an Interface

Implementation

Page 45: Développement cross-plateforme sans compromis avec Xamarin

45

Summary

• Cross platform apps the easy way

• Powerful layout functionality

• Many built in controls

• Extensible

Page 46: Développement cross-plateforme sans compromis avec Xamarin

46

Charles Petzold

Xamarin

Read the book

Page 47: Développement cross-plateforme sans compromis avec Xamarin

Learn more

Unrivalled Mobile Development Training

Live unlimited mobile development training from mobile experts,

in your time-zone, on your schedule and as often as you'd like

xamarin.com/university

Page 48: Développement cross-plateforme sans compromis avec Xamarin

Get Started Today: xamarin.com/download