SlideShare una empresa de Scribd logo
1 de 24
Descargar para leer sin conexión
Xamarin
Aplicaciones Móviles Con .Net
Andrés Londoño
@andreslon
Software Architect Web/Mobile
Microsoft MVP
Microsoft Certified Professional MCP
Community leader Xamarin Medellín
Community leader Avanet
www.andreslon.com
El poder de construir
aplicaciones en todas
las plataformas
¿Por qué Xamarin?
Retos del desarrollo nativo
• Mac OS X
• XCode
• Objective-C
• Swift
• iOS SDK
• Apple Tools
• OS
• Eclipse or Android Studio
or…
• Java
• Android SDK
• SDK Tools
• Windows OS
• Visual Studio
• C#
• .NET Framework
• Windows Phone SDK
Comparaciones por plataforma
Xamarin presenta una alternativa de
desarrollo
Cross Platform Nativo con .Net
public class MyActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
Button myBtn = (Button) this.findViewById( R.id.clickMe);
myBtn.setOnClickListener( new View.OnClickListener() {
@Override
public void onClick(View view) {
AlertDialog.Builder builder = new
AlertDialog.Builder(MyActivity.this) ;
builder.setTitle( “Hola Colombia")
.setMessage("@“¿Listo para aprender?")
.setPositiveButton( "OK", new
DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface
dialogInterface, int i) {
dialogInterface.dismiss();
}}) .show();
}});
}
}
[Activity (Label = "AndroidApp", MainLauncher = true, Icon =
"@drawable/icon")]
public class MainActivity : Activity {
protected override void OnCreate (Bundle bundle)
{
base.OnCreate (bundle);
SetContentView (Resource.Layout.Main);
Button button = FindViewById<Button> (Resource.Id.me);
button.Click += delegate {
AlertDialog.Builder builder = new AlertDialog.Builder
(this );
AlertDialog dialog = null ;
builder.SetTitle ( “Hola Colombia")
.SetMessage ( "@“¿Listo para aprender?")
.SetPositiveButton( "OK" , delegate {
dialog.Dismiss(); } );
dialog = builder.Show ();
} ;
}
}
Android
@implementation MSViewController
- (void)viewDidLoad
{
[super viewDidLoad];
}
- (IBAction)OnButtonDown:(id)sender {
UIAlertView* view =
[[UIAlertView alloc]init];
[view setTitle:@“Hola Colombia"];
[view setMessage: @“¿Listo para
aprender?”];
[view addButtonWithTitle:@"OK"];
[view show];
}
@end
public partial class iOSAppViewController :
UIViewController
{
public iOSAppViewController (IntPtr handle) :
base (handle){
}
public override void ViewDidLoad (){
base.ViewDidLoad ();
}
partial void OnButtonDown (UIButton sender)
{
UIAlertView view = new UIAlertView();
view.Title = “Hola colombia" ;
view.Message = "@“¿Listo para aprender?" ;
view.AddButton ("OK");
view.Show();
}
}
iOS
Comparte
código
nativo
Xamarin también propone
compartir Interfaz de Usuario,
naciendo así:
Xamarin Forms
Xamarin + Xamarin Forms
▪ Más de 40 páginas, diseños y
controles
▪ Construir desde code behind o XAML
▪ Enlace de datos bidireccional
▪ Navegación
▪ API de Animación
▪ Servicio de Dependencia
▪ Centro de mensajes
Xamarin.Forms
Shared UI Code
Shared Components
Shared Projects
Linked Files
Linked
Files
Compiler
Directives
¿Y por qué es nativo?
Xamarin genera experiencias nativas.
Native User Interfaces Native API Access Native Performance
Pages
Layouts
Controles
Controles
Controles de terceros
Gracias!
Creado por: Andrés Londoño
www.andreslon.com

Más contenido relacionado

Similar a Desarrollo multiplataforma con Xamarin y Xamarin Forms

Sesion 11 Teoria.pdf
Sesion 11 Teoria.pdfSesion 11 Teoria.pdf
Sesion 11 Teoria.pdfDianaSullcav
 
Manual de android
Manual de androidManual de android
Manual de android481200619
 
Planteamiento de-ejercicios-2011
Planteamiento de-ejercicios-2011Planteamiento de-ejercicios-2011
Planteamiento de-ejercicios-2011Orlando Barcia
 
Aplicación móvil con acceso a datos
Aplicación móvil con acceso a datosAplicación móvil con acceso a datos
Aplicación móvil con acceso a datosSusi Perez Gallegos
 
Realidad Aumentada más allá de Glass - Droidcon 2014
Realidad Aumentada más allá de Glass - Droidcon 2014Realidad Aumentada más allá de Glass - Droidcon 2014
Realidad Aumentada más allá de Glass - Droidcon 2014Fernando Gallego
 
Plataforma moviles ernesto horna
Plataforma moviles ernesto hornaPlataforma moviles ernesto horna
Plataforma moviles ernesto hornaLuis Rengifo Torres
 
Reconnect(); Sevilla - Universal Windows Platform
Reconnect(); Sevilla - Universal Windows PlatformReconnect(); Sevilla - Universal Windows Platform
Reconnect(); Sevilla - Universal Windows PlatformJavier Suárez Ruiz
 
Tv Future is Apps - tvOS vs AndroidTV
Tv Future is Apps - tvOS vs AndroidTVTv Future is Apps - tvOS vs AndroidTV
Tv Future is Apps - tvOS vs AndroidTVPablo Azaña Sánchez
 
WinObjC: Windows Bridge para iOS
WinObjC: Windows Bridge para iOSWinObjC: Windows Bridge para iOS
WinObjC: Windows Bridge para iOSJavier Suárez Ruiz
 
Trucos y consejos rendimiento Xamarin.Forms
Trucos y consejos rendimiento Xamarin.FormsTrucos y consejos rendimiento Xamarin.Forms
Trucos y consejos rendimiento Xamarin.FormsJavier Suárez Ruiz
 

Similar a Desarrollo multiplataforma con Xamarin y Xamarin Forms (20)

Manual marichuy
Manual marichuyManual marichuy
Manual marichuy
 
Manual marichuy
Manual marichuyManual marichuy
Manual marichuy
 
Sesion 11 Teoria.pdf
Sesion 11 Teoria.pdfSesion 11 Teoria.pdf
Sesion 11 Teoria.pdf
 
Un atlas en la palma de la mano
Un atlas en la palma de la manoUn atlas en la palma de la mano
Un atlas en la palma de la mano
 
Gwt III - Avanzado
Gwt III - AvanzadoGwt III - Avanzado
Gwt III - Avanzado
 
Manual de android
Manual de androidManual de android
Manual de android
 
DotNetDom: El futuro de Xamarin
DotNetDom: El futuro de XamarinDotNetDom: El futuro de Xamarin
DotNetDom: El futuro de Xamarin
 
Planteamiento de-ejercicios-2011
Planteamiento de-ejercicios-2011Planteamiento de-ejercicios-2011
Planteamiento de-ejercicios-2011
 
Aplicación móvil con acceso a datos
Aplicación móvil con acceso a datosAplicación móvil con acceso a datos
Aplicación móvil con acceso a datos
 
Realidad Aumentada más allá de Glass - Droidcon 2014
Realidad Aumentada más allá de Glass - Droidcon 2014Realidad Aumentada más allá de Glass - Droidcon 2014
Realidad Aumentada más allá de Glass - Droidcon 2014
 
Plataforma moviles ernesto horna
Plataforma moviles ernesto hornaPlataforma moviles ernesto horna
Plataforma moviles ernesto horna
 
Reconnect(); Sevilla - Universal Windows Platform
Reconnect(); Sevilla - Universal Windows PlatformReconnect(); Sevilla - Universal Windows Platform
Reconnect(); Sevilla - Universal Windows Platform
 
Tv Future is Apps - tvOS vs AndroidTV
Tv Future is Apps - tvOS vs AndroidTVTv Future is Apps - tvOS vs AndroidTV
Tv Future is Apps - tvOS vs AndroidTV
 
Manual marichuy
Manual marichuyManual marichuy
Manual marichuy
 
Manual marichuy
Manual marichuyManual marichuy
Manual marichuy
 
Manual marichuy
Manual marichuyManual marichuy
Manual marichuy
 
Xamarin Forms y MVVM
Xamarin Forms y MVVMXamarin Forms y MVVM
Xamarin Forms y MVVM
 
WinObjC: Windows Bridge para iOS
WinObjC: Windows Bridge para iOSWinObjC: Windows Bridge para iOS
WinObjC: Windows Bridge para iOS
 
Introduccion a Android
Introduccion a AndroidIntroduccion a Android
Introduccion a Android
 
Trucos y consejos rendimiento Xamarin.Forms
Trucos y consejos rendimiento Xamarin.FormsTrucos y consejos rendimiento Xamarin.Forms
Trucos y consejos rendimiento Xamarin.Forms
 

Más de Andrés Londoño

Software Architecture - Neobit Consulting
Software Architecture - Neobit ConsultingSoftware Architecture - Neobit Consulting
Software Architecture - Neobit ConsultingAndrés Londoño
 
Arquitectura de software y otros demonios
Arquitectura de software y otros demoniosArquitectura de software y otros demonios
Arquitectura de software y otros demoniosAndrés Londoño
 
Docker Containers | Talent Week/Team International
Docker Containers | Talent Week/Team InternationalDocker Containers | Talent Week/Team International
Docker Containers | Talent Week/Team InternationalAndrés Londoño
 
Secure Development, Seguridad al Codificar
Secure Development, Seguridad al CodificarSecure Development, Seguridad al Codificar
Secure Development, Seguridad al CodificarAndrés Londoño
 
Microservicios, sin morir en el intento
Microservicios, sin morir en el intentoMicroservicios, sin morir en el intento
Microservicios, sin morir en el intentoAndrés Londoño
 
Net Core + Docker + Kubernetes + Azure Devops
Net Core + Docker + Kubernetes + Azure DevopsNet Core + Docker + Kubernetes + Azure Devops
Net Core + Docker + Kubernetes + Azure DevopsAndrés Londoño
 
Xamarin y DevOps #NetConfCO2017
Xamarin y DevOps #NetConfCO2017Xamarin y DevOps #NetConfCO2017
Xamarin y DevOps #NetConfCO2017Andrés Londoño
 
Nanoservicios para aplicaciones móviles - Global azure boot camp 2017
Nanoservicios para aplicaciones móviles - Global azure boot camp 2017Nanoservicios para aplicaciones móviles - Global azure boot camp 2017
Nanoservicios para aplicaciones móviles - Global azure boot camp 2017Andrés Londoño
 
Interfaces humanas con kinect
Interfaces humanas con kinectInterfaces humanas con kinect
Interfaces humanas con kinectAndrés Londoño
 
NoSQL bases de datos no relacionales
NoSQL bases de datos no relacionalesNoSQL bases de datos no relacionales
NoSQL bases de datos no relacionalesAndrés Londoño
 
Responsive Design html day
Responsive Design html dayResponsive Design html day
Responsive Design html dayAndrés Londoño
 
Liderar equipos de trabajo
Liderar equipos de trabajoLiderar equipos de trabajo
Liderar equipos de trabajoAndrés Londoño
 

Más de Andrés Londoño (20)

Software Architecture - Neobit Consulting
Software Architecture - Neobit ConsultingSoftware Architecture - Neobit Consulting
Software Architecture - Neobit Consulting
 
Arquitectura de software y otros demonios
Arquitectura de software y otros demoniosArquitectura de software y otros demonios
Arquitectura de software y otros demonios
 
Docker Containers | Talent Week/Team International
Docker Containers | Talent Week/Team InternationalDocker Containers | Talent Week/Team International
Docker Containers | Talent Week/Team International
 
Kubernetes for beginners
Kubernetes for beginnersKubernetes for beginners
Kubernetes for beginners
 
Secure Development, Seguridad al Codificar
Secure Development, Seguridad al CodificarSecure Development, Seguridad al Codificar
Secure Development, Seguridad al Codificar
 
Microservicios, sin morir en el intento
Microservicios, sin morir en el intentoMicroservicios, sin morir en el intento
Microservicios, sin morir en el intento
 
Xamarin iOS
Xamarin iOSXamarin iOS
Xamarin iOS
 
Xamarin + IoT
Xamarin + IoTXamarin + IoT
Xamarin + IoT
 
Net Core + Docker + Kubernetes + Azure Devops
Net Core + Docker + Kubernetes + Azure DevopsNet Core + Docker + Kubernetes + Azure Devops
Net Core + Docker + Kubernetes + Azure Devops
 
Azure y DevOps
Azure y DevOpsAzure y DevOps
Azure y DevOps
 
Xamarin y DevOps #NetConfCO2017
Xamarin y DevOps #NetConfCO2017Xamarin y DevOps #NetConfCO2017
Xamarin y DevOps #NetConfCO2017
 
Nanoservicios para aplicaciones móviles - Global azure boot camp 2017
Nanoservicios para aplicaciones móviles - Global azure boot camp 2017Nanoservicios para aplicaciones móviles - Global azure boot camp 2017
Nanoservicios para aplicaciones móviles - Global azure boot camp 2017
 
Xamarin forms Xaml + C#
Xamarin forms Xaml + C#Xamarin forms Xaml + C#
Xamarin forms Xaml + C#
 
Windows 10 universal apps
Windows 10 universal appsWindows 10 universal apps
Windows 10 universal apps
 
Web Apps Azure
Web Apps AzureWeb Apps Azure
Web Apps Azure
 
Interfaces humanas con kinect
Interfaces humanas con kinectInterfaces humanas con kinect
Interfaces humanas con kinect
 
NoSQL bases de datos no relacionales
NoSQL bases de datos no relacionalesNoSQL bases de datos no relacionales
NoSQL bases de datos no relacionales
 
Apps web vs apps nativas
Apps web vs apps nativasApps web vs apps nativas
Apps web vs apps nativas
 
Responsive Design html day
Responsive Design html dayResponsive Design html day
Responsive Design html day
 
Liderar equipos de trabajo
Liderar equipos de trabajoLiderar equipos de trabajo
Liderar equipos de trabajo
 

Desarrollo multiplataforma con Xamarin y Xamarin Forms

  • 2. Andrés Londoño @andreslon Software Architect Web/Mobile Microsoft MVP Microsoft Certified Professional MCP Community leader Xamarin Medellín Community leader Avanet www.andreslon.com
  • 3. El poder de construir aplicaciones en todas las plataformas
  • 5. Retos del desarrollo nativo • Mac OS X • XCode • Objective-C • Swift • iOS SDK • Apple Tools • OS • Eclipse or Android Studio or… • Java • Android SDK • SDK Tools • Windows OS • Visual Studio • C# • .NET Framework • Windows Phone SDK
  • 7. Xamarin presenta una alternativa de desarrollo Cross Platform Nativo con .Net
  • 8. public class MyActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { Button myBtn = (Button) this.findViewById( R.id.clickMe); myBtn.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View view) { AlertDialog.Builder builder = new AlertDialog.Builder(MyActivity.this) ; builder.setTitle( “Hola Colombia") .setMessage("@“¿Listo para aprender?") .setPositiveButton( "OK", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { dialogInterface.dismiss(); }}) .show(); }}); } } [Activity (Label = "AndroidApp", MainLauncher = true, Icon = "@drawable/icon")] public class MainActivity : Activity { protected override void OnCreate (Bundle bundle) { base.OnCreate (bundle); SetContentView (Resource.Layout.Main); Button button = FindViewById<Button> (Resource.Id.me); button.Click += delegate { AlertDialog.Builder builder = new AlertDialog.Builder (this ); AlertDialog dialog = null ; builder.SetTitle ( “Hola Colombia") .SetMessage ( "@“¿Listo para aprender?") .SetPositiveButton( "OK" , delegate { dialog.Dismiss(); } ); dialog = builder.Show (); } ; } } Android
  • 9. @implementation MSViewController - (void)viewDidLoad { [super viewDidLoad]; } - (IBAction)OnButtonDown:(id)sender { UIAlertView* view = [[UIAlertView alloc]init]; [view setTitle:@“Hola Colombia"]; [view setMessage: @“¿Listo para aprender?”]; [view addButtonWithTitle:@"OK"]; [view show]; } @end public partial class iOSAppViewController : UIViewController { public iOSAppViewController (IntPtr handle) : base (handle){ } public override void ViewDidLoad (){ base.ViewDidLoad (); } partial void OnButtonDown (UIButton sender) { UIAlertView view = new UIAlertView(); view.Title = “Hola colombia" ; view.Message = "@“¿Listo para aprender?" ; view.AddButton ("OK"); view.Show(); } } iOS
  • 11. Xamarin también propone compartir Interfaz de Usuario, naciendo así: Xamarin Forms
  • 13. ▪ Más de 40 páginas, diseños y controles ▪ Construir desde code behind o XAML ▪ Enlace de datos bidireccional ▪ Navegación ▪ API de Animación ▪ Servicio de Dependencia ▪ Centro de mensajes Xamarin.Forms Shared UI Code
  • 14.
  • 18. ¿Y por qué es nativo? Xamarin genera experiencias nativas. Native User Interfaces Native API Access Native Performance
  • 19. Pages
  • 24. Gracias! Creado por: Andrés Londoño www.andreslon.com