2. Visual Studio Technologies & Windows
Platform Development MVP
Xamarin MVP
Software Developer at Plain Concepts
• Blog: http://geeks.ms/blogs/jsuarez
• Email: javiersuarezruiz@hotmail.com
• Twitter: @jsuarezruiz
3. 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 casi 2h.
A lo largo del taller, iremos resolviendo dudas y preguntas.
También tendremos alguna sorpresa y detalle ;)
El taller
4.
5. 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).
11. 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
12. 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
13. 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
14. 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. 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.
21. 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
22. 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
23. 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
24. Cualquier cosa que puedas hacer con Objective-C, Swift,
o Java
se puede hacer con C# y Visual Studio con Xamarin.
26. 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.
28. 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
29. ¿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
38. 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
39. 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.
40. 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
44. 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
45. 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
52. Concurso en el que
sorteamos pequeños regalos
(detalles).
¿En qué consiste?
53. Las reglas son sencillas:
• Todo el mundo de pie.
• Tendremos preguntas con opciones A y B. Si
piensas que la respuesta es A levanta las manos,
en caso contrario, mantenlas hacia abajo.
• Si aciertas continuas, si fallas, te sientas.
• Sólo los últimos que se mantengan de pie
lograrán los premios.
Las reglas
Inside of a page are layouts
A lot of options from something simple like a stack panel to complex and powerful grids
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