développement cross-plateforme sans compromis avec xamarin
TRANSCRIPT
![Page 1: Développement cross-plateforme sans compromis avec Xamarin](https://reader030.vdocuments.us/reader030/viewer/2022032616/55a6c1261a28ab31688b4889/html5/thumbnails/1.jpg)
#XamarinFR
1
![Page 2: Développement cross-plateforme sans compromis avec Xamarin](https://reader030.vdocuments.us/reader030/viewer/2022032616/55a6c1261a28ab31688b4889/html5/thumbnails/2.jpg)
@micjames6
micjames.co.uk
Mike JamesDeveloper Evangelist, Xamarin Inc
Web
![Page 3: Développement cross-plateforme sans compromis avec Xamarin](https://reader030.vdocuments.us/reader030/viewer/2022032616/55a6c1261a28ab31688b4889/html5/thumbnails/3.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022032616/55a6c1261a28ab31688b4889/html5/thumbnails/4.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022032616/55a6c1261a28ab31688b4889/html5/thumbnails/5.jpg)
Xamarin ‘embraced and extended’ .NET
![Page 6: Développement cross-plateforme sans compromis avec Xamarin](https://reader030.vdocuments.us/reader030/viewer/2022032616/55a6c1261a28ab31688b4889/html5/thumbnails/6.jpg)
Architecting
Mobile Apps
![Page 7: Développement cross-plateforme sans compromis avec Xamarin](https://reader030.vdocuments.us/reader030/viewer/2022032616/55a6c1261a28ab31688b4889/html5/thumbnails/7.jpg)
Silo
Approach
Build Apps
Multiple Times
![Page 8: Développement cross-plateforme sans compromis avec Xamarin](https://reader030.vdocuments.us/reader030/viewer/2022032616/55a6c1261a28ab31688b4889/html5/thumbnails/8.jpg)
Write Once,
Run Anywhere
Approach
Lowest
Common
Denominator
![Page 9: Développement cross-plateforme sans compromis avec Xamarin](https://reader030.vdocuments.us/reader030/viewer/2022032616/55a6c1261a28ab31688b4889/html5/thumbnails/9.jpg)
Xamarin’s Unique Approach
Native With
Code Sharing
![Page 10: Développement cross-plateforme sans compromis avec Xamarin](https://reader030.vdocuments.us/reader030/viewer/2022032616/55a6c1261a28ab31688b4889/html5/thumbnails/10.jpg)
Windows APIs
![Page 11: Développement cross-plateforme sans compromis avec Xamarin](https://reader030.vdocuments.us/reader030/viewer/2022032616/55a6c1261a28ab31688b4889/html5/thumbnails/11.jpg)
iOS APIs | 100% Coverage
![Page 12: Développement cross-plateforme sans compromis avec Xamarin](https://reader030.vdocuments.us/reader030/viewer/2022032616/55a6c1261a28ab31688b4889/html5/thumbnails/12.jpg)
Android APIs | 100% Coverage
![Page 13: Développement cross-plateforme sans compromis avec Xamarin](https://reader030.vdocuments.us/reader030/viewer/2022032616/55a6c1261a28ab31688b4889/html5/thumbnails/13.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022032616/55a6c1261a28ab31688b4889/html5/thumbnails/14.jpg)
C# runs on 2.6 Billion Devices
![Page 15: Développement cross-plateforme sans compromis avec Xamarin](https://reader030.vdocuments.us/reader030/viewer/2022032616/55a6c1261a28ab31688b4889/html5/thumbnails/15.jpg)
How
Xamarin
Works
C# + .NET Runtime
Native UI
Native Performance
![Page 16: Développement cross-plateforme sans compromis avec Xamarin](https://reader030.vdocuments.us/reader030/viewer/2022032616/55a6c1261a28ab31688b4889/html5/thumbnails/16.jpg)
Portable Class Libraries
![Page 17: Développement cross-plateforme sans compromis avec Xamarin](https://reader030.vdocuments.us/reader030/viewer/2022032616/55a6c1261a28ab31688b4889/html5/thumbnails/17.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022032616/55a6c1261a28ab31688b4889/html5/thumbnails/18.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022032616/55a6c1261a28ab31688b4889/html5/thumbnails/19.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022032616/55a6c1261a28ab31688b4889/html5/thumbnails/20.jpg)
Pages
Content MasterDetail Navigation Tabbed Carousel
![Page 21: Développement cross-plateforme sans compromis avec Xamarin](https://reader030.vdocuments.us/reader030/viewer/2022032616/55a6c1261a28ab31688b4889/html5/thumbnails/21.jpg)
Layouts
Stack Absolute Relative Grid ContentView ScrollView Frame
![Page 22: Développement cross-plateforme sans compromis avec Xamarin](https://reader030.vdocuments.us/reader030/viewer/2022032616/55a6c1261a28ab31688b4889/html5/thumbnails/22.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022032616/55a6c1261a28ab31688b4889/html5/thumbnails/23.jpg)
• 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](https://reader030.vdocuments.us/reader030/viewer/2022032616/55a6c1261a28ab31688b4889/html5/thumbnails/24.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022032616/55a6c1261a28ab31688b4889/html5/thumbnails/25.jpg)
Pages
• Single screen of content
• ContentPage holds one visual element
ContentPage
Control
Content property
![Page 26: Développement cross-plateforme sans compromis avec Xamarin](https://reader030.vdocuments.us/reader030/viewer/2022032616/55a6c1261a28ab31688b4889/html5/thumbnails/26.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022032616/55a6c1261a28ab31688b4889/html5/thumbnails/27.jpg)
Demo - Creating User Interfaces
![Page 28: Développement cross-plateforme sans compromis avec Xamarin](https://reader030.vdocuments.us/reader030/viewer/2022032616/55a6c1261a28ab31688b4889/html5/thumbnails/28.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022032616/55a6c1261a28ab31688b4889/html5/thumbnails/29.jpg)
Demo - Adding Behaviour
![Page 30: Développement cross-plateforme sans compromis avec Xamarin](https://reader030.vdocuments.us/reader030/viewer/2022032616/55a6c1261a28ab31688b4889/html5/thumbnails/30.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022032616/55a6c1261a28ab31688b4889/html5/thumbnails/31.jpg)
31
Model-View-ViewModel
ModelView ViewModel
Xamarin.Forms Data
Binding
Events
Data
![Page 32: Développement cross-plateforme sans compromis avec Xamarin](https://reader030.vdocuments.us/reader030/viewer/2022032616/55a6c1261a28ab31688b4889/html5/thumbnails/32.jpg)
32
Data Binding
![Page 33: Développement cross-plateforme sans compromis avec Xamarin](https://reader030.vdocuments.us/reader030/viewer/2022032616/55a6c1261a28ab31688b4889/html5/thumbnails/33.jpg)
33
Data Binding
![Page 34: Développement cross-plateforme sans compromis avec Xamarin](https://reader030.vdocuments.us/reader030/viewer/2022032616/55a6c1261a28ab31688b4889/html5/thumbnails/34.jpg)
34
Data Binding
![Page 35: Développement cross-plateforme sans compromis avec Xamarin](https://reader030.vdocuments.us/reader030/viewer/2022032616/55a6c1261a28ab31688b4889/html5/thumbnails/35.jpg)
35
Data Binding
![Page 36: Développement cross-plateforme sans compromis avec Xamarin](https://reader030.vdocuments.us/reader030/viewer/2022032616/55a6c1261a28ab31688b4889/html5/thumbnails/36.jpg)
Demo - Stocks
![Page 37: Développement cross-plateforme sans compromis avec Xamarin](https://reader030.vdocuments.us/reader030/viewer/2022032616/55a6c1261a28ab31688b4889/html5/thumbnails/37.jpg)
![Page 38: Développement cross-plateforme sans compromis avec Xamarin](https://reader030.vdocuments.us/reader030/viewer/2022032616/55a6c1261a28ab31688b4889/html5/thumbnails/38.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022032616/55a6c1261a28ab31688b4889/html5/thumbnails/39.jpg)
39
Extensibility
Standard Entry Control
![Page 40: Développement cross-plateforme sans compromis avec Xamarin](https://reader030.vdocuments.us/reader030/viewer/2022032616/55a6c1261a28ab31688b4889/html5/thumbnails/40.jpg)
40
Extensibility
Step 1: Custom Xamarin.Forms Control
![Page 41: Développement cross-plateforme sans compromis avec Xamarin](https://reader030.vdocuments.us/reader030/viewer/2022032616/55a6c1261a28ab31688b4889/html5/thumbnails/41.jpg)
41
Extensibility
Step 2: Use Custom Control in Shared Pages
![Page 42: Développement cross-plateforme sans compromis avec Xamarin](https://reader030.vdocuments.us/reader030/viewer/2022032616/55a6c1261a28ab31688b4889/html5/thumbnails/42.jpg)
42
Extensibility
Step 3: Implement Custom Renderer
![Page 43: Développement cross-plateforme sans compromis avec Xamarin](https://reader030.vdocuments.us/reader030/viewer/2022032616/55a6c1261a28ab31688b4889/html5/thumbnails/43.jpg)
43
Extensibility
Step 4: Export Renderer
![Page 44: Développement cross-plateforme sans compromis avec Xamarin](https://reader030.vdocuments.us/reader030/viewer/2022032616/55a6c1261a28ab31688b4889/html5/thumbnails/44.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022032616/55a6c1261a28ab31688b4889/html5/thumbnails/45.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022032616/55a6c1261a28ab31688b4889/html5/thumbnails/46.jpg)
46
Charles Petzold
Xamarin
Read the book
![Page 47: Développement cross-plateforme sans compromis avec Xamarin](https://reader030.vdocuments.us/reader030/viewer/2022032616/55a6c1261a28ab31688b4889/html5/thumbnails/47.jpg)
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](https://reader030.vdocuments.us/reader030/viewer/2022032616/55a6c1261a28ab31688b4889/html5/thumbnails/48.jpg)
Get Started Today: xamarin.com/download