SlideShare una empresa de Scribd logo
1 de 52
Luis Beltrán
• Investigador/estudiante en Tomas Bata
University in Zlín, República Checa
• Docente en Tecnologico Nacional de
Mexico en Celaya, Mexico
• Microsoft MVP en IA y Tecnologías de
Desarrollador
luis@luisbeltran.mx
@darkicebeam
Nuevos retos
Más dispositivos Plataformas emergentes Datos e Inteligencia
Enfoque tradicional de desarrollo (SILO)
Tradicionalmente, las aplicaciones tienen bases de código separadas escritas en su
lenguaje nativo, construidas usando herramientas nativas e incorporando
características específicas de plataforma
Ventajas
Las aplicaciones tradicionales siguen las
guías de experiencia de usuario de cada
plataforma: estilo de navegación, diseño de
interfaces, configuraciones, etc.
Los usuarios saben qué esperar y cómo
utilizar una app de forma natural.
Desventajas
El desarrollo tradicional de apps toma más tiempo, requiere múltiples equipos,
múltiples entornos de desarrollo y no se puede compartir código.
Tecnologías cross-platform
“cross-platform”: Tecnología que permite escribir
lógica de negocios y crear interfaces de usuario bajo
un framework de trabajo común para construir
aplicaciones para iOS, Android y posiblemente
Windows.
“Write once, run anywhere”
Opciones actuales
Flutter React Native Xamarin
Recomendaciones
• Elige la tecnología cross-platform que más se ajuste a tus necesidades, stack, conocimientos,
reutilización de código.
• No elijas cross-platform si el equipo de desarrollo (colaboradores) no tiene los
conocimientos requeridos.
• Entender que cross-platform no es ideal para todos los escenarios.
• Pon atención especial a tu proveedor de servicios.
• Experimenta cada plataforma de primera mano.
Consideraciones
Cross-platform NO sustituye el aprendizaje de los patrones de cada plataforma
Cross-platform NO es la solución para todo.
Ciertos aspectos deben seguirse gestionando:
Acceso offline
Permisos
Almacenamiento
.NET: La plataforma para construir lo que necesites
Desktop Web Cloud Mobile Gaming IoT AI
.NET
Xamarin
Una plataforma de aplicaciones open source de Microsoft para construir apps
iOS, Android, macOS, Windows, watchOS, & tvOS
modernas y de alto rendimiento con .NET.
Xamarin.Forms
Un framework mobile para UI
open source de Microsoft para
construir apps iOS, Android & Windows con .NET a partir de
una base única de código compartido.
Xamarin + Xamarin.Forms
Xamarin.Forms
Enfoque Tradicional
iOS C# UI Windows C# UI
Android C# UI
Lógica de C# (Shared) Lógica de C# (Shared)
Xamarin.Forms
Base de código compartido • Acceso 100% a APIs nativos • Alto
desempeño
Xamarin.iOS
MapKit UIKit SiriKit ARKit CoreML
System.Data System.Windows System.Numerics System.Core System.ServiceModel
System.Net System System.IO System.Linq System.Xml
C#
Todo lo que puedes hacer en Swift y
Objective-C para iOS, lo puedes
programar con Xamarin usando C#
API cubierto al 100% con el beneficio adicional de
las APIs de .NET
Xamarin.Android
Fingerprint Bluetooth Picture-in-Picture Geolocation NFC
System.Data System.Windows System.Numerics System.Core System.ServiceModel
System.Net System System.IO System.Linq System.Xml
C#
Todo lo que puedes hacer en Android y
Kotlin para Android, lo puedes
programar con Xamarin usando C#
API cubierto al 100% con el beneficio adicional de
las APIs de .NET
APIs de Windows
Windows.Media Windows.Networking Windows.Storage Windows.Foundation Windows.Devices
System.Data System.Windows System.Numerics System.Core System.ServiceModel
System.Net System System.IO System.Linq System.Xml
C#
Las apps de Windows son construidas en
C# usando las APIs nativas
Xamarin.Forms
Xamarin.Forms permite compartir todavía más
elementos que en Xamarin Tradicional, dado
que existe una definición de UI común.
Esto significa que puedes construir interfaces
de usuario nativas para Android, iOS y
Windows a partir de una base única de código
compartido.
Herramientas
Utilizas Visual Studio (for Windows/Mac), C# + XAML y las bibliotecas de .NET
para construir aplicaciones de Xamarin.
Prueba tus aplicaciones:
Emuladores o dispositivos físicos
Requisitos de instalación
Xamarin.iOS
• Equipo Mac (o acceso remoto)
• Xcode
• SDK de iOS
Xamarin.Android
• Equipo Windows 10 o Mac
• SDK de Android
Hardware
• 8 GB de RAM (mínimo)
• Soporte a virtualización (en caso de usar emuladores)
• Procesador Core i5 (mínimo)
• Recomendable disco SSD
Estructura de una solución Xamarin.Forms
Creando la UI de la app
La Interfaz de Usuario (UI) de la aplicación está definida en términos de
páginas (Pages) y vistas (Views).
Views son los controles
de UI con los que el
usuario interactúa
Page representa una pantalla única
que se muestra en la aplicación
Xamarin.Forms Pages
Page es una clase abstracta utilizada para definir una pantalla única de
contenido.
Content MasterDetail Navigation Tabbed Carousel
Content Page
Muestra un solo
elemento en
pantalla
Xamarin.Forms Views
View es la clase base para todos los
controles visuales, con una gran cantidad de
elementos estándar presentes.
Xamarin.Forms Views
Label
Utiliza un Label para mostrar bloques de texto de solo lectura.
Image
Permite mostrar una imagen a partir de un nombre de archivo, ruta
URL, ruta física del dispositivo, recurso embebido o stream.
<Image Source="waterfront.jpg" />
Activity Indicator
CollectionView
• CollectionView es una vista flexible y eficaz para
presentar listas de datos que tienen especificaciones
de diseño diferentes.
• Un CollectionView se rellena con datos estableciendo
el valor de la propiedad ItemsSource con cualquier
colección que implemente la interfaz IEnumerable.
• La apariencia de cada elemento de la lista se define
asignando un DataTemplate al ItemTemplate.
<CollectionView ItemsSource="{Binding Monkeys}">
<CollectionView.ItemTemplate>
<DataTemplate>
<Grid Padding="10">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Image Grid.RowSpan="2"
Source="{Binding ImageUrl}” Aspect="AspectFill"
HeightRequest="60” WidthRequest="60" />
<Label Grid.Column="1"
Text="{Binding Name}” FontAttributes="Bold" />
<Label Grid.Row="1"
Grid.Column="1” Text="{Binding Location}"
FontAttributes="Italic” VerticalOptions="End" />
</Grid>
</DataTemplate>
</CollectionView.ItemTemplate>
...
</CollectionView>
Acomodando la UI mediante Layouts
• Los Layouts en Xamarin.Forms son contenedores que
permiten dar una estructura a la UI (tamaño y
posición).
• Los Layouts admiten uno o más Views, conocidos como
“hijos”.
• En lugar de especificar posiciones con coordenadas
(pixeles, dips, etc.), utilizas los contenedores de layout
para controlar cómo se posicionan los views con
respecto a los demás.
• Esta estrategia promueve un diseño adaptable, que no
se ve afectado por dimensiones y resoluciones.
Grid
Grid es un panel de diseño utilizado para crear renglones y columnas,
donde los elementos se posicionan en celdas (indicando la columna y
renglón específico), además de que pueden abarcar más de una celda
(span).
Especifica el
renglón / columna
Especifica el span
Ejemplo de interfaz de usuario en
Xamarin.Forms
Patrones de separación de presentación
Son patrones y reglas utilizadas para ayudar a los desarrolladores a
dividir su código en capas lógicas, diseñadas específicamente para
separar el código de la interfaz de usuario del código de lógica de
negocios.
Patrones comunes de separación de
presentación
Elegir un patrón de presentación para tu aplicación depende de los
APIs disponibles para la plataforma de desarrollo y la preferencia
personal del desarrollador.
MVVM
MVVM es una variante de MVC que usa una
infraestructura de enlace de datos (data
binding) para conectar los controladores (aquí
llamados ViewModels) a las vistas.
Cada capa únicamente debería tener
conocimiento directo acerca de la capa
debjo de ella.
Model
El Modelo representa los datos de aplicación.
View
La Vista presenta la información al usuario por medio de una interfaz
específica de plataforma.
ViewModel
El ViewModel proporciona una representación centrada en la vista de
los datos a mostrar.
Expone propiedades
enlazables e
implementa
notificaciones en los
cambios de las
propiedades
Por lo general hay un
Model por cada
ViewModel (relación
1:1)
Conectando View y ViewModel
Asignamos una instancia de ViewModel en el BindingContext de la
View para conectar las propiedades expuestas por el ViewModel y que
estén disponibles para ser usadas en la View.
<ContentPage ... xmlns:local="clr-
namespace:DemoApp">
<ContentPage.BindingContext>
<local:MainViewModel />
</ContentPage.BindingContext>
...
</ContentPage>
Para enlazar una propiedad del ViewModel en la View, utilizamos Data
Binding
Demo
https://github.com/icebeam7/Back2LearnApp
Registro al evento
https://www.eventbrite.com.mx/e/global-ai-back-together-tickets-175537636797
Global AI Back Together: 19 al 21 de Octubre
https://www.eventbrite.com.mx/e/nenufar-ep-3-tickets-175014963467
Nenúfar Ep. 3: 23 de Octubre
¡Gracias por tu atención!
https://forms.office.com/r/dLcedct6LD
¿Cómo estuvo mi presentación?
Luis Beltrán
about.me/luis-beltran

Más contenido relacionado

La actualidad más candente

Fundamentos del entorno_de_trabajo_de_visual_basic_y_del_lenguaje_en_si
Fundamentos del entorno_de_trabajo_de_visual_basic_y_del_lenguaje_en_siFundamentos del entorno_de_trabajo_de_visual_basic_y_del_lenguaje_en_si
Fundamentos del entorno_de_trabajo_de_visual_basic_y_del_lenguaje_en_siAlejandro Ferrer
 
Fundamentos de visual basic 6.0
Fundamentos de visual basic 6.0Fundamentos de visual basic 6.0
Fundamentos de visual basic 6.0Jose Ancianis
 
Trabajo de fundamentos de visual basic
Trabajo de fundamentos de visual basicTrabajo de fundamentos de visual basic
Trabajo de fundamentos de visual basicMarielys Artigas
 
Usos del visual basic
Usos del visual basicUsos del visual basic
Usos del visual basicVladimir Maza
 
Presentacion de Visual Basic
Presentacion de Visual BasicPresentacion de Visual Basic
Presentacion de Visual BasicFrancheska Parras
 
Fundamentos de visual basico por vicente sanchez
Fundamentos de visual basico por vicente sanchezFundamentos de visual basico por vicente sanchez
Fundamentos de visual basico por vicente sanchezJairo Bermudez
 
Programación en Visual Basic - Conceptos Básicos
Programación en Visual Basic - Conceptos BásicosProgramación en Visual Basic - Conceptos Básicos
Programación en Visual Basic - Conceptos BásicosCristian Gonzalez
 
FUNDAMENTOS DE VISUAL BASIC
FUNDAMENTOS DE VISUAL BASICFUNDAMENTOS DE VISUAL BASIC
FUNDAMENTOS DE VISUAL BASICBenny Jose
 
Fernando Espinoza
Fernando EspinozaFernando Espinoza
Fernando EspinozaMarvel ico
 
Fundamentos de Visual Basic Gabriel Araujo
Fundamentos de Visual Basic   Gabriel AraujoFundamentos de Visual Basic   Gabriel Araujo
Fundamentos de Visual Basic Gabriel AraujoGabrielAPSM
 
Visual Studio 2012
Visual Studio 2012Visual Studio 2012
Visual Studio 2012Byron Paguay
 
Windows Phone - Sesión 2 - SenaGeeks
Windows Phone - Sesión 2 - SenaGeeksWindows Phone - Sesión 2 - SenaGeeks
Windows Phone - Sesión 2 - SenaGeeksAvanet
 
Instituto universitario politecnico
Instituto universitario politecnicoInstituto universitario politecnico
Instituto universitario politecnicoKarolayFinol
 
Pressman capitulo 15
Pressman capitulo 15Pressman capitulo 15
Pressman capitulo 15supito01
 

La actualidad más candente (20)

Fundamentos del entorno_de_trabajo_de_visual_basic_y_del_lenguaje_en_si
Fundamentos del entorno_de_trabajo_de_visual_basic_y_del_lenguaje_en_siFundamentos del entorno_de_trabajo_de_visual_basic_y_del_lenguaje_en_si
Fundamentos del entorno_de_trabajo_de_visual_basic_y_del_lenguaje_en_si
 
Fundamentos de visual basic 6.0
Fundamentos de visual basic 6.0Fundamentos de visual basic 6.0
Fundamentos de visual basic 6.0
 
Trabajo de fundamentos de visual basic
Trabajo de fundamentos de visual basicTrabajo de fundamentos de visual basic
Trabajo de fundamentos de visual basic
 
Usos del visual basic
Usos del visual basicUsos del visual basic
Usos del visual basic
 
Presentacion de Visual Basic
Presentacion de Visual BasicPresentacion de Visual Basic
Presentacion de Visual Basic
 
Fundamentos de visual basico por vicente sanchez
Fundamentos de visual basico por vicente sanchezFundamentos de visual basico por vicente sanchez
Fundamentos de visual basico por vicente sanchez
 
Programación en Visual Basic - Conceptos Básicos
Programación en Visual Basic - Conceptos BásicosProgramación en Visual Basic - Conceptos Básicos
Programación en Visual Basic - Conceptos Básicos
 
FUNDAMENTOS DE VISUAL BASIC
FUNDAMENTOS DE VISUAL BASICFUNDAMENTOS DE VISUAL BASIC
FUNDAMENTOS DE VISUAL BASIC
 
Luis jose coronel num 42
Luis jose coronel num 42Luis jose coronel num 42
Luis jose coronel num 42
 
Trabajo gru
Trabajo gruTrabajo gru
Trabajo gru
 
Fernando Espinoza
Fernando EspinozaFernando Espinoza
Fernando Espinoza
 
Fundamentos de Visual Basic Gabriel Araujo
Fundamentos de Visual Basic   Gabriel AraujoFundamentos de Visual Basic   Gabriel Araujo
Fundamentos de Visual Basic Gabriel Araujo
 
Visual Studio 2012
Visual Studio 2012Visual Studio 2012
Visual Studio 2012
 
Guia 0 vb induccion
Guia 0 vb    induccionGuia 0 vb    induccion
Guia 0 vb induccion
 
Windows Phone - Sesión 2 - SenaGeeks
Windows Phone - Sesión 2 - SenaGeeksWindows Phone - Sesión 2 - SenaGeeks
Windows Phone - Sesión 2 - SenaGeeks
 
Instituto universitario politecnico
Instituto universitario politecnicoInstituto universitario politecnico
Instituto universitario politecnico
 
Pressman capitulo 15
Pressman capitulo 15Pressman capitulo 15
Pressman capitulo 15
 
Asp.net mvc
Asp.net mvcAsp.net mvc
Asp.net mvc
 
27754 ibm wp_native_web_or_hybrid_2846853
27754 ibm wp_native_web_or_hybrid_284685327754 ibm wp_native_web_or_hybrid_2846853
27754 ibm wp_native_web_or_hybrid_2846853
 
Visual basic
Visual basicVisual basic
Visual basic
 

Similar a Desarrollo multiplataforma con Xamarin

Evento Bolivia - Fundamentos de Xamarin - Desarrollo de apps moviles multipla...
Evento Bolivia - Fundamentos de Xamarin - Desarrollo de apps moviles multipla...Evento Bolivia - Fundamentos de Xamarin - Desarrollo de apps moviles multipla...
Evento Bolivia - Fundamentos de Xamarin - Desarrollo de apps moviles multipla...Luis Beltran
 
Back2Learn MSFT UCuenca - Desarrollo de apps móviles multiplataforma con Xam...
Back2Learn MSFT UCuenca - Desarrollo de apps móviles multiplataforma con Xam...Back2Learn MSFT UCuenca - Desarrollo de apps móviles multiplataforma con Xam...
Back2Learn MSFT UCuenca - Desarrollo de apps móviles multiplataforma con Xam...Luis Beltran
 
COECYS - Introducción al desarrollo de apps multiplataforma con Xamarin.pptx
COECYS - Introducción al desarrollo de apps multiplataforma con Xamarin.pptxCOECYS - Introducción al desarrollo de apps multiplataforma con Xamarin.pptx
COECYS - Introducción al desarrollo de apps multiplataforma con Xamarin.pptxLuis Beltran
 
Cliente servidoryj
Cliente servidoryjCliente servidoryj
Cliente servidoryjyoshimaryj
 
itio de realizacion de un blog blogs blogspot
itio de realizacion de un blog blogs blogspotitio de realizacion de un blog blogs blogspot
itio de realizacion de un blog blogs blogspotpaolatublog
 
Semana 02 Aplicacion Movil.pptx
Semana 02 Aplicacion Movil.pptxSemana 02 Aplicacion Movil.pptx
Semana 02 Aplicacion Movil.pptxErickCarlos14
 
Articulo tipos de ide y ajax control toolkit
Articulo   tipos de ide y ajax control toolkitArticulo   tipos de ide y ajax control toolkit
Articulo tipos de ide y ajax control toolkitCesar Escalante
 
Introduction to .NET MAUI.pdf
Introduction to .NET MAUI.pdfIntroduction to .NET MAUI.pdf
Introduction to .NET MAUI.pdfLuis775803
 

Similar a Desarrollo multiplataforma con Xamarin (20)

Evento Bolivia - Fundamentos de Xamarin - Desarrollo de apps moviles multipla...
Evento Bolivia - Fundamentos de Xamarin - Desarrollo de apps moviles multipla...Evento Bolivia - Fundamentos de Xamarin - Desarrollo de apps moviles multipla...
Evento Bolivia - Fundamentos de Xamarin - Desarrollo de apps moviles multipla...
 
Back2Learn MSFT UCuenca - Desarrollo de apps móviles multiplataforma con Xam...
Back2Learn MSFT UCuenca - Desarrollo de apps móviles multiplataforma con Xam...Back2Learn MSFT UCuenca - Desarrollo de apps móviles multiplataforma con Xam...
Back2Learn MSFT UCuenca - Desarrollo de apps móviles multiplataforma con Xam...
 
COECYS - Introducción al desarrollo de apps multiplataforma con Xamarin.pptx
COECYS - Introducción al desarrollo de apps multiplataforma con Xamarin.pptxCOECYS - Introducción al desarrollo de apps multiplataforma con Xamarin.pptx
COECYS - Introducción al desarrollo de apps multiplataforma con Xamarin.pptx
 
dotNetMálaga - Taller Xamarin
dotNetMálaga - Taller XamarindotNetMálaga - Taller Xamarin
dotNetMálaga - Taller Xamarin
 
5-Unidad 2: Diseños de Vista-2.2 Para Web
5-Unidad 2: Diseños de Vista-2.2 Para Web5-Unidad 2: Diseños de Vista-2.2 Para Web
5-Unidad 2: Diseños de Vista-2.2 Para Web
 
5-Unidad 2: Diseño de Vista-2.2 Para Web
5-Unidad 2: Diseño de Vista-2.2 Para Web5-Unidad 2: Diseño de Vista-2.2 Para Web
5-Unidad 2: Diseño de Vista-2.2 Para Web
 
Cliente servidoryj
Cliente servidoryjCliente servidoryj
Cliente servidoryj
 
Paola
PaolaPaola
Paola
 
Paola
PaolaPaola
Paola
 
Paola
PaolaPaola
Paola
 
itio de realizacion de un blog blogs blogspot
itio de realizacion de un blog blogs blogspotitio de realizacion de un blog blogs blogspot
itio de realizacion de un blog blogs blogspot
 
Paola
PaolaPaola
Paola
 
Paola 1001 jt
Paola 1001 jtPaola 1001 jt
Paola 1001 jt
 
Introducción a Visual Studio .net
Introducción a Visual Studio .netIntroducción a Visual Studio .net
Introducción a Visual Studio .net
 
Semana 02 Aplicacion Movil.pptx
Semana 02 Aplicacion Movil.pptxSemana 02 Aplicacion Movil.pptx
Semana 02 Aplicacion Movil.pptx
 
Articulo tipos de ide y ajax control toolkit
Articulo   tipos de ide y ajax control toolkitArticulo   tipos de ide y ajax control toolkit
Articulo tipos de ide y ajax control toolkit
 
DAM-S1.pptx
DAM-S1.pptxDAM-S1.pptx
DAM-S1.pptx
 
Aplicaciones Net
Aplicaciones NetAplicaciones Net
Aplicaciones Net
 
Aplicaciones Net
Aplicaciones NetAplicaciones Net
Aplicaciones Net
 
Introduction to .NET MAUI.pdf
Introduction to .NET MAUI.pdfIntroduction to .NET MAUI.pdf
Introduction to .NET MAUI.pdf
 

Más de Luis Beltran

AI for Accessibility.pptx
AI for Accessibility.pptxAI for Accessibility.pptx
AI for Accessibility.pptxLuis Beltran
 
NET Conf Bhubaneswar - Migrating your Xamarin.Forms app to .NET MAUI.pptx
NET Conf Bhubaneswar - Migrating your Xamarin.Forms app to .NET MAUI.pptxNET Conf Bhubaneswar - Migrating your Xamarin.Forms app to .NET MAUI.pptx
NET Conf Bhubaneswar - Migrating your Xamarin.Forms app to .NET MAUI.pptxLuis Beltran
 
03 GlobalAIBootcamp2020Lisboa-Rock, Paper, Scissors.pptx
03 GlobalAIBootcamp2020Lisboa-Rock, Paper, Scissors.pptx03 GlobalAIBootcamp2020Lisboa-Rock, Paper, Scissors.pptx
03 GlobalAIBootcamp2020Lisboa-Rock, Paper, Scissors.pptxLuis Beltran
 
BI LATAM Summit 2022 - Creación de soluciones de automatización serverless-...
BI LATAM Summit 2022 - Creación de soluciones de automatización serverless-...BI LATAM Summit 2022 - Creación de soluciones de automatización serverless-...
BI LATAM Summit 2022 - Creación de soluciones de automatización serverless-...Luis Beltran
 
CEIAAIT - Fundamentos y Aplicaciones de Deep Learning.pdf
CEIAAIT - Fundamentos y Aplicaciones de Deep Learning.pdfCEIAAIT - Fundamentos y Aplicaciones de Deep Learning.pdf
CEIAAIT - Fundamentos y Aplicaciones de Deep Learning.pdfLuis Beltran
 
Computo en la Nube con Azure - AI Gaming Panama.pptx
Computo en la Nube con Azure - AI Gaming Panama.pptxComputo en la Nube con Azure - AI Gaming Panama.pptx
Computo en la Nube con Azure - AI Gaming Panama.pptxLuis Beltran
 
5StarsConf - Serverless Machine Learning con Azure Functions y ML.NET .pptx
5StarsConf - Serverless Machine Learning con Azure Functions y ML.NET .pptx5StarsConf - Serverless Machine Learning con Azure Functions y ML.NET .pptx
5StarsConf - Serverless Machine Learning con Azure Functions y ML.NET .pptxLuis Beltran
 
ACW - Azure Speaker Recognition Biometria de Voz.pptx
ACW - Azure Speaker Recognition Biometria de Voz.pptxACW - Azure Speaker Recognition Biometria de Voz.pptx
ACW - Azure Speaker Recognition Biometria de Voz.pptxLuis Beltran
 
UNICABA - Azure Machine Learning.pptx
UNICABA - Azure Machine Learning.pptxUNICABA - Azure Machine Learning.pptx
UNICABA - Azure Machine Learning.pptxLuis Beltran
 
Azure Talks Bolivia - Aumente la confiabilidad de su negocio con Azure Anomal...
Azure Talks Bolivia - Aumente la confiabilidad de su negocio con Azure Anomal...Azure Talks Bolivia - Aumente la confiabilidad de su negocio con Azure Anomal...
Azure Talks Bolivia - Aumente la confiabilidad de su negocio con Azure Anomal...Luis Beltran
 
Latino NET - Integrando WhatsApp en nuestras apps .NET con Twilio.pptx
Latino NET - Integrando WhatsApp en nuestras apps .NET con Twilio.pptxLatino NET - Integrando WhatsApp en nuestras apps .NET con Twilio.pptx
Latino NET - Integrando WhatsApp en nuestras apps .NET con Twilio.pptxLuis Beltran
 
NOVA - Enriquecimiento de IA con Azure Cognitive Search.pptx
NOVA - Enriquecimiento de IA con Azure Cognitive Search.pptxNOVA - Enriquecimiento de IA con Azure Cognitive Search.pptx
NOVA - Enriquecimiento de IA con Azure Cognitive Search.pptxLuis Beltran
 
Netcoreconf 2021 Realidad mixta en apps móviles con Azure Spatial Anchors y ...
Netcoreconf 2021 Realidad mixta en apps móviles con Azure Spatial Anchors y ...Netcoreconf 2021 Realidad mixta en apps móviles con Azure Spatial Anchors y ...
Netcoreconf 2021 Realidad mixta en apps móviles con Azure Spatial Anchors y ...Luis Beltran
 
ATG Puebla - El cementerio de Microsoft.pptx
ATG Puebla - El cementerio de Microsoft.pptxATG Puebla - El cementerio de Microsoft.pptx
ATG Puebla - El cementerio de Microsoft.pptxLuis Beltran
 
Data-Saturday-10-Sofia-2021 Azure Video Indexer- Advanced data extraction fro...
Data-Saturday-10-Sofia-2021 Azure Video Indexer- Advanced data extraction fro...Data-Saturday-10-Sofia-2021 Azure Video Indexer- Advanced data extraction fro...
Data-Saturday-10-Sofia-2021 Azure Video Indexer- Advanced data extraction fro...Luis Beltran
 
Azure Community Conference - Image Recognition in WhatsApp chatbot with Azure...
Azure Community Conference - Image Recognition in WhatsApp chatbot with Azure...Azure Community Conference - Image Recognition in WhatsApp chatbot with Azure...
Azure Community Conference - Image Recognition in WhatsApp chatbot with Azure...Luis Beltran
 
Real NET Docs Show - Serverless Machine Learning v3.pptx
Real NET Docs Show - Serverless Machine Learning v3.pptxReal NET Docs Show - Serverless Machine Learning v3.pptx
Real NET Docs Show - Serverless Machine Learning v3.pptxLuis Beltran
 
Sesion 5 - Eficiencia del Rendimiento - Well Architected Backstage Tour.pptx
Sesion 5 - Eficiencia del Rendimiento - Well Architected Backstage Tour.pptxSesion 5 - Eficiencia del Rendimiento - Well Architected Backstage Tour.pptx
Sesion 5 - Eficiencia del Rendimiento - Well Architected Backstage Tour.pptxLuis Beltran
 
XamarinExpertDay - Creating PDF files in mobile apps with PdfSharpCore and Mi...
XamarinExpertDay - Creating PDF files in mobile apps with PdfSharpCore and Mi...XamarinExpertDay - Creating PDF files in mobile apps with PdfSharpCore and Mi...
XamarinExpertDay - Creating PDF files in mobile apps with PdfSharpCore and Mi...Luis Beltran
 
Latam Space Week - Clasificación de rocas espaciales por medio de IA.pptx
Latam Space Week - Clasificación de rocas espaciales por medio de IA.pptxLatam Space Week - Clasificación de rocas espaciales por medio de IA.pptx
Latam Space Week - Clasificación de rocas espaciales por medio de IA.pptxLuis Beltran
 

Más de Luis Beltran (20)

AI for Accessibility.pptx
AI for Accessibility.pptxAI for Accessibility.pptx
AI for Accessibility.pptx
 
NET Conf Bhubaneswar - Migrating your Xamarin.Forms app to .NET MAUI.pptx
NET Conf Bhubaneswar - Migrating your Xamarin.Forms app to .NET MAUI.pptxNET Conf Bhubaneswar - Migrating your Xamarin.Forms app to .NET MAUI.pptx
NET Conf Bhubaneswar - Migrating your Xamarin.Forms app to .NET MAUI.pptx
 
03 GlobalAIBootcamp2020Lisboa-Rock, Paper, Scissors.pptx
03 GlobalAIBootcamp2020Lisboa-Rock, Paper, Scissors.pptx03 GlobalAIBootcamp2020Lisboa-Rock, Paper, Scissors.pptx
03 GlobalAIBootcamp2020Lisboa-Rock, Paper, Scissors.pptx
 
BI LATAM Summit 2022 - Creación de soluciones de automatización serverless-...
BI LATAM Summit 2022 - Creación de soluciones de automatización serverless-...BI LATAM Summit 2022 - Creación de soluciones de automatización serverless-...
BI LATAM Summit 2022 - Creación de soluciones de automatización serverless-...
 
CEIAAIT - Fundamentos y Aplicaciones de Deep Learning.pdf
CEIAAIT - Fundamentos y Aplicaciones de Deep Learning.pdfCEIAAIT - Fundamentos y Aplicaciones de Deep Learning.pdf
CEIAAIT - Fundamentos y Aplicaciones de Deep Learning.pdf
 
Computo en la Nube con Azure - AI Gaming Panama.pptx
Computo en la Nube con Azure - AI Gaming Panama.pptxComputo en la Nube con Azure - AI Gaming Panama.pptx
Computo en la Nube con Azure - AI Gaming Panama.pptx
 
5StarsConf - Serverless Machine Learning con Azure Functions y ML.NET .pptx
5StarsConf - Serverless Machine Learning con Azure Functions y ML.NET .pptx5StarsConf - Serverless Machine Learning con Azure Functions y ML.NET .pptx
5StarsConf - Serverless Machine Learning con Azure Functions y ML.NET .pptx
 
ACW - Azure Speaker Recognition Biometria de Voz.pptx
ACW - Azure Speaker Recognition Biometria de Voz.pptxACW - Azure Speaker Recognition Biometria de Voz.pptx
ACW - Azure Speaker Recognition Biometria de Voz.pptx
 
UNICABA - Azure Machine Learning.pptx
UNICABA - Azure Machine Learning.pptxUNICABA - Azure Machine Learning.pptx
UNICABA - Azure Machine Learning.pptx
 
Azure Talks Bolivia - Aumente la confiabilidad de su negocio con Azure Anomal...
Azure Talks Bolivia - Aumente la confiabilidad de su negocio con Azure Anomal...Azure Talks Bolivia - Aumente la confiabilidad de su negocio con Azure Anomal...
Azure Talks Bolivia - Aumente la confiabilidad de su negocio con Azure Anomal...
 
Latino NET - Integrando WhatsApp en nuestras apps .NET con Twilio.pptx
Latino NET - Integrando WhatsApp en nuestras apps .NET con Twilio.pptxLatino NET - Integrando WhatsApp en nuestras apps .NET con Twilio.pptx
Latino NET - Integrando WhatsApp en nuestras apps .NET con Twilio.pptx
 
NOVA - Enriquecimiento de IA con Azure Cognitive Search.pptx
NOVA - Enriquecimiento de IA con Azure Cognitive Search.pptxNOVA - Enriquecimiento de IA con Azure Cognitive Search.pptx
NOVA - Enriquecimiento de IA con Azure Cognitive Search.pptx
 
Netcoreconf 2021 Realidad mixta en apps móviles con Azure Spatial Anchors y ...
Netcoreconf 2021 Realidad mixta en apps móviles con Azure Spatial Anchors y ...Netcoreconf 2021 Realidad mixta en apps móviles con Azure Spatial Anchors y ...
Netcoreconf 2021 Realidad mixta en apps móviles con Azure Spatial Anchors y ...
 
ATG Puebla - El cementerio de Microsoft.pptx
ATG Puebla - El cementerio de Microsoft.pptxATG Puebla - El cementerio de Microsoft.pptx
ATG Puebla - El cementerio de Microsoft.pptx
 
Data-Saturday-10-Sofia-2021 Azure Video Indexer- Advanced data extraction fro...
Data-Saturday-10-Sofia-2021 Azure Video Indexer- Advanced data extraction fro...Data-Saturday-10-Sofia-2021 Azure Video Indexer- Advanced data extraction fro...
Data-Saturday-10-Sofia-2021 Azure Video Indexer- Advanced data extraction fro...
 
Azure Community Conference - Image Recognition in WhatsApp chatbot with Azure...
Azure Community Conference - Image Recognition in WhatsApp chatbot with Azure...Azure Community Conference - Image Recognition in WhatsApp chatbot with Azure...
Azure Community Conference - Image Recognition in WhatsApp chatbot with Azure...
 
Real NET Docs Show - Serverless Machine Learning v3.pptx
Real NET Docs Show - Serverless Machine Learning v3.pptxReal NET Docs Show - Serverless Machine Learning v3.pptx
Real NET Docs Show - Serverless Machine Learning v3.pptx
 
Sesion 5 - Eficiencia del Rendimiento - Well Architected Backstage Tour.pptx
Sesion 5 - Eficiencia del Rendimiento - Well Architected Backstage Tour.pptxSesion 5 - Eficiencia del Rendimiento - Well Architected Backstage Tour.pptx
Sesion 5 - Eficiencia del Rendimiento - Well Architected Backstage Tour.pptx
 
XamarinExpertDay - Creating PDF files in mobile apps with PdfSharpCore and Mi...
XamarinExpertDay - Creating PDF files in mobile apps with PdfSharpCore and Mi...XamarinExpertDay - Creating PDF files in mobile apps with PdfSharpCore and Mi...
XamarinExpertDay - Creating PDF files in mobile apps with PdfSharpCore and Mi...
 
Latam Space Week - Clasificación de rocas espaciales por medio de IA.pptx
Latam Space Week - Clasificación de rocas espaciales por medio de IA.pptxLatam Space Week - Clasificación de rocas espaciales por medio de IA.pptx
Latam Space Week - Clasificación de rocas espaciales por medio de IA.pptx
 

Último

Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...AlanCedillo9
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 

Último (19)

Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 

Desarrollo multiplataforma con Xamarin

  • 1.
  • 2. Luis Beltrán • Investigador/estudiante en Tomas Bata University in Zlín, República Checa • Docente en Tecnologico Nacional de Mexico en Celaya, Mexico • Microsoft MVP en IA y Tecnologías de Desarrollador luis@luisbeltran.mx @darkicebeam
  • 3. Nuevos retos Más dispositivos Plataformas emergentes Datos e Inteligencia
  • 4. Enfoque tradicional de desarrollo (SILO) Tradicionalmente, las aplicaciones tienen bases de código separadas escritas en su lenguaje nativo, construidas usando herramientas nativas e incorporando características específicas de plataforma
  • 5. Ventajas Las aplicaciones tradicionales siguen las guías de experiencia de usuario de cada plataforma: estilo de navegación, diseño de interfaces, configuraciones, etc. Los usuarios saben qué esperar y cómo utilizar una app de forma natural.
  • 6. Desventajas El desarrollo tradicional de apps toma más tiempo, requiere múltiples equipos, múltiples entornos de desarrollo y no se puede compartir código.
  • 7. Tecnologías cross-platform “cross-platform”: Tecnología que permite escribir lógica de negocios y crear interfaces de usuario bajo un framework de trabajo común para construir aplicaciones para iOS, Android y posiblemente Windows. “Write once, run anywhere”
  • 9. Recomendaciones • Elige la tecnología cross-platform que más se ajuste a tus necesidades, stack, conocimientos, reutilización de código. • No elijas cross-platform si el equipo de desarrollo (colaboradores) no tiene los conocimientos requeridos. • Entender que cross-platform no es ideal para todos los escenarios. • Pon atención especial a tu proveedor de servicios. • Experimenta cada plataforma de primera mano.
  • 10. Consideraciones Cross-platform NO sustituye el aprendizaje de los patrones de cada plataforma Cross-platform NO es la solución para todo. Ciertos aspectos deben seguirse gestionando: Acceso offline Permisos Almacenamiento
  • 11. .NET: La plataforma para construir lo que necesites Desktop Web Cloud Mobile Gaming IoT AI .NET
  • 12. Xamarin Una plataforma de aplicaciones open source de Microsoft para construir apps iOS, Android, macOS, Windows, watchOS, & tvOS modernas y de alto rendimiento con .NET.
  • 13. Xamarin.Forms Un framework mobile para UI open source de Microsoft para construir apps iOS, Android & Windows con .NET a partir de una base única de código compartido.
  • 14. Xamarin + Xamarin.Forms Xamarin.Forms Enfoque Tradicional iOS C# UI Windows C# UI Android C# UI Lógica de C# (Shared) Lógica de C# (Shared) Xamarin.Forms Base de código compartido • Acceso 100% a APIs nativos • Alto desempeño
  • 15. Xamarin.iOS MapKit UIKit SiriKit ARKit CoreML System.Data System.Windows System.Numerics System.Core System.ServiceModel System.Net System System.IO System.Linq System.Xml C# Todo lo que puedes hacer en Swift y Objective-C para iOS, lo puedes programar con Xamarin usando C# API cubierto al 100% con el beneficio adicional de las APIs de .NET
  • 16. Xamarin.Android Fingerprint Bluetooth Picture-in-Picture Geolocation NFC System.Data System.Windows System.Numerics System.Core System.ServiceModel System.Net System System.IO System.Linq System.Xml C# Todo lo que puedes hacer en Android y Kotlin para Android, lo puedes programar con Xamarin usando C# API cubierto al 100% con el beneficio adicional de las APIs de .NET
  • 17. APIs de Windows Windows.Media Windows.Networking Windows.Storage Windows.Foundation Windows.Devices System.Data System.Windows System.Numerics System.Core System.ServiceModel System.Net System System.IO System.Linq System.Xml C# Las apps de Windows son construidas en C# usando las APIs nativas
  • 18. Xamarin.Forms Xamarin.Forms permite compartir todavía más elementos que en Xamarin Tradicional, dado que existe una definición de UI común. Esto significa que puedes construir interfaces de usuario nativas para Android, iOS y Windows a partir de una base única de código compartido.
  • 19. Herramientas Utilizas Visual Studio (for Windows/Mac), C# + XAML y las bibliotecas de .NET para construir aplicaciones de Xamarin.
  • 20.
  • 21. Prueba tus aplicaciones: Emuladores o dispositivos físicos
  • 22. Requisitos de instalación Xamarin.iOS • Equipo Mac (o acceso remoto) • Xcode • SDK de iOS Xamarin.Android • Equipo Windows 10 o Mac • SDK de Android Hardware • 8 GB de RAM (mínimo) • Soporte a virtualización (en caso de usar emuladores) • Procesador Core i5 (mínimo) • Recomendable disco SSD
  • 23. Estructura de una solución Xamarin.Forms
  • 24. Creando la UI de la app La Interfaz de Usuario (UI) de la aplicación está definida en términos de páginas (Pages) y vistas (Views). Views son los controles de UI con los que el usuario interactúa Page representa una pantalla única que se muestra en la aplicación
  • 25. Xamarin.Forms Pages Page es una clase abstracta utilizada para definir una pantalla única de contenido. Content MasterDetail Navigation Tabbed Carousel
  • 26. Content Page Muestra un solo elemento en pantalla
  • 27. Xamarin.Forms Views View es la clase base para todos los controles visuales, con una gran cantidad de elementos estándar presentes.
  • 29. Label Utiliza un Label para mostrar bloques de texto de solo lectura.
  • 30. Image Permite mostrar una imagen a partir de un nombre de archivo, ruta URL, ruta física del dispositivo, recurso embebido o stream. <Image Source="waterfront.jpg" />
  • 32. CollectionView • CollectionView es una vista flexible y eficaz para presentar listas de datos que tienen especificaciones de diseño diferentes. • Un CollectionView se rellena con datos estableciendo el valor de la propiedad ItemsSource con cualquier colección que implemente la interfaz IEnumerable. • La apariencia de cada elemento de la lista se define asignando un DataTemplate al ItemTemplate.
  • 33. <CollectionView ItemsSource="{Binding Monkeys}"> <CollectionView.ItemTemplate> <DataTemplate> <Grid Padding="10"> <Grid.RowDefinitions> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto" /> <ColumnDefinition Width="Auto" /> </Grid.ColumnDefinitions> <Image Grid.RowSpan="2" Source="{Binding ImageUrl}” Aspect="AspectFill" HeightRequest="60” WidthRequest="60" /> <Label Grid.Column="1" Text="{Binding Name}” FontAttributes="Bold" /> <Label Grid.Row="1" Grid.Column="1” Text="{Binding Location}" FontAttributes="Italic” VerticalOptions="End" /> </Grid> </DataTemplate> </CollectionView.ItemTemplate> ... </CollectionView>
  • 34. Acomodando la UI mediante Layouts • Los Layouts en Xamarin.Forms son contenedores que permiten dar una estructura a la UI (tamaño y posición). • Los Layouts admiten uno o más Views, conocidos como “hijos”. • En lugar de especificar posiciones con coordenadas (pixeles, dips, etc.), utilizas los contenedores de layout para controlar cómo se posicionan los views con respecto a los demás. • Esta estrategia promueve un diseño adaptable, que no se ve afectado por dimensiones y resoluciones.
  • 35.
  • 36. Grid Grid es un panel de diseño utilizado para crear renglones y columnas, donde los elementos se posicionan en celdas (indicando la columna y renglón específico), además de que pueden abarcar más de una celda (span).
  • 39. Ejemplo de interfaz de usuario en Xamarin.Forms
  • 40. Patrones de separación de presentación Son patrones y reglas utilizadas para ayudar a los desarrolladores a dividir su código en capas lógicas, diseñadas específicamente para separar el código de la interfaz de usuario del código de lógica de negocios.
  • 41. Patrones comunes de separación de presentación Elegir un patrón de presentación para tu aplicación depende de los APIs disponibles para la plataforma de desarrollo y la preferencia personal del desarrollador.
  • 42. MVVM MVVM es una variante de MVC que usa una infraestructura de enlace de datos (data binding) para conectar los controladores (aquí llamados ViewModels) a las vistas. Cada capa únicamente debería tener conocimiento directo acerca de la capa debjo de ella.
  • 43. Model El Modelo representa los datos de aplicación.
  • 44. View La Vista presenta la información al usuario por medio de una interfaz específica de plataforma.
  • 45. ViewModel El ViewModel proporciona una representación centrada en la vista de los datos a mostrar. Expone propiedades enlazables e implementa notificaciones en los cambios de las propiedades Por lo general hay un Model por cada ViewModel (relación 1:1)
  • 46. Conectando View y ViewModel Asignamos una instancia de ViewModel en el BindingContext de la View para conectar las propiedades expuestas por el ViewModel y que estén disponibles para ser usadas en la View. <ContentPage ... xmlns:local="clr- namespace:DemoApp"> <ContentPage.BindingContext> <local:MainViewModel /> </ContentPage.BindingContext> ... </ContentPage>
  • 47. Para enlazar una propiedad del ViewModel en la View, utilizamos Data Binding
  • 49.
  • 52. ¡Gracias por tu atención! https://forms.office.com/r/dLcedct6LD ¿Cómo estuvo mi presentación? Luis Beltrán about.me/luis-beltran