introducción al desarrollo de aplicaciones xamarin
TRANSCRIPT
XamarinIntroducción al Desarrollo móvil Cross Platform con Xamarin
Javier Suárez Ruiz
Javier Suárez RuizDeveloper at Plain Concepts
Microsoft MVP
• Blog: http://geeks.ms/blogs/jsuarez• Email: [email protected]• Twitter: @jsuarezruiz
Agenda• ¿Qué es Xamarin?• ¿Y por qué Xamarin?• ¿Cómo funciona?• Plugins• Preguntas y Respuestas
¿Qué es Xamarin?
Xamarin – Solución completa para el Desarrollo móvil
Develop Testear Build Distribuir Monitorear
Código nativoiOS WindowsAndroid
Objective-CXcode
C#Visual Studio
JavaAndroid Studio
No se comparte código • Diferentes lenguajes & entornos de desarrollo • Diferentes equipos
Escribe una vez, corre en todos
App Generator
LuaJavascript
ActionscriptHTML+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/MonoCoreCLRAzure
Shared C# Client/Server
Demo Primeras AppsHola Mundo!
¿Y por qué Xamarin?
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
Open Source• Xamarin.iOS• Xamarin.Mac• Xamarin.Android• Xamarin.Forms• Bindings & Plugins
• Cómo arrancar• Guías de contribución
C# mola
Y lo sabes!
C# molaLINQ
XML
Gestión de eventos y delegados
Async/Await
Código más simple, mantenimiento
Android ItemClick, ¿ves diferencias? C# con XamarinJava
C# & Async con Xamarin
¿Cómo funciona es Xamarin?
Windows APIsMicrosoft.Phone Microsoft.Networking Windows.Storage Windows.Foundation Microsoft.Devices
System.Data System.Windows System.Numerics System.Core System.ServiceModel
System.Net System System.IO System.Linq System.Xml
iOS – Acceso al 100% de las APIs
MapKit UIKit iBeacon CoreGraphics CoreMotion
System.Data System.Windows System.Numerics System.Core System.ServiceModel
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.ServiceModel
System.Net System System.IO System.Linq System.Xml
La clave, compartir código
1 libreríaMúltiples PlatformasIncluidas:Xamarin.iOS y Xamarin.Android
Portable Class Libraries
Estadísticas de código compartido
Mac
iOS
Android
Windows Phone
iCircuit Touch Draw
86%
14%
72%
28%
70%
30%
61%
39%
88%
12%
76%
24%
90%
10%
Demo Compartir códigoMVVM y uso de servicios
La comunidad
Plugins
Shared C# Backend
Código específico de plataforma¿Qué ocurre si necesitamos accede a características específicas de la plataforma?
UI+APIs UI + APIsUI + APIs
BateríaGPSLámparaNotificationesSettingsText To Speech
BateríaGPSLámparaNotificationesSettingsText To Speech
BateríaGPSLámparaNotificationesSettingsText To Speech
TextToSpeech
Speak(“Hello World”);
AVSpeechSynthesizer SpeechSynthesizer
PluginsXamarin
Common API
github.com/xamarin/plugins
Crear y consumir pluginsAccediendo a la plataforma
App “real”Mapas, cámara, navegación, diálogos, servicio web, ¿suena bien?
Q&A
Braulio DíezFreelancer formacion.lemoncode.net
Javier SuárezPlain Concepts
Carlos Fernández
Plain Concepts