SlideShare una empresa de Scribd logo
Desarrollo de aplicaciones multiplataforma con Xamarin
Taller
Sponsors
Sin ellos no sería posible el evento!
Software Developer at Microsoft
• Blog: http://geeks.ms/blogs/jsuarez
• Email: javiersuarezruiz@hotmail.com
• Twitter: @jsuarezruiz
Crearemos una aplicación Xamarin.Forms haciendo uso de Machine Learning.Veremos conceptos como:
○ Crear estructura Proyecto.
○ Estructura de proyectos.
○ Diseño de vistas.
○ Acceder a Código espécifico de plataforma.
○ Hacer peticiones Http.
La aplicación se realizará paso a paso, en diferentes bloques a lo largo de 2:30h.
A lo largo del taller, iremos resolviendo dudas y preguntas.
El taller
Taller Xamarin Monkey Conf 2018
La App
Crearemos una aplicación Xamarin.Forms para
Android, iOS y UWP.
Se podrán tomar fotos accediendo a la cámara o bien
a la galería.
La foto se analizará utilizando Custom Vision para
determinar si es un HotDog o no.
Se mostrará información adicional con porcentajes en
base a datos de Custom Vision (tags, etc).
No dudéis en preguntar!
Por si alguien, no tiene material:
https://goo.gl/nT7qqL
https://goo.gl/Qnt2ME
Primero, repasemos
conceptos básicos
Xamarin – Solución completa para el Desarrollo móvil
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
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
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
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
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
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.
Open Source – open.xamarin.com
C# mola
Y lo
sabes!
C# mola
¿Cómo funciona es
Xamarin?
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
iOS – Acceso al 100% de las
APIsMapKit UIKit iBeacon CoreGraphics CoreMotion
System.Data System.Windows System.Numerics System.Core
System.ServiceMode
l
System.Net System System.IO System.Linq System.Xml
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
Cualquier cosa que puedas hacer con Objective-C, Swift,
o Java
se puede hacer con C# y Visual Studio con Xamarin.
La clave, compartir
código
LIBRARIES
INFRASTRUCTURE
.NET STANDARD
.NET Standard
.NET Standard permite
compartir Código, binaries
y conceptos entre clients
.NET y servidores.
• .NET Standard faclita una
específicación para cada
plataforma para que la
implementación sea
similar.
• Todos los runtime .NET
creados por Microsoft
están implmenentando el
standard.
Conoce Xamarin.Forms
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
¿Qué se incluye?
✓ 40+ páginas, layouts, y
controles
(code behind o XAML)
✓ Two-way data binding
✓ Navegación
✓ API de animaciones
✓ Dependency Service
✓ Messaging Center
Shared C# Backend
Shared UI Code
Layouts
Páginas
Stack Absolute Relative Grid ContentView ScrollView Frame
Content MasterDetai
l
Navigatio
n
Tabbed Carousel
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
A practicar: Vistas básicas
XAML Love!
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
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
View
ViewModel
Model
get/set
Propiedades
Comandos
Notifica
cambios
C#
Models
View
View
ViewModel
ViewModel
Model
Model
Cross Platform
• 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.
Continuamos: MVVM
Enlace a datos y otros conceptos básicos
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ía
GPS
Lámpara
Notificationes
Settings
Text To Speech
Batería
GPS
Lámpara
Notificationes
Settings
Text To Speech
Batería
GPS
Lámpara
Notificationes
Settings
Text To Speech
RAZONES PARA EXTENDER XAMARIN.FORMS
Motivos
• Modificar aspectos de la
UI.
• Aprovechar a fondo las
capacidades que nos
ofrece cada plataforma.
• Cubrir ciertas
necesidades con nuevos
controles o páginas.
SERVICIOS PERSONALIZADOSDependencyService
Podemos utilizar DependencyService para utilizar servicios específicos
de cada plataforma
Definiremos una interfaz del
servicio y luego realizaremos
implementaciones del mismo
por plataforma
ICallService
MakeCall(string
Phone)
Facilitamos una implementación
por cada plataforma
CallService
CallService
CallService
OpenUrl
Intent Uri
PhoneCallTask
Plugins
Xamarin
Common API
Continuamos: Plugins
Utiizando Plugin para acceder a la cámara
Peticiones Http -> 100% compartidas
public async Task<TResult> GetAsync<TResult>(string uri)
{
HttpClient httpClient = CreateHttpClient();
HttpResponseMessage response = await httpClient.GetAsync(uri);
string serialized = await
response.Content.ReadAsStringAsync();
TResult result = await Task.Run(() =>
JsonConvert.DeserializeObject<TResult>(serialized, _serializerSettings));
return result;
}
Taller Xamarin Monkey Conf 2018
"Tiene botones exquisitos... con
mangas largas... es válido para
algo casual y para negocios "
{f(x) {f(x)
Machine Learning
“Programando lo inprogramable”
f(x)
Modelo {
Machine Learning crea un
Uso de estos datos
Machine Learning
“Programando lo inprogramable”
Pero necesita un montón de datos de entrenamiento de ejemplo para
predecir correctamente...;)
Taller Xamarin Monkey Conf 2018
Muchas tareas con Machine Learning!
Linear Discriminant Analysis
Regresión
Redes neuronales
(Autoencoders,
Self-organizing maps, etc.)
ML supervisado (Infers label) ML sin supervisión (Infers structure)
Modelado de temas
Dimensionality Reduction
Redes neuronales
(MultiLayer Perception, etc.)
Modelado de temas
Predicción estructurada
Árboles de decisión
Naïve Bayes
Clasificación binaria
Multi-class Classification
Clustering
Detección de anomalía
Latent variable models
Regresión lineal
Regresión logística
k-nearest neighbor
Support Vector Machines
( K-means
Mixture models
Hierarchical clustering)
“Democratizar Machine Learning y
AI en general, para los
desarrolladores”
La meta
Computer Vision
Face
Emotion
Content Moderator
Video Indexer
Custom Vision
Custom Decision
QnA Maker
Language
Understanding (LUIS)
Text Analytics
Bing Spell Check
Translator Text
Speaker Recognition
Bing Speech
Custom Speech
Translator Speech
Speech
unified service
Bing Autosuggest
Bing Search
Bing Entity Search
Bing Statistics add-in
Bing Entity Search
Bing Visual Search
Bing Custom Search
Vision APIs
Procesa y extra
información de videos
Servicio web personalizable que
aprende a reconocer contenido
específico en imágenes
Moderación asistida de texto e
imágenes
Distingue entre
información de una
imagen
Detecta, identifica y organiza
caras
Interpreta imágenes para
crear experiencias de
búsqueda visual a medida
Detección de objetos
Entrenar en el Cloud, correr en cualquier lugar
Entrena en Custom Vision
Service
Despliega y ejecuta donde sea
Continuamos: Peticiones Http
Acceso a customvision.ai
Aplicación completa
Preguntas y respuestas.
¿Dudas?
P&R
Taller Xamarin Monkey Conf 2018

Más contenido relacionado

PPTX
Monkey Conf 2018: Conociendo Xamarin.Forms Shell
PPTX
OpenSouthCode 2018: Taller Xamarin
PPTX
.Net Conf Sevilla 2018
PPTX
DotNet2018: Xamarin.Forms Everywhere!
PPTX
Analizando interfaces de usuario avanzadas con Xamarin.Forms
PPTX
DotNet 2019: Optimizando Apps con Xamarin.Forms
PPTX
Monkey Conf 2020: .NET MAUI Handlers
PPTX
Tech Club Asturias: Un vistazo al presente y futuro de Xamarin.Forms
Monkey Conf 2018: Conociendo Xamarin.Forms Shell
OpenSouthCode 2018: Taller Xamarin
.Net Conf Sevilla 2018
DotNet2018: Xamarin.Forms Everywhere!
Analizando interfaces de usuario avanzadas con Xamarin.Forms
DotNet 2019: Optimizando Apps con Xamarin.Forms
Monkey Conf 2020: .NET MAUI Handlers
Tech Club Asturias: Un vistazo al presente y futuro de Xamarin.Forms

La actualidad más candente (20)

PPTX
Creando controles para Xamarin.Forms
PPTX
Monkey Conf 2019: Presente y futuro de Xamarin.Forms
PPTX
DotNetDom: El futuro de Xamarin
PPTX
dotNetMálaga 2017 - Trucos y consejos rendimiento Xamarin.Forms
PPTX
WinObjC: Windows Bridge para iOS
PPTX
Extendiendo Xamarin.Forms
PPTX
Aumento de productividad, herramientas Xamarin
PPTX
Introducción a Xamarin
PPTX
Servicios Xamarin
PPTX
Xamarin REvolve 2016
PPTX
SVQXDG - Introducción a Embeddinator-4000
PPTX
re-Connect Madrid: Novedades Xamarin
PDF
Arquitectura xamarin - Nuestra primera app
PPTX
Integración Continua con Apps Xamarin
PPTX
Desktop App Converter
PPTX
Xamarin Dev Days Málaga 2017 - Apps conectadas con Azure
PPTX
Novedades de Xamarin 4
PPTX
Crear Apps Multiplataforma compartiendo la mayor cantidad con Xamarin
PPTX
Interfaces nativas Cross-Platform con Xamarin.Forms
PPTX
Introducción al desarrollo de aplicaciones Xamarin
Creando controles para Xamarin.Forms
Monkey Conf 2019: Presente y futuro de Xamarin.Forms
DotNetDom: El futuro de Xamarin
dotNetMálaga 2017 - Trucos y consejos rendimiento Xamarin.Forms
WinObjC: Windows Bridge para iOS
Extendiendo Xamarin.Forms
Aumento de productividad, herramientas Xamarin
Introducción a Xamarin
Servicios Xamarin
Xamarin REvolve 2016
SVQXDG - Introducción a Embeddinator-4000
re-Connect Madrid: Novedades Xamarin
Arquitectura xamarin - Nuestra primera app
Integración Continua con Apps Xamarin
Desktop App Converter
Xamarin Dev Days Málaga 2017 - Apps conectadas con Azure
Novedades de Xamarin 4
Crear Apps Multiplataforma compartiendo la mayor cantidad con Xamarin
Interfaces nativas Cross-Platform con Xamarin.Forms
Introducción al desarrollo de aplicaciones Xamarin
Publicidad

Similar a Taller Xamarin Monkey Conf 2018 (20)

PPTX
Evento Bolivia - Fundamentos de Xamarin - Desarrollo de apps moviles multipla...
PPTX
dotNetMálaga - Taller Xamarin
PPTX
Introduction to xamarin
PPTX
Semana Lambda - Fundamentos de Xamarin - Desarrollo de apps moviles multiplat...
PPTX
Back2Learn MSFT UCuenca - Desarrollo de apps móviles multiplataforma con Xam...
PPTX
Codemotion 2017 - Taller Xamarin
PPTX
Semanahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
PPTX
Introduccion a xamarin
PPTX
COECYS - Introducción al desarrollo de apps multiplataforma con Xamarin.pptx
PPTX
Xamarin Dev Days Madrid - Taller Xamarin
PDF
Introduccion-a-Xamarin-y-Xamarin.Forms_1.pdf
PPTX
Plain Concepts Tech Day: Desarrollo de aplicaciones multiplataforma con Xamarin
PPTX
primera aplicacion Xamarin.pptx
PPTX
PUE DAY 2017: Introducción a Xamarin
PPTX
Xamarin Basics
PPTX
Xamarin fest
PPTX
Experiencia con Xamarin en el mundo real de los proyectos.
PPTX
Xamarin Dev Days - Introducción a Xamarin
PPTX
Introduccion a Xamarin
Evento Bolivia - Fundamentos de Xamarin - Desarrollo de apps moviles multipla...
dotNetMálaga - Taller Xamarin
Introduction to xamarin
Semana Lambda - Fundamentos de Xamarin - Desarrollo de apps moviles multiplat...
Back2Learn MSFT UCuenca - Desarrollo de apps móviles multiplataforma con Xam...
Codemotion 2017 - Taller Xamarin
Semanahhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh
Introduccion a xamarin
COECYS - Introducción al desarrollo de apps multiplataforma con Xamarin.pptx
Xamarin Dev Days Madrid - Taller Xamarin
Introduccion-a-Xamarin-y-Xamarin.Forms_1.pdf
Plain Concepts Tech Day: Desarrollo de aplicaciones multiplataforma con Xamarin
primera aplicacion Xamarin.pptx
PUE DAY 2017: Introducción a Xamarin
Xamarin Basics
Xamarin fest
Experiencia con Xamarin en el mundo real de los proyectos.
Xamarin Dev Days - Introducción a Xamarin
Introduccion a Xamarin
Publicidad

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

PPTX
Cape Town MS Developer User Group: Xamarin Community Toolkit
PPTX
Monkey Conf 2020: Xamarin Community Toolkit: More possibilities with Xamarin....
PPTX
Crear interfaces de usuario atractivas con Xamarin.Forms
PPTX
#XamarinUIJuly Summary
PPTX
Novedades Xamarin 3.0 Preview
PPTX
Desarrollo Xamarin, más allá del desarrollo
PPTX
Introducción a Xamarin.Forms
PPTX
Introducción a Xamarin
PPTX
Novedades Xamarin Connect(); 2017
PPTX
dotNetMálaga 2017 - Taller Hololens con Wave Engine
PPTX
Embeddinator-4000
PPTX
Xamarin Hol - Módulo V: Mobile DevOps con Visual Studio Team Services y Hocke...
PPTX
Xamarin Dev Days Madrid 2017 - Xamarin.Forms
Cape Town MS Developer User Group: Xamarin Community Toolkit
Monkey Conf 2020: Xamarin Community Toolkit: More possibilities with Xamarin....
Crear interfaces de usuario atractivas con Xamarin.Forms
#XamarinUIJuly Summary
Novedades Xamarin 3.0 Preview
Desarrollo Xamarin, más allá del desarrollo
Introducción a Xamarin.Forms
Introducción a Xamarin
Novedades Xamarin Connect(); 2017
dotNetMálaga 2017 - Taller Hololens con Wave Engine
Embeddinator-4000
Xamarin Hol - Módulo V: Mobile DevOps con Visual Studio Team Services y Hocke...
Xamarin Dev Days Madrid 2017 - Xamarin.Forms

Último (20)

PDF
Influencia-del-uso-de-redes-sociales.pdf
PDF
MÓDULO DE CALOR DE GRADO DE MEDIO DE FORMACIÓN PROFESIONAL
PPTX
Acronis Cyber Protect Cloud para Ciber Proteccion y Ciber Seguridad LATAM - A...
PPTX
sa-cs-82-powerpoint-hardware-y-software_ver_4.pptx
PDF
Maste clas de estructura metálica y arquitectura
PPTX
IA de Cine - Como MuleSoft y los Agentes estan redefiniendo la realidad
PDF
Estrategia de apoyo tecnología miguel angel solis
PPTX
Propuesta BKP servidores con Acronis1.pptx
PDF
SAP Transportation Management para LSP, TM140 Col18
PPT
Que son las redes de computadores y sus partes
DOCX
Zarate Quispe Alex aldayir aplicaciones de internet .docx
PDF
Calidad desde el Docente y la mejora continua .pdf
PPTX
REDES INFORMATICAS REDES INFORMATICAS.pptx
PPTX
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx
PPTX
Sesion 1 de microsoft power point - Clase 1
PDF
clase auditoria informatica 2025.........
PDF
5.1 Pinch y Bijker en libro Actos, actores y artefactos de Bunch Thomas (coor...
PDF
Estrategia de apoyo tecnología grado 9-3
PDF
Plantilla para Diseño de Narrativas Transmedia.pdf
PDF
programa-de-estudios-2011-guc3ada-para-el-maestro-secundarias-tecnicas-tecnol...
Influencia-del-uso-de-redes-sociales.pdf
MÓDULO DE CALOR DE GRADO DE MEDIO DE FORMACIÓN PROFESIONAL
Acronis Cyber Protect Cloud para Ciber Proteccion y Ciber Seguridad LATAM - A...
sa-cs-82-powerpoint-hardware-y-software_ver_4.pptx
Maste clas de estructura metálica y arquitectura
IA de Cine - Como MuleSoft y los Agentes estan redefiniendo la realidad
Estrategia de apoyo tecnología miguel angel solis
Propuesta BKP servidores con Acronis1.pptx
SAP Transportation Management para LSP, TM140 Col18
Que son las redes de computadores y sus partes
Zarate Quispe Alex aldayir aplicaciones de internet .docx
Calidad desde el Docente y la mejora continua .pdf
REDES INFORMATICAS REDES INFORMATICAS.pptx
ANCASH-CRITERIOS DE EVALUACIÓN-FORMA-10-10 (2).pptx
Sesion 1 de microsoft power point - Clase 1
clase auditoria informatica 2025.........
5.1 Pinch y Bijker en libro Actos, actores y artefactos de Bunch Thomas (coor...
Estrategia de apoyo tecnología grado 9-3
Plantilla para Diseño de Narrativas Transmedia.pdf
programa-de-estudios-2011-guc3ada-para-el-maestro-secundarias-tecnicas-tecnol...

Taller Xamarin Monkey Conf 2018

  • 1. Desarrollo de aplicaciones multiplataforma con Xamarin Taller
  • 2. Sponsors Sin ellos no sería posible el evento!
  • 3. Software Developer at Microsoft • Blog: http://geeks.ms/blogs/jsuarez • Email: javiersuarezruiz@hotmail.com • Twitter: @jsuarezruiz
  • 4. Crearemos una aplicación Xamarin.Forms haciendo uso de Machine Learning.Veremos conceptos como: ○ Crear estructura Proyecto. ○ Estructura de proyectos. ○ Diseño de vistas. ○ Acceder a Código espécifico de plataforma. ○ Hacer peticiones Http. La aplicación se realizará paso a paso, en diferentes bloques a lo largo de 2:30h. A lo largo del taller, iremos resolviendo dudas y preguntas. El taller
  • 6. La App Crearemos una aplicación Xamarin.Forms para Android, iOS y UWP. Se podrán tomar fotos accediendo a la cámara o bien a la galería. La foto se analizará utilizando Custom Vision para determinar si es un HotDog o no. Se mostrará información adicional con porcentajes en base a datos de Custom Vision (tags, etc).
  • 7. No dudéis en preguntar!
  • 8. Por si alguien, no tiene material: https://goo.gl/nT7qqL https://goo.gl/Qnt2ME
  • 10. Xamarin – Solución completa para el Desarrollo móvil
  • 11. 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
  • 12. 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
  • 13. 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
  • 14. 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
  • 15. 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
  • 16. Xamarin ahora gratis e incluido en Visual Studio
  • 17. 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.
  • 18. Open Source – open.xamarin.com
  • 22. 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
  • 23. iOS – Acceso al 100% de las APIsMapKit UIKit iBeacon CoreGraphics CoreMotion System.Data System.Windows System.Numerics System.Core System.ServiceMode l System.Net System System.IO System.Linq System.Xml
  • 24. 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
  • 25. Cualquier cosa que puedas hacer con Objective-C, Swift, o Java se puede hacer con C# y Visual Studio con Xamarin.
  • 27. LIBRARIES INFRASTRUCTURE .NET STANDARD .NET Standard .NET Standard permite compartir Código, binaries y conceptos entre clients .NET y servidores. • .NET Standard faclita una específicación para cada plataforma para que la implementación sea similar. • Todos los runtime .NET creados por Microsoft están implmenentando el standard.
  • 29. 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
  • 30. ¿Qué se incluye? ✓ 40+ páginas, layouts, y controles (code behind o XAML) ✓ Two-way data binding ✓ Navegación ✓ API de animaciones ✓ Dependency Service ✓ Messaging Center Shared C# Backend Shared UI Code
  • 31. Layouts Páginas Stack Absolute Relative Grid ContentView ScrollView Frame Content MasterDetai l Navigatio n Tabbed Carousel
  • 32. 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
  • 33. A practicar: Vistas básicas XAML Love!
  • 34. 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
  • 35. 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
  • 37. • 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.
  • 38. Continuamos: MVVM Enlace a datos y otros conceptos básicos
  • 39. 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ía GPS Lámpara Notificationes Settings Text To Speech Batería GPS Lámpara Notificationes Settings Text To Speech Batería GPS Lámpara Notificationes Settings Text To Speech
  • 40. RAZONES PARA EXTENDER XAMARIN.FORMS Motivos • Modificar aspectos de la UI. • Aprovechar a fondo las capacidades que nos ofrece cada plataforma. • Cubrir ciertas necesidades con nuevos controles o páginas.
  • 41. SERVICIOS PERSONALIZADOSDependencyService Podemos utilizar DependencyService para utilizar servicios específicos de cada plataforma Definiremos una interfaz del servicio y luego realizaremos implementaciones del mismo por plataforma ICallService MakeCall(string Phone) Facilitamos una implementación por cada plataforma CallService CallService CallService OpenUrl Intent Uri PhoneCallTask
  • 43. Continuamos: Plugins Utiizando Plugin para acceder a la cámara
  • 44. Peticiones Http -> 100% compartidas public async Task<TResult> GetAsync<TResult>(string uri) { HttpClient httpClient = CreateHttpClient(); HttpResponseMessage response = await httpClient.GetAsync(uri); string serialized = await response.Content.ReadAsStringAsync(); TResult result = await Task.Run(() => JsonConvert.DeserializeObject<TResult>(serialized, _serializerSettings)); return result; }
  • 46. "Tiene botones exquisitos... con mangas largas... es válido para algo casual y para negocios " {f(x) {f(x) Machine Learning “Programando lo inprogramable”
  • 47. f(x) Modelo { Machine Learning crea un Uso de estos datos Machine Learning “Programando lo inprogramable” Pero necesita un montón de datos de entrenamiento de ejemplo para predecir correctamente...;)
  • 49. Muchas tareas con Machine Learning! Linear Discriminant Analysis Regresión Redes neuronales (Autoencoders, Self-organizing maps, etc.) ML supervisado (Infers label) ML sin supervisión (Infers structure) Modelado de temas Dimensionality Reduction Redes neuronales (MultiLayer Perception, etc.) Modelado de temas Predicción estructurada Árboles de decisión Naïve Bayes Clasificación binaria Multi-class Classification Clustering Detección de anomalía Latent variable models Regresión lineal Regresión logística k-nearest neighbor Support Vector Machines ( K-means Mixture models Hierarchical clustering)
  • 50. “Democratizar Machine Learning y AI en general, para los desarrolladores” La meta
  • 51. Computer Vision Face Emotion Content Moderator Video Indexer Custom Vision Custom Decision QnA Maker Language Understanding (LUIS) Text Analytics Bing Spell Check Translator Text Speaker Recognition Bing Speech Custom Speech Translator Speech Speech unified service Bing Autosuggest Bing Search Bing Entity Search Bing Statistics add-in Bing Entity Search Bing Visual Search Bing Custom Search
  • 52. Vision APIs Procesa y extra información de videos Servicio web personalizable que aprende a reconocer contenido específico en imágenes Moderación asistida de texto e imágenes Distingue entre información de una imagen Detecta, identifica y organiza caras Interpreta imágenes para crear experiencias de búsqueda visual a medida
  • 54. Entrenar en el Cloud, correr en cualquier lugar Entrena en Custom Vision Service Despliega y ejecuta donde sea

Notas del editor

  • #17: Including the Free Community Edition
  • #25: The same is true for Android as well.
  • #26: Coming up next is bubbles
  • #32: Inside of a page are layouts A lot of options from something simple like a stack panel to complex and powerful grids
  • #33: 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
  • #47: 46
  • #48: 47
  • #52: Microsoft Build 2016