SlideShare una empresa de Scribd logo
1 de 27
Yeray Julian - @josueyeray
Rafa Serna - @rafasermed
XAMARIN FORMS
Y
A
X B
Antes… larga vida y prosperidad!
Xamarin.Forms – Y esto que leches es?
iOS
Android
Windows Phone
Construir interfaces nativas para iOS, Android y Windows Phone desde una única
base de código C# compartida.
Xamarin.Forms – Y esto que leches es?
Construir interfaces nativas para iOS, Android y Windows Phone desde una única
base de código C# compartida.
4
XAMARIN
XAMARIN.FORMS
Android 4.0+ Windows Phone 8.0iOS 6.1+ Windows Phone 8.0 (Silverlight)
Xamarin.Forms – Páginas
Elemento Visual (contenedor), primario.
5
Content MasterDetail Navigation Tabbed Carousel
• Android: Activity
• iOS: View Controller
• Windows Phone: Page
Xamarin.Forms – Páginas
Elemento Visual (contenedor), primario.
6
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="SampleApp.Page1">
......
......
......
</ContentPage> XAML
Xamarin.Forms – Páginas
Elemento Visual (contenedor), primario.
7
MainPage = new ContentPage
{
Content = ……
………
………
};
C#
Xamarin.Forms – Layouts 8
Stack Absolute Relative Grid ContentView ScrollView Frame
Elemento contenedor de controles de interfaz de usuario en estructuras lógicas.
Xamarin.Forms – Layouts 9
Elemento contenedor de controles de interfaz de usuario en estructuras lógicas.
<ContentPage.Content>
<StackLayout HorizontalOptions="StartAndExpand"
Orientation=“Vertical">
.....
.....
.....
</StackLayout>
</ContentPage.Content>
XAML
Xamarin.Forms – Layouts
1
0
Elemento contenedor de controles de interfaz de usuario en estructuras lógicas.
MainPage = new ContentPage
{
Content = new StackLayout
{
VerticalOptions = LayoutOptions.Center,
Children = {
……
……
}
}
};
C#
Xamarin.Forms – Controles
Colección de objetos visuales que son representados por sus homónimos en cada
una de las plataformas.
1
1
Xamarin.Forms – Controles
Colección de objetos visuales que son representados por sus homónimos en cada
una de las plataformas.
1
2
<Label Text="{Binding MainText}" Font="Large"
VerticalOptions="Center" HorizontalOptions="Center" />
<Button Text="Click Me!“ HorizontalOptions="Center"
VerticalOptions="CenterAndExpand“
Clicked="OnButtonClicked" />
XAML
Xamarin.Forms – Controles
Colección de objetos visuales que son representados por sus homónimos en cada
una de las plataformas.
1
3
new Label {
XAlign = TextAlignment.Center,
Text = "Welcome to Xamarin Forms!"
}
new Button {
Text = "Click Me!",
Font = Font.SystemFontOfSize(NamedSize.Large),
BorderWidth = 1,
HorizontalOptions = LayoutOptions.Center,
VerticalOptions = LayoutOptions.CenterAndExpand
};
C#
Xamarin.Forms – Demo Time
1
4
Xamarin.Forms – Converters
Implemetar el Interfaz IValueConverter
1
5
class DoubleToIntConverter : IValueConverter
{
public object Convert(object value, Type targetType,
object parameter, CultureInfo culture)
{
double multiplier;
if (!Double.TryParse(parameter as string, out multiplier))
multiplier = 1;
return (int)Math.Round(multiplier * (double)value);
}
public object ConvertBack(object value, Type targetType,
object parameter, CultureInfo culture)
{
}
}
Xamarin.Forms – Converters
Implemetar el Interfaz IValueConverter
1
6
<ContentPage.Resources>
<ResourceDictionary>
<local:DoubleToIntConverter x:Key="intConverter" />
</ResourceDictionary>
</ContentPage.Resources>
<Label Text="{Binding Color.R,
Converter={StaticResource intConverter},
ConverterParameter=255,
StringFormat='R={0:X2}'}" />
CONVERTERS – Demo Time 1
7
Xamarin.Forms – Animaciones 1
8
FadeTo
LayoutTo
ScaleTo
TranslateTo
RotateTo
RotateXTo
RotateYTo
RelRotateTo
RelScaleTo
Xamarin.Forms – Animaciones 1
9
Element.FadeTo(opacity, duration, easing):
Element.LayoutTo(rectangle, duration, easing);
Element.RotateTo(rotation, duration, easing);
Element.ScaleTo(scale, duration, easing);
Element.TranslateTo(X, Y, duration, easing);
Easing:
.BounceIn
.BounceOut
.CubicIn
.CubicInOut
.CubicOut
.Linear
.SinIn
.SinInOut
.SinOut
.SpringIn
.SpringOut
Xamarin.Forms –Triggers
Implementar TriggerAction<Entry>
2
0
<Style.Triggers>
<Trigger Property="Entry.IsFocused" Value="True" TargetType="Entry">
<Setter Property="Entry.TextColor" Value="Red" />
</Trigger>
</Style.Triggers>
<StackLayout Orientation="Horizontal">
<Label Text="Your age: " />
<Entry TextColor="Black“ Placeholder="Age" />
</StackLayout>
Xamarin.Forms – Event Triggers
Cuando esta propiedad tiene ese valor, a continuación, establece esta otra
propiedad con este nuevo valor.
2
1
public class EntryValidation : TriggerAction<Entry>
{
protected override void Invoke(Entry sender)
{
int parsed;
bool valid = int.TryParse(sender.Text, out parsed);
if (!valid) {
sender.TextColor = Color.Red;
}
else {
sender.TextColor = Color.Blue;
}
}
} <Entry TextColor="Black“ Placeholder="Age">
<Entry.Triggers>
<EventTrigger Event="TextChanged">
<local:EntryValidation />
</EventTrigger>
</Entry.Triggers>
</Entry>
Xamarin.Forms – Behaviors
Implementar Behavior<T>
2
2
public class ChangeColorButtonBehavior : Behavior<Button>
{
protected override void OnAttachedTo(Button bindable)
{
bindable.Clicked += ButtonClicked;
base.OnAttachedTo(bindable);
}
protected override void OnDetachingFrom(Button bindable)
{
bindable.Clicked -= ButtonClicked;
base.OnDetachingFrom(bindable);
}
private void ButtonClicked(object sender, EventArgs e)
{
var button = sender as Button;
button.BackgroundColor = button.BackgroundColor != Color.Blue ?
Color.Blue : Color.Red;
}
}
Xamarin.Forms – Behaviors
Implementar Behavior<T>
2
3
<Button Text="Click to chance color!">
<Button.Behaviors>
<behaviors:ChangeColorButtonBehavior />
</Button.Behaviors>
</Button>
<Button Text="Click to do nothing!" />
BEHAVIORS y TRIGGERS – Demo Time 2
4
PREGUNTAS?
Habla ahora o no tendrás
monito!!!
?
Yeray Julian - @josueyeray
Rafa Serna - @rafasermed
¡¡¡Si te ha gustado no olvides
rellenar la encuesta!!!
Thanks
Y
A
X B

Más contenido relacionado

La actualidad más candente

Arquitectura xamarin - Nuestra primera app
Arquitectura xamarin - Nuestra primera appArquitectura xamarin - Nuestra primera app
Arquitectura xamarin - Nuestra primera appBorja García Cueto
 
Introducción al desarrollo de aplicaciones Xamarin
Introducción al desarrollo de aplicaciones XamarinIntroducción al desarrollo de aplicaciones Xamarin
Introducción al desarrollo de aplicaciones XamarinJavier Suárez Ruiz
 
Integración Continua con Apps Xamarin
Integración Continua con Apps XamarinIntegración Continua con Apps Xamarin
Integración Continua con Apps XamarinJavier Suárez Ruiz
 
PUE DAY 2017: Introducción a Xamarin
PUE DAY 2017: Introducción a XamarinPUE DAY 2017: Introducción a Xamarin
PUE DAY 2017: Introducción a XamarinJavier Suárez Ruiz
 
Conociendo el resto de ecosistema Xamarin
Conociendo el resto de ecosistema XamarinConociendo el resto de ecosistema Xamarin
Conociendo el resto de ecosistema XamarinJavier Suárez Ruiz
 
Desarrollo Xamarin, más allá del desarrollo
Desarrollo Xamarin, más allá del desarrolloDesarrollo Xamarin, más allá del desarrollo
Desarrollo Xamarin, más allá del desarrolloJavier Suárez Ruiz
 
Crear Apps Multiplataforma compartiendo la mayor cantidad con Xamarin
Crear Apps Multiplataforma compartiendo la mayor cantidad con XamarinCrear Apps Multiplataforma compartiendo la mayor cantidad con Xamarin
Crear Apps Multiplataforma compartiendo la mayor cantidad con XamarinJavier Suárez Ruiz
 
WinObjC: Windows Bridge para iOS
WinObjC: Windows Bridge para iOSWinObjC: Windows Bridge para iOS
WinObjC: Windows Bridge para iOSJavier Suárez Ruiz
 
Codemotion 2017 - Taller Xamarin
Codemotion 2017 - Taller XamarinCodemotion 2017 - Taller Xamarin
Codemotion 2017 - Taller XamarinJavier Suárez Ruiz
 
Codemotion 2015: UI Tests, Test Cloud y CI con Apps Xamarin
Codemotion 2015: UI Tests, Test Cloud y CI con Apps XamarinCodemotion 2015: UI Tests, Test Cloud y CI con Apps Xamarin
Codemotion 2015: UI Tests, Test Cloud y CI con Apps XamarinJavier Suárez Ruiz
 
OpenSouthCode 2018: Taller Xamarin
OpenSouthCode 2018: Taller XamarinOpenSouthCode 2018: Taller Xamarin
OpenSouthCode 2018: Taller XamarinJavier Suárez Ruiz
 
Monkey Conf 2019: Presente y futuro de Xamarin.Forms
Monkey Conf 2019: Presente y futuro de Xamarin.FormsMonkey Conf 2019: Presente y futuro de Xamarin.Forms
Monkey Conf 2019: Presente y futuro de Xamarin.FormsJavier Suárez Ruiz
 

La actualidad más candente (20)

Arquitectura xamarin - Nuestra primera app
Arquitectura xamarin - Nuestra primera appArquitectura xamarin - Nuestra primera app
Arquitectura xamarin - Nuestra primera app
 
Introducción al desarrollo de aplicaciones Xamarin
Introducción al desarrollo de aplicaciones XamarinIntroducción al desarrollo de aplicaciones Xamarin
Introducción al desarrollo de aplicaciones Xamarin
 
Introduccion a xamarin
Introduccion a xamarinIntroduccion a xamarin
Introduccion a xamarin
 
Servicios Xamarin
Servicios XamarinServicios Xamarin
Servicios Xamarin
 
Introducción a xamarin
Introducción a xamarinIntroducción a xamarin
Introducción a xamarin
 
Integración Continua con Apps Xamarin
Integración Continua con Apps XamarinIntegración Continua con Apps Xamarin
Integración Continua con Apps Xamarin
 
PUE DAY 2017: Introducción a Xamarin
PUE DAY 2017: Introducción a XamarinPUE DAY 2017: Introducción a Xamarin
PUE DAY 2017: Introducción a Xamarin
 
Conociendo el resto de ecosistema Xamarin
Conociendo el resto de ecosistema XamarinConociendo el resto de ecosistema Xamarin
Conociendo el resto de ecosistema Xamarin
 
Desarrollo Xamarin, más allá del desarrollo
Desarrollo Xamarin, más allá del desarrolloDesarrollo Xamarin, más allá del desarrollo
Desarrollo Xamarin, más allá del desarrollo
 
Crear Apps Multiplataforma compartiendo la mayor cantidad con Xamarin
Crear Apps Multiplataforma compartiendo la mayor cantidad con XamarinCrear Apps Multiplataforma compartiendo la mayor cantidad con Xamarin
Crear Apps Multiplataforma compartiendo la mayor cantidad con Xamarin
 
Xamarin Live Player
Xamarin Live PlayerXamarin Live Player
Xamarin Live Player
 
WinObjC: Windows Bridge para iOS
WinObjC: Windows Bridge para iOSWinObjC: Windows Bridge para iOS
WinObjC: Windows Bridge para iOS
 
Xamarin y Microsoft Azure
Xamarin y Microsoft AzureXamarin y Microsoft Azure
Xamarin y Microsoft Azure
 
Codemotion 2017 - Taller Xamarin
Codemotion 2017 - Taller XamarinCodemotion 2017 - Taller Xamarin
Codemotion 2017 - Taller Xamarin
 
Testing de Apps Xamarin
Testing de Apps XamarinTesting de Apps Xamarin
Testing de Apps Xamarin
 
Introduccion a Xamarin
Introduccion a XamarinIntroduccion a Xamarin
Introduccion a Xamarin
 
Codemotion 2015: UI Tests, Test Cloud y CI con Apps Xamarin
Codemotion 2015: UI Tests, Test Cloud y CI con Apps XamarinCodemotion 2015: UI Tests, Test Cloud y CI con Apps Xamarin
Codemotion 2015: UI Tests, Test Cloud y CI con Apps Xamarin
 
Novedades de Xamarin 4
Novedades de Xamarin 4Novedades de Xamarin 4
Novedades de Xamarin 4
 
OpenSouthCode 2018: Taller Xamarin
OpenSouthCode 2018: Taller XamarinOpenSouthCode 2018: Taller Xamarin
OpenSouthCode 2018: Taller Xamarin
 
Monkey Conf 2019: Presente y futuro de Xamarin.Forms
Monkey Conf 2019: Presente y futuro de Xamarin.FormsMonkey Conf 2019: Presente y futuro de Xamarin.Forms
Monkey Conf 2019: Presente y futuro de Xamarin.Forms
 

Destacado

#WPhoneIO Behaviors, Animaciones y VisualStates
#WPhoneIO Behaviors, Animaciones y VisualStates#WPhoneIO Behaviors, Animaciones y VisualStates
#WPhoneIO Behaviors, Animaciones y VisualStatesJavier Suárez Ruiz
 
TechDay 2015 - C# y XAML: El poder de construir aplicaciones en todas las pla...
TechDay 2015 - C# y XAML: El poder de construir aplicaciones en todas las pla...TechDay 2015 - C# y XAML: El poder de construir aplicaciones en todas las pla...
TechDay 2015 - C# y XAML: El poder de construir aplicaciones en todas las pla...Sorey García
 
Extendiendo Xamarin.Forms con Custom Renders
Extendiendo Xamarin.Forms con Custom RendersExtendiendo Xamarin.Forms con Custom Renders
Extendiendo Xamarin.Forms con Custom RendersJavier Suárez Ruiz
 
Arquitectura en Aplicaciones Xamarin
Arquitectura en Aplicaciones XamarinArquitectura en Aplicaciones Xamarin
Arquitectura en Aplicaciones XamarinJavier Suárez Ruiz
 
Introducción a Xamarin Forms con XAML
Introducción a Xamarin Forms con XAMLIntroducción a Xamarin Forms con XAML
Introducción a Xamarin Forms con XAMLSorey García
 
Xamarin University Sprint Fling 2016
Xamarin University Sprint Fling 2016Xamarin University Sprint Fling 2016
Xamarin University Sprint Fling 2016Javier Suárez Ruiz
 
Introducción a Xamarin utilizando MVVMCross
Introducción a Xamarin utilizando MVVMCrossIntroducción a Xamarin utilizando MVVMCross
Introducción a Xamarin utilizando MVVMCrossJavier Suárez Ruiz
 
NetConfUY: Maximizando la productividad del desarrollo móvil
NetConfUY: Maximizando la productividad del desarrollo móvilNetConfUY: Maximizando la productividad del desarrollo móvil
NetConfUY: Maximizando la productividad del desarrollo móvilSorey García
 

Destacado (10)

Mvvm in universal apps
Mvvm in universal appsMvvm in universal apps
Mvvm in universal apps
 
Novedades en XAML
Novedades en XAMLNovedades en XAML
Novedades en XAML
 
#WPhoneIO Behaviors, Animaciones y VisualStates
#WPhoneIO Behaviors, Animaciones y VisualStates#WPhoneIO Behaviors, Animaciones y VisualStates
#WPhoneIO Behaviors, Animaciones y VisualStates
 
TechDay 2015 - C# y XAML: El poder de construir aplicaciones en todas las pla...
TechDay 2015 - C# y XAML: El poder de construir aplicaciones en todas las pla...TechDay 2015 - C# y XAML: El poder de construir aplicaciones en todas las pla...
TechDay 2015 - C# y XAML: El poder de construir aplicaciones en todas las pla...
 
Extendiendo Xamarin.Forms con Custom Renders
Extendiendo Xamarin.Forms con Custom RendersExtendiendo Xamarin.Forms con Custom Renders
Extendiendo Xamarin.Forms con Custom Renders
 
Arquitectura en Aplicaciones Xamarin
Arquitectura en Aplicaciones XamarinArquitectura en Aplicaciones Xamarin
Arquitectura en Aplicaciones Xamarin
 
Introducción a Xamarin Forms con XAML
Introducción a Xamarin Forms con XAMLIntroducción a Xamarin Forms con XAML
Introducción a Xamarin Forms con XAML
 
Xamarin University Sprint Fling 2016
Xamarin University Sprint Fling 2016Xamarin University Sprint Fling 2016
Xamarin University Sprint Fling 2016
 
Introducción a Xamarin utilizando MVVMCross
Introducción a Xamarin utilizando MVVMCrossIntroducción a Xamarin utilizando MVVMCross
Introducción a Xamarin utilizando MVVMCross
 
NetConfUY: Maximizando la productividad del desarrollo móvil
NetConfUY: Maximizando la productividad del desarrollo móvilNetConfUY: Maximizando la productividad del desarrollo móvil
NetConfUY: Maximizando la productividad del desarrollo móvil
 

Similar a Xamarin Forms - Construir interfaces nativas para iOS, Android y Windows Phone desde una única base de código C# compartida

Una vuelta por xamarin - .NET Conf CL 2018
Una vuelta por xamarin - .NET Conf CL 2018Una vuelta por xamarin - .NET Conf CL 2018
Una vuelta por xamarin - .NET Conf CL 2018Esteban Yañez
 
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
 
Semana 02 Aplicacion Movil.pptx
Semana 02 Aplicacion Movil.pptxSemana 02 Aplicacion Movil.pptx
Semana 02 Aplicacion Movil.pptxErickCarlos14
 
Adaptando Apps Xamarin.Forms a tabletas
Adaptando Apps Xamarin.Forms a tabletasAdaptando Apps Xamarin.Forms a tabletas
Adaptando Apps Xamarin.Forms a tabletasJavier Suárez Ruiz
 
Introduccion-a-Xamarin-y-Xamarin.Forms_1.pdf
Introduccion-a-Xamarin-y-Xamarin.Forms_1.pdfIntroduccion-a-Xamarin-y-Xamarin.Forms_1.pdf
Introduccion-a-Xamarin-y-Xamarin.Forms_1.pdfEliasChoque14
 
Tech Club Asturias: Un vistazo al presente y futuro de Xamarin.Forms
Tech Club Asturias: Un vistazo al presente y futuro de Xamarin.FormsTech Club Asturias: Un vistazo al presente y futuro de Xamarin.Forms
Tech Club Asturias: Un vistazo al presente y futuro de Xamarin.FormsJavier Suárez Ruiz
 
Plain Concepts Tech Day: Desarrollo de aplicaciones multiplataforma con Xamarin
Plain Concepts Tech Day:  Desarrollo de aplicaciones multiplataforma con XamarinPlain Concepts Tech Day:  Desarrollo de aplicaciones multiplataforma con Xamarin
Plain Concepts Tech Day: Desarrollo de aplicaciones multiplataforma con XamarinJavier Suárez Ruiz
 
Desarrollando apps multi plataformas con xamarin forms
Desarrollando apps multi plataformas con xamarin formsDesarrollando apps multi plataformas con xamarin forms
Desarrollando apps multi plataformas con xamarin formsCharlin Agramonte
 
Xamarin Dev Days Madrid - Taller Xamarin
Xamarin Dev Days Madrid - Taller XamarinXamarin Dev Days Madrid - Taller Xamarin
Xamarin Dev Days Madrid - Taller XamarinJavier Suárez Ruiz
 
Prepara tus apps de SharePoint y Office 365 para el futuro
Prepara tus apps de SharePoint y Office 365 para el futuroPrepara tus apps de SharePoint y Office 365 para el futuro
Prepara tus apps de SharePoint y Office 365 para el futuroMiguel Tabera
 
6- Unidad 1: Introducción a la Plataforma .NET-1.3. Aplicaciones en C# .net (...
6- Unidad 1: Introducción a la Plataforma .NET-1.3. Aplicaciones en C# .net (...6- Unidad 1: Introducción a la Plataforma .NET-1.3. Aplicaciones en C# .net (...
6- Unidad 1: Introducción a la Plataforma .NET-1.3. Aplicaciones en C# .net (...Luis Fernando Aguas Bucheli
 
Introducción al desarrollo de aplicaciones en xamarin
Introducción al desarrollo de aplicaciones en xamarinIntroducción al desarrollo de aplicaciones en xamarin
Introducción al desarrollo de aplicaciones en xamarinSebastián Leonardo Pérez
 
Como desarrollar aplicaciones moviles, que debemos tener en cuenta?
Como desarrollar aplicaciones moviles, que debemos tener en cuenta?Como desarrollar aplicaciones moviles, que debemos tener en cuenta?
Como desarrollar aplicaciones moviles, que debemos tener en cuenta?Roberto Taborda
 

Similar a Xamarin Forms - Construir interfaces nativas para iOS, Android y Windows Phone desde una única base de código C# compartida (20)

Introducción a Xamarin.Forms
Introducción a Xamarin.FormsIntroducción a Xamarin.Forms
Introducción a Xamarin.Forms
 
Una vuelta por xamarin - .NET Conf CL 2018
Una vuelta por xamarin - .NET Conf CL 2018Una vuelta por xamarin - .NET Conf CL 2018
Una vuelta por xamarin - .NET Conf CL 2018
 
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...
 
Semana 02 Aplicacion Movil.pptx
Semana 02 Aplicacion Movil.pptxSemana 02 Aplicacion Movil.pptx
Semana 02 Aplicacion Movil.pptx
 
Adaptando Apps Xamarin.Forms a tabletas
Adaptando Apps Xamarin.Forms a tabletasAdaptando Apps Xamarin.Forms a tabletas
Adaptando Apps Xamarin.Forms a tabletas
 
primera aplicacion Xamarin.pptx
primera aplicacion Xamarin.pptxprimera aplicacion Xamarin.pptx
primera aplicacion Xamarin.pptx
 
Taller Xamarin Monkey Conf 2018
Taller Xamarin Monkey Conf 2018Taller Xamarin Monkey Conf 2018
Taller Xamarin Monkey Conf 2018
 
Introduccion-a-Xamarin-y-Xamarin.Forms_1.pdf
Introduccion-a-Xamarin-y-Xamarin.Forms_1.pdfIntroduccion-a-Xamarin-y-Xamarin.Forms_1.pdf
Introduccion-a-Xamarin-y-Xamarin.Forms_1.pdf
 
Tech Club Asturias: Un vistazo al presente y futuro de Xamarin.Forms
Tech Club Asturias: Un vistazo al presente y futuro de Xamarin.FormsTech Club Asturias: Un vistazo al presente y futuro de Xamarin.Forms
Tech Club Asturias: Un vistazo al presente y futuro de Xamarin.Forms
 
Plain Concepts Tech Day: Desarrollo de aplicaciones multiplataforma con Xamarin
Plain Concepts Tech Day:  Desarrollo de aplicaciones multiplataforma con XamarinPlain Concepts Tech Day:  Desarrollo de aplicaciones multiplataforma con Xamarin
Plain Concepts Tech Day: Desarrollo de aplicaciones multiplataforma con Xamarin
 
Xamarin 360
Xamarin 360Xamarin 360
Xamarin 360
 
Desarrollando apps multi plataformas con xamarin forms
Desarrollando apps multi plataformas con xamarin formsDesarrollando apps multi plataformas con xamarin forms
Desarrollando apps multi plataformas con xamarin forms
 
Xamarin Dev Days Madrid - Taller Xamarin
Xamarin Dev Days Madrid - Taller XamarinXamarin Dev Days Madrid - Taller Xamarin
Xamarin Dev Days Madrid - Taller Xamarin
 
Prepara tus apps de SharePoint y Office 365 para el futuro
Prepara tus apps de SharePoint y Office 365 para el futuroPrepara tus apps de SharePoint y Office 365 para el futuro
Prepara tus apps de SharePoint y Office 365 para el futuro
 
dotNetMálaga - Taller Xamarin
dotNetMálaga - Taller XamarindotNetMálaga - Taller Xamarin
dotNetMálaga - Taller Xamarin
 
6- Unidad 1: Introducción a la Plataforma .NET-1.3. Aplicaciones en C# .net (...
6- Unidad 1: Introducción a la Plataforma .NET-1.3. Aplicaciones en C# .net (...6- Unidad 1: Introducción a la Plataforma .NET-1.3. Aplicaciones en C# .net (...
6- Unidad 1: Introducción a la Plataforma .NET-1.3. Aplicaciones en C# .net (...
 
Introducción al desarrollo de aplicaciones en xamarin
Introducción al desarrollo de aplicaciones en xamarinIntroducción al desarrollo de aplicaciones en xamarin
Introducción al desarrollo de aplicaciones en xamarin
 
Xamarin
XamarinXamarin
Xamarin
 
Como desarrollar aplicaciones moviles, que debemos tener en cuenta?
Como desarrollar aplicaciones moviles, que debemos tener en cuenta?Como desarrollar aplicaciones moviles, que debemos tener en cuenta?
Como desarrollar aplicaciones moviles, que debemos tener en cuenta?
 
DotNetDom: El futuro de Xamarin
DotNetDom: El futuro de XamarinDotNetDom: El futuro de Xamarin
DotNetDom: El futuro de Xamarin
 

Más de Josué Yeray Julián Ferreiro

Llevando tu startup a las tres principales plataformas móviles
Llevando tu startup a las tres principales plataformas móvilesLlevando tu startup a las tres principales plataformas móviles
Llevando tu startup a las tres principales plataformas móvilesJosué Yeray Julián Ferreiro
 
Introducción al desarrollo de aplicaciones universales
Introducción al desarrollo de aplicaciones universalesIntroducción al desarrollo de aplicaciones universales
Introducción al desarrollo de aplicaciones universalesJosué Yeray Julián Ferreiro
 

Más de Josué Yeray Julián Ferreiro (20)

Destapando superhéroes
Destapando superhéroesDestapando superhéroes
Destapando superhéroes
 
Xamarin Introduction for Xamarin DevDays Seville
Xamarin Introduction for Xamarin DevDays SevilleXamarin Introduction for Xamarin DevDays Seville
Xamarin Introduction for Xamarin DevDays Seville
 
Azure Notification Hub y Xamarin
Azure Notification Hub y XamarinAzure Notification Hub y Xamarin
Azure Notification Hub y Xamarin
 
Introducción al desarrollo para Hololens
Introducción al desarrollo para HololensIntroducción al desarrollo para Hololens
Introducción al desarrollo para Hololens
 
Novedades Xamarin.Forms 2
Novedades Xamarin.Forms 2Novedades Xamarin.Forms 2
Novedades Xamarin.Forms 2
 
Bailando con monos - Introducción a Xamarin
Bailando con monos - Introducción a XamarinBailando con monos - Introducción a Xamarin
Bailando con monos - Introducción a Xamarin
 
Introducción a Windows 10
Introducción a Windows 10Introducción a Windows 10
Introducción a Windows 10
 
Taller Xamarin.Forms TLP Innova
Taller Xamarin.Forms TLP InnovaTaller Xamarin.Forms TLP Innova
Taller Xamarin.Forms TLP Innova
 
Llevando tu startup a las tres principales plataformas móviles
Llevando tu startup a las tres principales plataformas móvilesLlevando tu startup a las tres principales plataformas móviles
Llevando tu startup a las tres principales plataformas móviles
 
New controls in Windows 10
New controls in Windows 10New controls in Windows 10
New controls in Windows 10
 
Introducción a Windows 10
Introducción a Windows 10Introducción a Windows 10
Introducción a Windows 10
 
Apps monetization for Windows and Windows Phone
Apps monetization for Windows and Windows PhoneApps monetization for Windows and Windows Phone
Apps monetization for Windows and Windows Phone
 
Introducción al desarrollo de aplicaciones universales
Introducción al desarrollo de aplicaciones universalesIntroducción al desarrollo de aplicaciones universales
Introducción al desarrollo de aplicaciones universales
 
Nokia mixradio api integration
Nokia mixradio api integrationNokia mixradio api integration
Nokia mixradio api integration
 
Cimbalino Toolkit and Multilingual App Toolkit
Cimbalino Toolkit and Multilingual App ToolkitCimbalino Toolkit and Multilingual App Toolkit
Cimbalino Toolkit and Multilingual App Toolkit
 
Nokia Imaging SDK 1.0
Nokia Imaging SDK 1.0Nokia Imaging SDK 1.0
Nokia Imaging SDK 1.0
 
Nokia imaging sdk
Nokia imaging sdkNokia imaging sdk
Nokia imaging sdk
 
Windows Phone 8: MVVM pattern
Windows Phone 8: MVVM patternWindows Phone 8: MVVM pattern
Windows Phone 8: MVVM pattern
 
Novedades de Windows Phone 8
Novedades de Windows Phone 8Novedades de Windows Phone 8
Novedades de Windows Phone 8
 
RIATec Windows Phone 8 NFC features
RIATec Windows Phone 8 NFC featuresRIATec Windows Phone 8 NFC features
RIATec Windows Phone 8 NFC features
 

Último

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
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
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
 
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
 
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
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...JaquelineJuarez15
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
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
 
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
 
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
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofJuancarlosHuertasNio1
 
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
 
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
 
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
 
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
 
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
 
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
 

Último (20)

SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .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
 
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...
 
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
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
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
 
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
 
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
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sof
 
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
 
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...
 
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
 
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
 
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)
 
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
 

Xamarin Forms - Construir interfaces nativas para iOS, Android y Windows Phone desde una única base de código C# compartida

  • 1. Yeray Julian - @josueyeray Rafa Serna - @rafasermed XAMARIN FORMS Y A X B
  • 2. Antes… larga vida y prosperidad!
  • 3. Xamarin.Forms – Y esto que leches es? iOS Android Windows Phone Construir interfaces nativas para iOS, Android y Windows Phone desde una única base de código C# compartida.
  • 4. Xamarin.Forms – Y esto que leches es? Construir interfaces nativas para iOS, Android y Windows Phone desde una única base de código C# compartida. 4 XAMARIN XAMARIN.FORMS Android 4.0+ Windows Phone 8.0iOS 6.1+ Windows Phone 8.0 (Silverlight)
  • 5. Xamarin.Forms – Páginas Elemento Visual (contenedor), primario. 5 Content MasterDetail Navigation Tabbed Carousel • Android: Activity • iOS: View Controller • Windows Phone: Page
  • 6. Xamarin.Forms – Páginas Elemento Visual (contenedor), primario. 6 <?xml version="1.0" encoding="utf-8" ?> <ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="SampleApp.Page1"> ...... ...... ...... </ContentPage> XAML
  • 7. Xamarin.Forms – Páginas Elemento Visual (contenedor), primario. 7 MainPage = new ContentPage { Content = …… ……… ……… }; C#
  • 8. Xamarin.Forms – Layouts 8 Stack Absolute Relative Grid ContentView ScrollView Frame Elemento contenedor de controles de interfaz de usuario en estructuras lógicas.
  • 9. Xamarin.Forms – Layouts 9 Elemento contenedor de controles de interfaz de usuario en estructuras lógicas. <ContentPage.Content> <StackLayout HorizontalOptions="StartAndExpand" Orientation=“Vertical"> ..... ..... ..... </StackLayout> </ContentPage.Content> XAML
  • 10. Xamarin.Forms – Layouts 1 0 Elemento contenedor de controles de interfaz de usuario en estructuras lógicas. MainPage = new ContentPage { Content = new StackLayout { VerticalOptions = LayoutOptions.Center, Children = { …… …… } } }; C#
  • 11. Xamarin.Forms – Controles Colección de objetos visuales que son representados por sus homónimos en cada una de las plataformas. 1 1
  • 12. Xamarin.Forms – Controles Colección de objetos visuales que son representados por sus homónimos en cada una de las plataformas. 1 2 <Label Text="{Binding MainText}" Font="Large" VerticalOptions="Center" HorizontalOptions="Center" /> <Button Text="Click Me!“ HorizontalOptions="Center" VerticalOptions="CenterAndExpand“ Clicked="OnButtonClicked" /> XAML
  • 13. Xamarin.Forms – Controles Colección de objetos visuales que son representados por sus homónimos en cada una de las plataformas. 1 3 new Label { XAlign = TextAlignment.Center, Text = "Welcome to Xamarin Forms!" } new Button { Text = "Click Me!", Font = Font.SystemFontOfSize(NamedSize.Large), BorderWidth = 1, HorizontalOptions = LayoutOptions.Center, VerticalOptions = LayoutOptions.CenterAndExpand }; C#
  • 15. Xamarin.Forms – Converters Implemetar el Interfaz IValueConverter 1 5 class DoubleToIntConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { double multiplier; if (!Double.TryParse(parameter as string, out multiplier)) multiplier = 1; return (int)Math.Round(multiplier * (double)value); } public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { } }
  • 16. Xamarin.Forms – Converters Implemetar el Interfaz IValueConverter 1 6 <ContentPage.Resources> <ResourceDictionary> <local:DoubleToIntConverter x:Key="intConverter" /> </ResourceDictionary> </ContentPage.Resources> <Label Text="{Binding Color.R, Converter={StaticResource intConverter}, ConverterParameter=255, StringFormat='R={0:X2}'}" />
  • 18. Xamarin.Forms – Animaciones 1 8 FadeTo LayoutTo ScaleTo TranslateTo RotateTo RotateXTo RotateYTo RelRotateTo RelScaleTo
  • 19. Xamarin.Forms – Animaciones 1 9 Element.FadeTo(opacity, duration, easing): Element.LayoutTo(rectangle, duration, easing); Element.RotateTo(rotation, duration, easing); Element.ScaleTo(scale, duration, easing); Element.TranslateTo(X, Y, duration, easing); Easing: .BounceIn .BounceOut .CubicIn .CubicInOut .CubicOut .Linear .SinIn .SinInOut .SinOut .SpringIn .SpringOut
  • 20. Xamarin.Forms –Triggers Implementar TriggerAction<Entry> 2 0 <Style.Triggers> <Trigger Property="Entry.IsFocused" Value="True" TargetType="Entry"> <Setter Property="Entry.TextColor" Value="Red" /> </Trigger> </Style.Triggers> <StackLayout Orientation="Horizontal"> <Label Text="Your age: " /> <Entry TextColor="Black“ Placeholder="Age" /> </StackLayout>
  • 21. Xamarin.Forms – Event Triggers Cuando esta propiedad tiene ese valor, a continuación, establece esta otra propiedad con este nuevo valor. 2 1 public class EntryValidation : TriggerAction<Entry> { protected override void Invoke(Entry sender) { int parsed; bool valid = int.TryParse(sender.Text, out parsed); if (!valid) { sender.TextColor = Color.Red; } else { sender.TextColor = Color.Blue; } } } <Entry TextColor="Black“ Placeholder="Age"> <Entry.Triggers> <EventTrigger Event="TextChanged"> <local:EntryValidation /> </EventTrigger> </Entry.Triggers> </Entry>
  • 22. Xamarin.Forms – Behaviors Implementar Behavior<T> 2 2 public class ChangeColorButtonBehavior : Behavior<Button> { protected override void OnAttachedTo(Button bindable) { bindable.Clicked += ButtonClicked; base.OnAttachedTo(bindable); } protected override void OnDetachingFrom(Button bindable) { bindable.Clicked -= ButtonClicked; base.OnDetachingFrom(bindable); } private void ButtonClicked(object sender, EventArgs e) { var button = sender as Button; button.BackgroundColor = button.BackgroundColor != Color.Blue ? Color.Blue : Color.Red; } }
  • 23. Xamarin.Forms – Behaviors Implementar Behavior<T> 2 3 <Button Text="Click to chance color!"> <Button.Behaviors> <behaviors:ChangeColorButtonBehavior /> </Button.Behaviors> </Button> <Button Text="Click to do nothing!" />
  • 24. BEHAVIORS y TRIGGERS – Demo Time 2 4
  • 25. PREGUNTAS? Habla ahora o no tendrás monito!!! ?
  • 26.
  • 27. Yeray Julian - @josueyeray Rafa Serna - @rafasermed ¡¡¡Si te ha gustado no olvides rellenar la encuesta!!! Thanks Y A X B