SlideShare una empresa de Scribd logo
“Crearemos una app cross
Platform para Android, iOS,
UWP, Windows, macOS y Linux”
Taller Xamarin
Javier Suárez Ruiz (@jsuarezruiz)
Plain Concepts
@jsuarezruizMAD · NOV 24-25 · 2017
Javier Suárez · Taller Xamarin · @jsuarezruiz
Crearemos una aplicación de películas con información real. Veremos conceptos como:
∘ Crear estructura Proyecto.
∘ Estructura de proyectos.
∘ Diseño de vistas.
∘ Navegación.
La aplicación se realizará paso a paso, en diferentes bloques a lo largo de 2h.
A lo largo del taller, iremos resolviendo dudas y preguntas.
También tendremos alguna sorpresa y detalle ;)
El taller
Javier Suárez · Taller Xamarin · @jsuarezruiz
La App
Javier Suárez · Taller Xamarin · @jsuarezruiz
La App
Javier Suárez · Taller Xamarin · @jsuarezruiz
No dudéis en preguntar!
Javier Suárez · Taller Xamarin · @jsuarezruiz
Por si alguien, no tiene material:
https://goo.gl/EJSCX7
Javier Suárez · Taller Xamarin · @jsuarezruiz
Primero, repasemos
conceptos básicos
Javier Suárez · Taller Xamarin · @jsuarezruiz
Xamarin – Solución completa para el Desarrollo móvil
Javier Suárez · Taller Xamarin · @jsuarezruiz
Código nativo
iOS WindowsAndroid
Objective-C
Xcode
C#
Visual Studio
Java
Android Studio
No se comparte código • Diferentes lenguajes & entornos de desarrollo • Diferentes equipos
Javier Suárez · Taller Xamarin · @jsuarezruiz
Escribe una vez, corre en todos
App Generator
Lua
Javascript
Actionscript
HTML+CSS
Acceso limitado a APIs • Menos rendimiento • Experiencia de usuario más pobre
Javier Suárez · Taller Xamarin · @jsuarezruiz
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
Javier Suárez · Taller Xamarin · @jsuarezruiz
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
Javier Suárez · Taller Xamarin · @jsuarezruiz
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/Mono
CoreCLRAzure
Shared C# Client/Server
Xamarin ahora gratis e
incluido en Visual Studio
Javier Suárez · Taller Xamarin · @jsuarezruiz
#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.
Javier Suárez · Taller Xamarin · @jsuarezruiz
Open Source – open.xamarin.com
Javier Suárez · Taller Xamarin · @jsuarezruiz
C# mola
Y lo
sabes!
Javier Suárez · Taller Xamarin · @jsuarezruiz
C# mola
Javier Suárez · Taller Xamarin · @jsuarezruiz
¿CómofuncionaesXamarin?
Javier Suárez · Taller Xamarin · @jsuarezruiz
Windows APIs
Microsoft.Phone Microsoft.Networking Windows.Storage Windows.Foundation Microsoft.Devices
System.Data System.Windows System.Numerics System.Core
System.ServiceMode
l
System.Net System System.IO System.Linq System.Xml
Javier Suárez · Taller Xamarin · @jsuarezruiz
iOS – Acceso al 100% de las APIs
MapKit UIKit iBeacon CoreGraphics CoreMotion
System.Data System.Windows System.Numerics System.Core
System.ServiceMode
l
System.Net System System.IO System.Linq System.Xml
Javier Suárez · Taller Xamarin · @jsuarezruiz
Android – Acceso al 100%de las APIs
Text-to-speech ActionBar Printing Framework Renderscript NFC
System.Data System.Windows System.Numerics System.Core
System.ServiceMode
l
System.Net System System.IO System.Linq System.Xml
Javier Suárez · Taller Xamarin · @jsuarezruiz
Cualquier cosa que puedas hacer con Objective-C, Swift, o Java
se puede hacer con C# y Visual Studio con Xamarin.
Javier Suárez · Taller Xamarin · @jsuarezruiz
Laclave,compartir
código
Javier Suárez · Taller Xamarin · @jsuarezruiz
Xamarin.iOS Xamarin.Android
Portable Class Libraries
Javier Suárez · Taller Xamarin · @jsuarezruiz
Conoce Xamarin.Forms
Javier Suárez · Taller Xamarin · @jsuarezruiz
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
Javier Suárez · Taller Xamarin · @jsuarezruiz
¿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
Javier Suárez · Taller Xamarin · @jsuarezruiz
Layouts
Páginas
Stack Absolute Relative Grid ContentView ScrollView Frame
Content MasterDetai
l
Navigatio
n
Tabbed Carousel
Javier Suárez · Taller Xamarin · @jsuarezruiz
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
Javier Suárez · Taller Xamarin · @jsuarezruiz
A practicar: Vistas básicas
XAML Love!
Javier Suárez · Taller Xamarin · @jsuarezruiz
IDE
Lenguaje
Vistas
iOS Android Windows
Phone
Xcode Android
Studio
Visual Studio
ObjectiveC o
Swift
Java C#
Storyboard AXML XAML
MVC MVC MVVMPatrón diseño
Javier Suárez · Taller Xamarin · @jsuarezruiz
IDE
Lenguaje
Vistas
iOS Android Windows
Phone
Visual Studio Visual Studio Visual Studio
C# C# C#
Storyboard AXML XAML
MVVM MVVM MVVMPatrón diseño
Javier Suárez · Taller Xamarin · @jsuarezruiz
View
ViewModel
Model
get/set
Propiedades
Comandos
Notifica
cambios
C#
Models
View
View
ViewModel
ViewModel
Model
Model
Cross Platform
Javier Suárez · Taller Xamarin · @jsuarezruiz
• 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.
Javier Suárez · Taller Xamarin · @jsuarezruiz
Continuamos: MVVM
Enlace a datos y otros conceptos básicos
Javier Suárez · Taller Xamarin · @jsuarezruiz
Peticiones Http -> 100% compartidas
public async Task<TResult> GetAsync<TResult>(string uri)
{
HttpClient httpClient = CreateHttpClient();
HttpResponseMessage response = await httpClient.GetAsync(uri);
await HandleResponse(response);
string serialized = await response.Content.ReadAsStringAsync();
TResult result = await Task.Run(() =>
JsonConvert.DeserializeObject<TResult>(serialized, _serializerSettings));
return result;
}
Javier Suárez · Taller Xamarin · @jsuarezruiz
Continuamos: Servicio REST
Acceso a datos
Javier Suárez · Taller Xamarin · @jsuarezruiz
La clase NavigationPage
La clase NavigationPage nos permite realizar una navegación
jerárquica hacia delante y hacia atrás.
Implementa una pila (LIFO) para gestionar la navegación.
Javier Suárez · Taller Xamarin · @jsuarezruiz
Navegación
Para pasar de una página a otra, la app añadirá (push) una nueva
página en la pila de navegación, pasando a ser la página activa:
Para volver a la página anterior, la aplicación quitará (pop) la página
actual de la pila de navegación convirtiéndose la nueva página en la
activa.
Javier Suárez · Taller Xamarin · @jsuarezruiz
Navegar hacia delante
await Navigation.PushAsync (new Page());
Para navegar a una nueva página, utilizamos el método PushAsync
disponible en la propiedad Navigation de la página actual:
Cuando el método PushAsync se ha lanzado:
• La página que lanza el método llama al método OnDisappearing.
• La página a la que se navega, lanza el método OnAppearing.
Javier Suárez · Taller Xamarin · @jsuarezruiz
Detalles de una película
Navegación entre páginas
Javier Suárez · Taller Xamarin · @jsuarezruiz
Aplicación completa
Repasamos conceptos y conocemos algunos nuevos!
Javier Suárez · Taller Xamarin · @jsuarezruiz
P&R
¿Preguntas?
Javier Suárez · Taller Xamarin · @jsuarezruiz
Gracias a todos!
Hasta la próxima!

Más contenido relacionado

PPTX
Novedades Xamarin Connect(); 2017
PPTX
PUE DAY 2017: Introducción a Xamarin
PPTX
Testing de Apps Xamarin
PPTX
Visual Studio 2017 Launch Event Sevilla
PPTX
Xamarin Dev Days Madrid - Taller Xamarin
PPTX
Conociendo el resto de ecosistema Xamarin
PPTX
Xamarin Dev Days - Introducción a Xamarin
PPTX
Introducción al desarrollo de aplicaciones Xamarin
Novedades Xamarin Connect(); 2017
PUE DAY 2017: Introducción a Xamarin
Testing de Apps Xamarin
Visual Studio 2017 Launch Event Sevilla
Xamarin Dev Days Madrid - Taller Xamarin
Conociendo el resto de ecosistema Xamarin
Xamarin Dev Days - Introducción a Xamarin
Introducción al desarrollo de aplicaciones Xamarin

La actualidad más candente (20)

PPTX
Plain Concepts Tech Day: Desarrollo de aplicaciones multiplataforma con Xamarin
PDF
Arquitectura xamarin - Nuestra primera app
PPTX
Introduccion a Xamarin
PPTX
Xamarin Live Player
PPTX
Servicios Xamarin
PPTX
Xamarin for Everyone
PPTX
Codemotion 2015: UI Tests, Test Cloud y CI con Apps Xamarin
PPTX
[dotNetSpain2016] Aumentando nuestra productividad en Xamarin
PPTX
Aumento de productividad, herramientas Xamarin
PPTX
Integración Continua con Apps Xamarin
PPTX
Introducción a Xamarin.Forms
PPTX
Xamarin Hol - Módulo V: Mobile DevOps con Visual Studio Team Services y Hocke...
PPTX
Introduction to xamarin
PPTX
Extendiendo Xamarin.Forms con Custom Renders
PPTX
Arquitectura en Aplicaciones Xamarin
PPTX
re-Connect Madrid: Novedades Xamarin
PDF
Introducción al desarrollo de apps móviles con Xamarin (Android & iOS)
PPTX
dotNetMálaga - Taller Xamarin
PPTX
Crear Apps Multiplataforma compartiendo la mayor cantidad con Xamarin
PPTX
SVQXDG - Introducción a Embeddinator-4000
Plain Concepts Tech Day: Desarrollo de aplicaciones multiplataforma con Xamarin
Arquitectura xamarin - Nuestra primera app
Introduccion a Xamarin
Xamarin Live Player
Servicios Xamarin
Xamarin for Everyone
Codemotion 2015: UI Tests, Test Cloud y CI con Apps Xamarin
[dotNetSpain2016] Aumentando nuestra productividad en Xamarin
Aumento de productividad, herramientas Xamarin
Integración Continua con Apps Xamarin
Introducción a Xamarin.Forms
Xamarin Hol - Módulo V: Mobile DevOps con Visual Studio Team Services y Hocke...
Introduction to xamarin
Extendiendo Xamarin.Forms con Custom Renders
Arquitectura en Aplicaciones Xamarin
re-Connect Madrid: Novedades Xamarin
Introducción al desarrollo de apps móviles con Xamarin (Android & iOS)
dotNetMálaga - Taller Xamarin
Crear Apps Multiplataforma compartiendo la mayor cantidad con Xamarin
SVQXDG - Introducción a Embeddinator-4000
Publicidad

Similar a Codemotion 2017 - Taller Xamarin (20)

PPTX
OpenSouthCode 2018: Taller Xamarin
PPTX
Taller Xamarin Monkey Conf 2018
PPTX
Novedades de Xamarin 4
PPTX
primera aplicacion Xamarin.pptx
PPTX
Evento Bolivia - Fundamentos de Xamarin - Desarrollo de apps moviles multipla...
PPTX
Semana Lambda - Fundamentos de Xamarin - Desarrollo de apps moviles multiplat...
PPTX
Una vuelta por xamarin - .NET Conf CL 2018
PPTX
Back2Learn MSFT UCuenca - Desarrollo de apps móviles multiplataforma con Xam...
PPTX
Introducción a Xamarin
PDF
Introduccion Xamarin.Forms - .NET Conf CL
PPTX
Semanahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
PPTX
Dev days 2 Xamarin Forms
PPTX
Tech Club Asturias: Un vistazo al presente y futuro de Xamarin.Forms
PPTX
Introducción a Xamarin.Forms
PPTX
Intro to xamarin forms: converters, animations, behaviors and triggers
PPTX
Experiencia con Xamarin en el mundo real de los proyectos.
PPTX
Introducción a Xamarin
PPTX
Microsoft Tech Summit - Taller Xamarin
PPTX
Interfaces nativas Cross-Platform con Xamarin.Forms
PPTX
Introduccion a xamarin
OpenSouthCode 2018: Taller Xamarin
Taller Xamarin Monkey Conf 2018
Novedades de Xamarin 4
primera aplicacion Xamarin.pptx
Evento Bolivia - Fundamentos de Xamarin - Desarrollo de apps moviles multipla...
Semana Lambda - Fundamentos de Xamarin - Desarrollo de apps moviles multiplat...
Una vuelta por xamarin - .NET Conf CL 2018
Back2Learn MSFT UCuenca - Desarrollo de apps móviles multiplataforma con Xam...
Introducción a Xamarin
Introduccion Xamarin.Forms - .NET Conf CL
Semanahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
Dev days 2 Xamarin Forms
Tech Club Asturias: Un vistazo al presente y futuro de Xamarin.Forms
Introducción a Xamarin.Forms
Intro to xamarin forms: converters, animations, behaviors and triggers
Experiencia con Xamarin en el mundo real de los proyectos.
Introducción a Xamarin
Microsoft Tech Summit - Taller Xamarin
Interfaces nativas Cross-Platform con Xamarin.Forms
Introduccion a xamarin
Publicidad

Más de Javier Suárez Ruiz (20)

PPTX
Cape Town MS Developer User Group: Xamarin Community Toolkit
PPTX
DotNetDom: El futuro de Xamarin
PPTX
Monkey Conf 2020: Xamarin Community Toolkit: More possibilities with Xamarin....
PPTX
Monkey Conf 2020: .NET MAUI Handlers
PPTX
Creando controles para Xamarin.Forms
PPTX
Monkey Conf 2019: Presente y futuro de Xamarin.Forms
PPTX
Crear interfaces de usuario atractivas con Xamarin.Forms
PPTX
#XamarinUIJuly Summary
PPTX
DotNet 2019: Optimizando Apps con Xamarin.Forms
PPTX
Monkey Conf 2018: Conociendo Xamarin.Forms Shell
PPTX
.Net Conf Sevilla 2018
PPTX
Analizando interfaces de usuario avanzadas con Xamarin.Forms
PPTX
DotNet2018: Xamarin.Forms Everywhere!
PPTX
Novedades Xamarin 3.0 Preview
PPTX
Desarrollo Xamarin, más allá del desarrollo
PPTX
dotNetMálaga 2017 - Taller Hololens con Wave Engine
PPTX
dotNetMálaga 2017 - Trucos y consejos rendimiento Xamarin.Forms
PPTX
Embeddinator-4000
PPTX
Xamarin Dev Days Málaga 2017 - Apps conectadas con Azure
PPTX
Xamarin Dev Days Madrid 2017 - Xamarin.Forms
Cape Town MS Developer User Group: Xamarin Community Toolkit
DotNetDom: El futuro de Xamarin
Monkey Conf 2020: Xamarin Community Toolkit: More possibilities with Xamarin....
Monkey Conf 2020: .NET MAUI Handlers
Creando controles para Xamarin.Forms
Monkey Conf 2019: Presente y futuro de Xamarin.Forms
Crear interfaces de usuario atractivas con Xamarin.Forms
#XamarinUIJuly Summary
DotNet 2019: Optimizando Apps con Xamarin.Forms
Monkey Conf 2018: Conociendo Xamarin.Forms Shell
.Net Conf Sevilla 2018
Analizando interfaces de usuario avanzadas con Xamarin.Forms
DotNet2018: Xamarin.Forms Everywhere!
Novedades Xamarin 3.0 Preview
Desarrollo Xamarin, más allá del desarrollo
dotNetMálaga 2017 - Taller Hololens con Wave Engine
dotNetMálaga 2017 - Trucos y consejos rendimiento Xamarin.Forms
Embeddinator-4000
Xamarin Dev Days Málaga 2017 - Apps conectadas con Azure
Xamarin Dev Days Madrid 2017 - Xamarin.Forms

Último (20)

PPTX
historia_web de la creacion de un navegador_presentacion.pptx
PDF
clase auditoria informatica 2025.........
PPTX
Administración se srevidores de apliaciones
PDF
Influencia-del-uso-de-redes-sociales.pdf
PPT
Que son las redes de computadores y sus partes
DOCX
Trabajo colaborativo Grupo #2.docxmmuhhlk
DOCX
Zarate Quispe Alex aldayir aplicaciones de internet .docx
PDF
Instrucciones simples, respuestas poderosas. La fórmula del prompt perfecto.
PPTX
Presentación PASANTIAS AuditorioOO..pptx
PDF
Calidad desde el Docente y la mejora continua .pdf
PPTX
Introduccion a servidores de Aplicaciones (1).pptx
PDF
Plantilla para Diseño de Narrativas Transmedia.pdf
PDF
5.1 Pinch y Bijker en libro Actos, actores y artefactos de Bunch Thomas (coor...
PPTX
COMO AYUDAN LAS TIC EN LA EDUCACION SUPERIOR.pptx
PPTX
REDES INFORMATICAS REDES INFORMATICAS.pptx
PDF
taller de informática - LEY DE OHM
PPTX
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx
PDF
Conceptos básicos de programación tecnología.pdf
PPTX
Presentación de Redes de Datos modelo osi
PPTX
IA de Cine - Como MuleSoft y los Agentes estan redefiniendo la realidad
historia_web de la creacion de un navegador_presentacion.pptx
clase auditoria informatica 2025.........
Administración se srevidores de apliaciones
Influencia-del-uso-de-redes-sociales.pdf
Que son las redes de computadores y sus partes
Trabajo colaborativo Grupo #2.docxmmuhhlk
Zarate Quispe Alex aldayir aplicaciones de internet .docx
Instrucciones simples, respuestas poderosas. La fórmula del prompt perfecto.
Presentación PASANTIAS AuditorioOO..pptx
Calidad desde el Docente y la mejora continua .pdf
Introduccion a servidores de Aplicaciones (1).pptx
Plantilla para Diseño de Narrativas Transmedia.pdf
5.1 Pinch y Bijker en libro Actos, actores y artefactos de Bunch Thomas (coor...
COMO AYUDAN LAS TIC EN LA EDUCACION SUPERIOR.pptx
REDES INFORMATICAS REDES INFORMATICAS.pptx
taller de informática - LEY DE OHM
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx
Conceptos básicos de programación tecnología.pdf
Presentación de Redes de Datos modelo osi
IA de Cine - Como MuleSoft y los Agentes estan redefiniendo la realidad

Codemotion 2017 - Taller Xamarin

  • 1. “Crearemos una app cross Platform para Android, iOS, UWP, Windows, macOS y Linux” Taller Xamarin Javier Suárez Ruiz (@jsuarezruiz) Plain Concepts @jsuarezruizMAD · NOV 24-25 · 2017
  • 2. Javier Suárez · Taller Xamarin · @jsuarezruiz Crearemos una aplicación de películas con información real. Veremos conceptos como: ∘ Crear estructura Proyecto. ∘ Estructura de proyectos. ∘ Diseño de vistas. ∘ Navegación. La aplicación se realizará paso a paso, en diferentes bloques a lo largo de 2h. A lo largo del taller, iremos resolviendo dudas y preguntas. También tendremos alguna sorpresa y detalle ;) El taller
  • 3. Javier Suárez · Taller Xamarin · @jsuarezruiz La App
  • 4. Javier Suárez · Taller Xamarin · @jsuarezruiz La App
  • 5. Javier Suárez · Taller Xamarin · @jsuarezruiz No dudéis en preguntar!
  • 6. Javier Suárez · Taller Xamarin · @jsuarezruiz Por si alguien, no tiene material: https://goo.gl/EJSCX7
  • 7. Javier Suárez · Taller Xamarin · @jsuarezruiz Primero, repasemos conceptos básicos
  • 8. Javier Suárez · Taller Xamarin · @jsuarezruiz Xamarin – Solución completa para el Desarrollo móvil
  • 9. Javier Suárez · Taller Xamarin · @jsuarezruiz Código nativo iOS WindowsAndroid Objective-C Xcode C# Visual Studio Java Android Studio No se comparte código • Diferentes lenguajes & entornos de desarrollo • Diferentes equipos
  • 10. Javier Suárez · Taller Xamarin · @jsuarezruiz Escribe una vez, corre en todos App Generator Lua Javascript Actionscript HTML+CSS Acceso limitado a APIs • Menos rendimiento • Experiencia de usuario más pobre
  • 11. Javier Suárez · Taller Xamarin · @jsuarezruiz 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
  • 12. Javier Suárez · Taller Xamarin · @jsuarezruiz 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
  • 13. Javier Suárez · Taller Xamarin · @jsuarezruiz 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/Mono CoreCLRAzure Shared C# Client/Server
  • 14. Xamarin ahora gratis e incluido en Visual Studio
  • 15. Javier Suárez · Taller Xamarin · @jsuarezruiz #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.
  • 16. Javier Suárez · Taller Xamarin · @jsuarezruiz Open Source – open.xamarin.com
  • 17. Javier Suárez · Taller Xamarin · @jsuarezruiz C# mola Y lo sabes!
  • 18. Javier Suárez · Taller Xamarin · @jsuarezruiz C# mola
  • 19. Javier Suárez · Taller Xamarin · @jsuarezruiz ¿CómofuncionaesXamarin?
  • 20. Javier Suárez · Taller Xamarin · @jsuarezruiz Windows APIs Microsoft.Phone Microsoft.Networking Windows.Storage Windows.Foundation Microsoft.Devices System.Data System.Windows System.Numerics System.Core System.ServiceMode l System.Net System System.IO System.Linq System.Xml
  • 21. Javier Suárez · Taller Xamarin · @jsuarezruiz iOS – Acceso al 100% de las APIs MapKit UIKit iBeacon CoreGraphics CoreMotion System.Data System.Windows System.Numerics System.Core System.ServiceMode l System.Net System System.IO System.Linq System.Xml
  • 22. Javier Suárez · Taller Xamarin · @jsuarezruiz Android – Acceso al 100%de las APIs Text-to-speech ActionBar Printing Framework Renderscript NFC System.Data System.Windows System.Numerics System.Core System.ServiceMode l System.Net System System.IO System.Linq System.Xml
  • 23. Javier Suárez · Taller Xamarin · @jsuarezruiz Cualquier cosa que puedas hacer con Objective-C, Swift, o Java se puede hacer con C# y Visual Studio con Xamarin.
  • 24. Javier Suárez · Taller Xamarin · @jsuarezruiz Laclave,compartir código
  • 25. Javier Suárez · Taller Xamarin · @jsuarezruiz Xamarin.iOS Xamarin.Android Portable Class Libraries
  • 26. Javier Suárez · Taller Xamarin · @jsuarezruiz Conoce Xamarin.Forms
  • 27. Javier Suárez · Taller Xamarin · @jsuarezruiz 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
  • 28. Javier Suárez · Taller Xamarin · @jsuarezruiz ¿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
  • 29. Javier Suárez · Taller Xamarin · @jsuarezruiz Layouts Páginas Stack Absolute Relative Grid ContentView ScrollView Frame Content MasterDetai l Navigatio n Tabbed Carousel
  • 30. Javier Suárez · Taller Xamarin · @jsuarezruiz 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
  • 31. Javier Suárez · Taller Xamarin · @jsuarezruiz A practicar: Vistas básicas XAML Love!
  • 32. Javier Suárez · Taller Xamarin · @jsuarezruiz IDE Lenguaje Vistas iOS Android Windows Phone Xcode Android Studio Visual Studio ObjectiveC o Swift Java C# Storyboard AXML XAML MVC MVC MVVMPatrón diseño
  • 33. Javier Suárez · Taller Xamarin · @jsuarezruiz IDE Lenguaje Vistas iOS Android Windows Phone Visual Studio Visual Studio Visual Studio C# C# C# Storyboard AXML XAML MVVM MVVM MVVMPatrón diseño
  • 34. Javier Suárez · Taller Xamarin · @jsuarezruiz View ViewModel Model get/set Propiedades Comandos Notifica cambios C# Models View View ViewModel ViewModel Model Model Cross Platform
  • 35. Javier Suárez · Taller Xamarin · @jsuarezruiz • 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.
  • 36. Javier Suárez · Taller Xamarin · @jsuarezruiz Continuamos: MVVM Enlace a datos y otros conceptos básicos
  • 37. Javier Suárez · Taller Xamarin · @jsuarezruiz Peticiones Http -> 100% compartidas public async Task<TResult> GetAsync<TResult>(string uri) { HttpClient httpClient = CreateHttpClient(); HttpResponseMessage response = await httpClient.GetAsync(uri); await HandleResponse(response); string serialized = await response.Content.ReadAsStringAsync(); TResult result = await Task.Run(() => JsonConvert.DeserializeObject<TResult>(serialized, _serializerSettings)); return result; }
  • 38. Javier Suárez · Taller Xamarin · @jsuarezruiz Continuamos: Servicio REST Acceso a datos
  • 39. Javier Suárez · Taller Xamarin · @jsuarezruiz La clase NavigationPage La clase NavigationPage nos permite realizar una navegación jerárquica hacia delante y hacia atrás. Implementa una pila (LIFO) para gestionar la navegación.
  • 40. Javier Suárez · Taller Xamarin · @jsuarezruiz Navegación Para pasar de una página a otra, la app añadirá (push) una nueva página en la pila de navegación, pasando a ser la página activa: Para volver a la página anterior, la aplicación quitará (pop) la página actual de la pila de navegación convirtiéndose la nueva página en la activa.
  • 41. Javier Suárez · Taller Xamarin · @jsuarezruiz Navegar hacia delante await Navigation.PushAsync (new Page()); Para navegar a una nueva página, utilizamos el método PushAsync disponible en la propiedad Navigation de la página actual: Cuando el método PushAsync se ha lanzado: • La página que lanza el método llama al método OnDisappearing. • La página a la que se navega, lanza el método OnAppearing.
  • 42. Javier Suárez · Taller Xamarin · @jsuarezruiz Detalles de una película Navegación entre páginas
  • 43. Javier Suárez · Taller Xamarin · @jsuarezruiz Aplicación completa Repasamos conceptos y conocemos algunos nuevos!
  • 44. Javier Suárez · Taller Xamarin · @jsuarezruiz P&R ¿Preguntas?
  • 45. Javier Suárez · Taller Xamarin · @jsuarezruiz Gracias a todos! Hasta la próxima!

Notas del editor

  • #15: Including the Free Community Edition
  • #23: The same is true for Android as well.
  • #24: Coming up next is bubbles
  • #30: Inside of a page are layouts A lot of options from something simple like a stack panel to complex and powerful grids
  • #31: You have more than 40 controls, layouts, and pages to mix and match from. These are all of the controls you have out of the box, you can of course create your own. What is unique is you get the native control and have access to it. Consider an Entry Field On iOS it is mapped to UITextField Android it is EditText Windows Phoen it is a TextBox