Xamarin Dev Days Madrid - Taller Xamarin

54
Taller Xamarin Xamarin Dev Days Madrid

Transcript of Xamarin Dev Days Madrid - Taller Xamarin

Page 1: Xamarin Dev Days Madrid - Taller Xamarin

Taller XamarinXamarin Dev Days Madrid

Page 2: Xamarin Dev Days Madrid - Taller Xamarin

Xamarin Dev Days Madrid

¿Qué vamos a ver?Introducción al taller

Repaso a Xamarin

Creación proyecto• Estructura proyecto• MVVM• Primeras pruebas enlace a datos

La interfaz compartida• Páginas, Layouts y controles en Xamarin.Forms• Recursos y estilos• Creando la interfaz básica de nuestra App

Creación de servicios• Conceptos básicos relacionados con servicios• Creación de servicios (navegación y REST)• Usando plugins

Navegación• Conceptos básicos de navegación• Completar la App

Page 3: Xamarin Dev Days Madrid - Taller Xamarin

Introducción al taller

Page 4: Xamarin Dev Days Madrid - Taller Xamarin

Xamarin Dev Days Madrid

Crearemos una aplicación meteorológica con información real. Veremos conceptos como:• Crear estructura Proyecto.• Aplicar MVVM.• Diseño de vistas.• Navegación.• Uso de plugins.

La aplicación se realizará paso a paso, en diferentes bloques a lo largo de 2,5h.A lo largo del taller, contaremos con diferentes responsables que se encargarán tanto de hacer la aplicación paso a paso como de resolver dudas.También tendremos alguna sorpresa y detalle ;)

El taller

Page 5: Xamarin Dev Days Madrid - Taller Xamarin

Xamarin Dev Days Madrid

No dudéis en preguntar!

Page 6: Xamarin Dev Days Madrid - Taller Xamarin

Introducción a Xamarin

Page 7: Xamarin Dev Days Madrid - Taller Xamarin

Xamarin Dev Days Madrid

Xamarin – Solución completa para el Desarrollo móvil

Develop Testear Build Distribuir Monitorear

Page 8: Xamarin Dev Days Madrid - Taller Xamarin

Xamarin Dev Days Madrid

Código nativo

iOS WindowsAndroid

Objective-CXcode

C#Visual Studio

JavaAndroid Studio

No se comparte código • Diferentes lenguajes & entornos de desarrollo • Diferentes equipos

Page 9: Xamarin Dev Days Madrid - Taller Xamarin

Xamarin Dev Days Madrid

Escribe una vez, corre en todos

App Generator

LuaJavascript

ActionscriptHTML+CSS

Acceso limitado a APIs • Menos rendimiento • Experiencia de usuario más pobre

Page 10: Xamarin Dev Days Madrid - Taller Xamarin

Xamarin Dev Days Madrid

El enfoque de Xamarin

Código común compartido • Acceso 100% a APIs nativas • Alto rendimiento

iOS C# UI

Windows C# UIAndroid C# UI

Shared C# Mobile

Page 11: Xamarin Dev Days Madrid - Taller Xamarin

Xamarin Dev Days Madrid

Xamarin + Xamarin.Forms

Enfoque tradicional Con Xamarin.Forms:Más código compartido, nativo

iOS C# UI Windows C#

UIAndroid C# UI

Shared C# Backend

Shared UI Code

Shared C# Backend

Page 12: Xamarin Dev Days Madrid - Taller Xamarin

Xamarin Dev Days Madrid

El enfoque de Xamarin

Código común compartido • Acceso 100% a APIs nativas • Alto rendimiento

iOS C# UI

Windows C# UIAndroid C# UI

Shared C# Mobile

C# Server

Linux/MonoCoreCLRAzure

Shared C# Client/Server

Page 13: Xamarin Dev Days Madrid - Taller Xamarin

Xamarin ahora gratis e incluido en Visual

Studio

Page 14: Xamarin Dev Days Madrid - Taller Xamarin

Xamarin Dev Days Madrid#TechSum

Rendimiento nativo

Xamarin.iOS usa la compilación Ahead Of Time (AOT) para crear un binario ARM para la Apple’s App Store.

Xamarin.Android toma ventaja de la compilación Just In Time (JIT) en dispositivos Android.

Page 15: Xamarin Dev Days Madrid - Taller Xamarin

Xamarin Dev Days Madrid

Open Source – open.xamarin.com

Page 16: Xamarin Dev Days Madrid - Taller Xamarin

Xamarin Dev Days Madrid

Open Source• Xamarin.iOS• Xamarin.Mac• Xamarin.Android• Xamarin.Forms• Bindings & Plugins

• Cómo arrancar• Guías de contribución

Page 17: Xamarin Dev Days Madrid - Taller Xamarin

Xamarin Dev Days Madrid

C# mola

Y lo sabes!

Page 18: Xamarin Dev Days Madrid - Taller Xamarin

Xamarin Dev Days Madrid

C# mola

LINQ

XML

Gestión de eventos y delegados

Page 19: Xamarin Dev Days Madrid - Taller Xamarin

Xamarin Dev Days Madrid

Async/Await

Código más simple, mantenimiento

Page 20: Xamarin Dev Days Madrid - Taller Xamarin

Xamarin Dev Days Madrid

Android ItemClick, ¿ves diferencias? C# con

XamarinJava

C# & Async con Xamarin

Page 21: Xamarin Dev Days Madrid - Taller Xamarin

DEMO: Crear proyectoConociendo las plantillas y contenido básico

Page 22: Xamarin Dev Days Madrid - Taller Xamarin

Xamarin Dev Days Madrid

¿Cómo funciona es Xamarin?

Page 23: Xamarin Dev Days Madrid - Taller Xamarin

Xamarin Dev Days Madrid

Windows APIs

Microsoft.Phone Microsoft.Networking

Windows.Storage

Windows.Foundation

Microsoft.Devices

System.Data System.Windows

System.Numerics System.Core System.ServiceMod

el

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

Page 24: Xamarin Dev Days Madrid - Taller Xamarin

Xamarin Dev Days Madrid

iOS – Acceso al 100% de las APIs

MapKit UIKit iBeacon CoreGraphics CoreMotion

System.Data System.Windows

System.Numerics System.Core System.ServiceMod

el

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

Page 25: Xamarin Dev Days Madrid - Taller Xamarin

Xamarin Dev Days Madrid

Android – Acceso al 100%de las APIs

Text-to-speech ActionBar Printing Framework Renderscript NFC

System.Data System.Windows

System.Numerics System.Core System.ServiceMod

el

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

Page 26: Xamarin Dev Days Madrid - Taller Xamarin

Xamarin Dev Days Madrid

Cualquier cosa que puedas hacer con Objective-C, Swift, o Java

se puede hacer con C# y Visual Studio con Xamarin.

Page 27: Xamarin Dev Days Madrid - Taller Xamarin

Xamarin Dev Days Madrid

La clave, compartir código

Page 28: Xamarin Dev Days Madrid - Taller Xamarin

Xamarin Dev Days Madrid

1 libreríaMúltiples PlatformasIncluidas:Xamarin.iOS y Xamarin.Android

Portable Class Libraries

Page 29: Xamarin Dev Days Madrid - Taller Xamarin

Xamarin Dev Days Madrid

Estadísticas de código compartido

Mac

iOS

Android

Windows Phone

iCircuit

Touch Draw

86%

14%

72%

28%

70%

30%

61%

39%

88%

12%

76%

24%

90%

10%

Page 30: Xamarin Dev Days Madrid - Taller Xamarin

Introducción a Xamarin.Forms

Page 31: Xamarin Dev Days Madrid - Taller Xamarin

Xamarin Dev Days Madrid

Crear UIs nativas para iOS, Android, y Windows

Desde un mismo archivo común, compartido C#.

Conoce Xamarin.Forms

Page 32: Xamarin Dev Days Madrid - Taller Xamarin

Xamarin Dev Days Madrid

Xamarin + Xamarin.Forms

Enfoque tradicional de Xamarin

Con Xamarin.Forms:Más código compartido,

todo nativo

iOS C# UI Windows C#

UIAndroid C# UI

Shared C# Backend

Shared UI Code

Shared C# Backend

Page 33: Xamarin Dev Days Madrid - Taller Xamarin

Xamarin Dev Days Madrid

¿Qué se incluye?

✓ 40+ páginas, layouts, y controles (code behind o XAML)✓ Two-way data binding✓ Mavegación✓ API de animaciones✓ Dependency Service✓ Messaging Center

Shared C# Backend

Shared UI Code

Page 34: Xamarin Dev Days Madrid - Taller Xamarin

Xamarin Dev Days Madrid

Layouts

Páginas

Stack Absolute Relative Grid ContentView

ScrollView

Frame

Content MasterDetail

Navigation

Tabbed Carousel

Page 35: Xamarin Dev Days Madrid - Taller Xamarin

Xamarin Dev Days Madrid

ActivityIndicator BoxView Button DatePicker Editor

Entry Image Label ListView Map

OpenGLView Picker ProgressBar SearchBar Slider

Stepper TableView TimePicker WebView EntryCell

ImageCell SwitchCell TextCell ViewCell

Controles

Page 36: Xamarin Dev Days Madrid - Taller Xamarin

Xamarin Dev Days Madrid

El ecosistema Xamarin.Forms

Page 37: Xamarin Dev Days Madrid - Taller Xamarin

Xamarin Dev Days Madrid

Windows Xamarin.FormsStackPanel StackLayoutTextBox EntryListBox ListViewCheckBox SwitchProgressBar ActivityIndicatorGrid GridLabel LabelButton ButtonImage ImageDate/TimePicker Date/TimePicker

Comparativa de controles

Page 38: Xamarin Dev Days Madrid - Taller Xamarin

Xamarin Dev Days Madrid

Windows Xamarin.FormsDataContext BindingContext{Binding Property}

{Binding Property}

ItemsSource ItemsSourceItemTemplate ItemTemplateDataTemplate DataTemplate

Comparativa de enlace a datos

Page 39: Xamarin Dev Days Madrid - Taller Xamarin

Xamarin Dev Days Madrid

Personalización de la plataforma

Page 40: Xamarin Dev Days Madrid - Taller Xamarin

Xamarin Dev Days Madrid

<?xml version="1.0" encoding="UTF-8"?>

<TabbedPage xmlns="http://xamarin.com/schemas/2014/forms"

xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"

x:Class="MyApp.MainPage">

<TabbedPage.Children>

<ContentPage Title="Profile" Icon="Profile.png">

<StackLayout Spacing="20" Padding="20"

VerticalOptions="Center">

<Entry Placeholder="Username"

Text="{Binding Username}"/>

<Entry Placeholder="Password"

Text="{Binding Password}"

IsPassword="true"/>

<Button Text="Login" TextColor="White"

BackgroundColor="#77D065"

Command="{Binding LoginCommand}"/>

</StackLayout>

</ContentPage>

<ContentPage Title="Settings" Icon="Settings.png">

<!-- Settings -->

</ContentPage>

</TabbedPage.Children>

</TabbedPage>

UI Nativa desde código compartido

Page 41: Xamarin Dev Days Madrid - Taller Xamarin

DEMO: Vistas básicasXAML Love!

Page 42: Xamarin Dev Days Madrid - Taller Xamarin

El patron MVVM

Page 43: Xamarin Dev Days Madrid - Taller Xamarin

IDE

Lenguaje

Vistas

iOS Android Windows Phone

Xcode Android Studio

Visual Studio

ObjectiveC o Swift

Java C#

Storyboard AXML XAMLMVC MVC MVVMPatrón diseño

Comparativa de plataformas móviles

Page 44: Xamarin Dev Days Madrid - Taller Xamarin

IDE

LenguajeVistas

iOS Android Windows Phone

Visual Studio

Visual Studio

Visual Studio

C# C# C#

Storyboard AXML XAMLMVVM MVVM MVVM

Patrón diseño

Comparativa de plataformas móviles

Page 45: Xamarin Dev Days Madrid - Taller Xamarin

View

ViewModel

Model

get/set PropiedadesComandos

Notifica cambios

C#

Models

ViewView

ViewModel

ViewModel

ModelM

odel

Cross Platform

MVVM

Page 46: Xamarin Dev Days Madrid - Taller Xamarin

• Mayor facilidad para mantener, extender y compartir el código.• Más facilidad a la hora de colaborar.• Testing.• Más fácil de diseñar.

Pero... ¿Por qué MVVM?

Page 47: Xamarin Dev Days Madrid - Taller Xamarin

DEMO: MVVMEnlace a datos y otros conceptos básicos

Page 48: Xamarin Dev Days Madrid - Taller Xamarin

Plugins

Page 49: Xamarin Dev Days Madrid - Taller Xamarin

Xamarin Dev Days Madrid

Shared C# Backend

Page 50: Xamarin Dev Days Madrid - Taller Xamarin

Xamarin Dev Days Madrid

Código específico de plataforma¿Qué ocurre si necesitamos accede a características específicas de la plataforma?

UI+APIs UI + APIsUI + APIs

BateríaGPSLámparaNotificationesSettingsText To Speech

BateríaGPSLámparaNotificationesSettingsText To Speech

BateríaGPSLámparaNotificationesSettingsText To Speech

Page 51: Xamarin Dev Days Madrid - Taller Xamarin

Xamarin Dev Days Madrid

TextToSpeech

Speak(“Hello World”);

AVSpeechSynthesizer SpeechSynthesizer

Page 52: Xamarin Dev Days Madrid - Taller Xamarin

Xamarin Dev Days Madrid

PluginsXamarin

Common API

github.com/xamarin/plugins

Page 53: Xamarin Dev Days Madrid - Taller Xamarin

DEMO: PluginsPosición GPS

Page 54: Xamarin Dev Days Madrid - Taller Xamarin

Gracias a todos!Hasta la próxima!