SlideShare una empresa de Scribd logo
Mejorando nuestras habilidades de UI
en Xamarin Forms
Leomaris Reyes
Leomaris Reyes
● Ingeniera de software
● Microsoft MVP
● Platzi Master Coach
● Creadora y escritora del blog
de Xamarin AskXammy.com
● CEO & Founder de Stemelle.
● Xamarin Certified Mobile
Developer
Algunos mitos del diseño en Xamarin Forms
❌ Xamarin es solo para prototipos
❌ Sino tenemos presupuesto para comprar controles de
terceros no podemos hacer un UIs bonitos.
❌ No podemos hacer diseños agradables con Xamarin Forms.
Buen uso de layouts: Utiliza solo los layouts necesarios1.
<StackLayout>
<Button BackgroundColor="DarkOrange" />
</StackLayout>
<StackLayout>
<Button BackgroundColor="DarkOrange" />
</StackLayout>
<StackLayout>
<Button BackgroundColor="DarkOrange" />
</StackLayout>
Escenario 😐 Escenario 😍
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto”/>
<RowDefinition Height="Auto”/>
<RowDefinition Height="Auto”/>
</Grid.RowDefinitions>
<Button Grid.Row="0" BackgroundColor="DarkOrange"/>
<Button Grid.Row="1" BackgroundColor="DarkOrange"/>
<Button Grid.Row="2" BackgroundColor="DarkOrange"/>
</Grid>
1
2
3
1
Nuevos Grid 😍
Grid tradicional Nueva estructura del Grid 😍
<Grid RowDefinitions=”Auto,Auto,Auto” ColumnDefinitions=”*,*”>
<Button Grid.Row="0" Grid.Column="0"
BackgroundColor="DarkOrange"/>
<Button Grid.Row="1" Grid.Column="1"
BackgroundColor="DarkOrange"/>
<Button Grid.Row="2" Grid.Column="0"
BackgroundColor="DarkOrange"/>
</Grid>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto”/>
<RowDefinition Height="Auto”/>
<RowDefinition Height="Auto”/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*”/>
<ColumnDefinition Width="*”/>
</Grid.ColumnDefinitions>
<Button Grid.Row="0" Grid.Column="0"
BackgroundColor="DarkOrange"/>
<Button Grid.Row="1" Grid.Column="1"
BackgroundColor="DarkOrange"/>
<Button Grid.Row="2" Grid.Column="0"
BackgroundColor="DarkOrange"/>
</Grid>
Distancia entre un elemento y sus elementos
adyacentes, se utiliza para controlar la posición
de del elemento y la de de sus vecinos.
______________________________
<Button BackgroundColor="DarkOrange"
Margin="0,80,0,0" />
Margin ✔ Padding ✔
Distancia entre un elemento y sus elementos secundarios,
se usa para separar el espacio entre el y su propio
contenido.
________________________________________________
<Button BackgroundColor="DarkOrange" Padding="0,80,0,0"
/>
Margin vs Padding: No los confundas please! 😔2.
Sin el uso de estilo tendremos que repetir las mismas
propiedades de cada elemento tantas veces lo
declaremos..
____________________________________________
<Button Text ="Click aquí"
BackgroundColor ="DarkOrange"
Padding = "0,80,0,0"
TextColor ="White"
FontAttributes ="Bold" />
Sin estilos Usando estilo
Implementando estilos solo tenemos que agregar las
propiedades una vez y dicho estilo podrá ser llamado desde
los elementos que necesitemos!.
_____________________________________________
<Button Text="Click aquí"
Style="{StaticResource MainButtons}" />
_____________________________________________
<Style x:Key="MainButtons" TargetType="Button">
<Setter Property="BackgroundColor"
Value="DarkOrange"/>
<Setter Property="Padding" Value="0,80,0,0"/>
<Setter Property="TextColor” Value="White" />
<Setter Property="FontAttributes" Value="Bold" />
</Style>
Utiliza estilos: Al utilizarlos tu código se mantiene más
limpio y organizado!
3.
<StackLayout>
<Button BackgroundColor="#FF8008" />
<Button BackgroundColor="#FF8008" />
<Button BackgroundColor="FF8008" />
</StackLayout>
Colores directos Colores agregados en el Application.Resource
Crea tu paleta de colores en el Application.Resource: Así
mantienes los colores de tu App centralizados!4.
<StackLayout>
<Button BackgroundColor="{StaticResource
HeaderColor}" />
<Button BackgroundColor="{StaticResource
HeaderColor}" />
<Button BackgroundColor="{StaticResource
HeaderColor}" />
</StackLayout>
_____________________________________________
Application.Resource:
<Color x:Key="HeaderColor">#FF8008</Color>
Es de mucha ayuda poder replicar aplicaciones, ya que gracias a ellas vamos desarrollando y reforzando
habilidades de reproducción de UI, tanto en el análisis de los componentes a utilizar como en el XAML.
______________________________________________________________________________________
__
Buscar aplicaciones que puedas replicar!5.
Antes de empezar, dividir en bloques nuestro diseño nos puede ayudar a tener una idea más
precisa de los puntos que tendremos que realizar el XAML así como también el orden de prioridad
que tendremos al desarrollarlos pudiéndose ahorrar tiempo a la hora de escribir código.
________________________________________________________________________
Analiza el diseño y divide en bloques para que tengas
claro el flujo a desarrollar en XAML6.
Prueba tus interfaces en diferentes dispositivos,
plataformas y orientaciones7.
Colores directos Como buscar la imagen correcta en Android
Agrega las imágenes en sus dimensiones correctas8.
Sin ScrollView Con ScrollView ✔
No todos los dispositivos tienen la misma dimensión, utiliza
ScrollView, así el usuario no se queda con un diseño a medias.9.
❌
Pantalla 1 Pantalla 2
Con el ScrollView se visualizan:
Design time data para datos de pruebas: Así puedes mostrar data
de prueba sin que tu data real se vea afectada y por tanto también tu
tiempo de desarrollo.
10.
<StackLayout Orientation="Horizontal">
<Label Text="Bienvenid@s" FontSize="30" TextColor="Fuchsia" />
<Label Text="Welcome" FontSize="28" TextColor="Blue" />
<Label Text="Bienvenue" FontSize="20" />
</StackLayout>
Sin FormattedText Con FormattedText
<Label>
<Label.FormattedText>
<FormattedString>
<Span Text="Bienvenid@s" FontSize=30"
ForegroundColor="Fuchsia" />
<Span Text="Welcome" FontSize="28"
ForegroundColor="Blue" />
<Span Text="Bienvenue" FontSize="20" />
</FormattedString>
</Label.FormattedText>
</Label>
Utiliza FormattedText11.
<StackLayout Padding="0,0,20,0">
<ImageButton Source="{Binding Picture}"
HorizontalOptions="Start"
WidthRequest="40"
HeightRequest="40""/>
<Button Text="{Binding Quantity}"
TextColor="#4D4B4B"
CornerRadius="10" />
</StackLayout>
Sin BindableLayout Con BindableLayout
<StackLayout Orientation="Horizontal"
BindableLayout.ItemsSource="{Binding fruitBar}">
<BindableLayout.ItemTemplate>
<DataTemplate>
<StackLayout Padding="0,0,20,0">
<ImageButton Source="{Binding Picture}"
HorizontalOptions="Start"
WidthRequest="40"
HeightRequest="40""/>
<Button Text="{Binding Quantity}"
TextColor="#4D4B4B"
CornerRadius="10" />
</StackLayout>
</DataTemplate>
</BindableLayout.ItemTemplate>
</StackLayout>
Utiliza BindableLayout12.
El deberás repetir el StackLayout
tantas veces necesites
1 2 3 n
No necesitas repetirlo!
xmlns:ios="clr-namespace:Xamarin.Forms.
PlatformConfiguration.iOSSpecific;assembly=
Xamarin.Forms.Core"
ios:Page.UseSafeArea="true"
Ajustando nuestro TitleBar en IOS13.
Utilizando el área segura
<Label Text= "&lt;Hello people!!!&gt;" />
Agregando texto con caracteres especiales14.
🔹 < – Menor que – &lt;
🔹 > – Mayor que – &gt;
🔹 & – Ampersand – &amp;
🔹 “ – Comillas – &quot;
🔹 ‘ – Apóstrofe – &apos;
<Button
WidthRequest ="80"
HeightRequest ="80"
CornerRadius ="40"
VerticalOptions ="Center"
HorizontalOptions ="Center"
BackgroundColor ="#F77DF9"/>
Puedes crear botones circulares!15.
Mejor manejo de imágenes con FFImageLoading16.
✔ Mejor manejo de la memoria
✔ Efectos especiales extras con Xamarin.FFImageLoading.Transformation
📌 Más flexibilidad en tus diseños haciéndolos
horizontales y verticales.
📌 Mejor manejo de performance
Utiliza CollectionView para tus listas17.
Uso de Triggers para cambios Visuales18.
Triggers de propiedad
Triggers de data
Triggers de evento
Utiliza Font Icons19.
Mantén siempre informado al usuario20.
Diseño de Dribble (Barek Berendt )
Diseño de Dribble (Hega Putra)
Échale un vistazo a PancakeView y al Canal de Kim Phillpotts
Recomendaciones
Twitter @LeomarisReyes11
LinkedIn @LeomarisReyes

Más contenido relacionado

PPTX
Etquetas pabo
PPTX
Etquetas de html
PDF
Consultar estado
ODP
etiquetas HTML
DOCX
Tablas acces
PPT
Creacion De Menus Y Entrelace De Formas
PPT
Menú en VB6.0
PDF
Cuestionario microsoftword...
Etquetas pabo
Etquetas de html
Consultar estado
etiquetas HTML
Tablas acces
Creacion De Menus Y Entrelace De Formas
Menú en VB6.0
Cuestionario microsoftword...

Similar a Net latino (20)

PPTX
Microsoft 365 live jueves 16 2020
PDF
Estándares Web con Chico UI
PDF
Grails: Framework para el desarrollo de aplicaciones Web No 3
ODP
Estilo & CSS3
DOCX
Consultar estado
PPTX
Monkey Conf 2019: Presente y futuro de Xamarin.Forms
PDF
Guia N3 Proyectos Web Php Css, Js
PPTX
Social chess clock
PDF
Semana 3 Responsive Design y Media Queries
PPTX
Web matrix y j querymobile
DOCX
Guía Practica conexión BD 2021
PPTX
Building Ria Applications With Silverlight 2
PPTX
Trucos y consejos rendimiento Xamarin.Forms
DOCX
Codigos para html
PDF
Aplicaciones
PPTX
Introducción a Xamarin.Forms
PDF
3.1 mvc-mvvm-app model-binding
PDF
PPTX
Aplicaciones para sistemas distribuidos slide
KEY
Presentación CSS y HTML en Gummurcia
Microsoft 365 live jueves 16 2020
Estándares Web con Chico UI
Grails: Framework para el desarrollo de aplicaciones Web No 3
Estilo & CSS3
Consultar estado
Monkey Conf 2019: Presente y futuro de Xamarin.Forms
Guia N3 Proyectos Web Php Css, Js
Social chess clock
Semana 3 Responsive Design y Media Queries
Web matrix y j querymobile
Guía Practica conexión BD 2021
Building Ria Applications With Silverlight 2
Trucos y consejos rendimiento Xamarin.Forms
Codigos para html
Aplicaciones
Introducción a Xamarin.Forms
3.1 mvc-mvvm-app model-binding
Aplicaciones para sistemas distribuidos slide
Presentación CSS y HTML en Gummurcia
Publicidad

Net latino

  • 1. Mejorando nuestras habilidades de UI en Xamarin Forms
  • 2. Leomaris Reyes Leomaris Reyes ● Ingeniera de software ● Microsoft MVP ● Platzi Master Coach ● Creadora y escritora del blog de Xamarin AskXammy.com ● CEO & Founder de Stemelle. ● Xamarin Certified Mobile Developer
  • 3. Algunos mitos del diseño en Xamarin Forms ❌ Xamarin es solo para prototipos ❌ Sino tenemos presupuesto para comprar controles de terceros no podemos hacer un UIs bonitos. ❌ No podemos hacer diseños agradables con Xamarin Forms.
  • 4. Buen uso de layouts: Utiliza solo los layouts necesarios1. <StackLayout> <Button BackgroundColor="DarkOrange" /> </StackLayout> <StackLayout> <Button BackgroundColor="DarkOrange" /> </StackLayout> <StackLayout> <Button BackgroundColor="DarkOrange" /> </StackLayout> Escenario 😐 Escenario 😍 <Grid> <Grid.RowDefinitions> <RowDefinition Height="Auto”/> <RowDefinition Height="Auto”/> <RowDefinition Height="Auto”/> </Grid.RowDefinitions> <Button Grid.Row="0" BackgroundColor="DarkOrange"/> <Button Grid.Row="1" BackgroundColor="DarkOrange"/> <Button Grid.Row="2" BackgroundColor="DarkOrange"/> </Grid> 1 2 3 1
  • 5. Nuevos Grid 😍 Grid tradicional Nueva estructura del Grid 😍 <Grid RowDefinitions=”Auto,Auto,Auto” ColumnDefinitions=”*,*”> <Button Grid.Row="0" Grid.Column="0" BackgroundColor="DarkOrange"/> <Button Grid.Row="1" Grid.Column="1" BackgroundColor="DarkOrange"/> <Button Grid.Row="2" Grid.Column="0" BackgroundColor="DarkOrange"/> </Grid> <Grid> <Grid.RowDefinitions> <RowDefinition Height="Auto”/> <RowDefinition Height="Auto”/> <RowDefinition Height="Auto”/> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition Width="*”/> <ColumnDefinition Width="*”/> </Grid.ColumnDefinitions> <Button Grid.Row="0" Grid.Column="0" BackgroundColor="DarkOrange"/> <Button Grid.Row="1" Grid.Column="1" BackgroundColor="DarkOrange"/> <Button Grid.Row="2" Grid.Column="0" BackgroundColor="DarkOrange"/> </Grid>
  • 6. Distancia entre un elemento y sus elementos adyacentes, se utiliza para controlar la posición de del elemento y la de de sus vecinos. ______________________________ <Button BackgroundColor="DarkOrange" Margin="0,80,0,0" /> Margin ✔ Padding ✔ Distancia entre un elemento y sus elementos secundarios, se usa para separar el espacio entre el y su propio contenido. ________________________________________________ <Button BackgroundColor="DarkOrange" Padding="0,80,0,0" /> Margin vs Padding: No los confundas please! 😔2.
  • 7. Sin el uso de estilo tendremos que repetir las mismas propiedades de cada elemento tantas veces lo declaremos.. ____________________________________________ <Button Text ="Click aquí" BackgroundColor ="DarkOrange" Padding = "0,80,0,0" TextColor ="White" FontAttributes ="Bold" /> Sin estilos Usando estilo Implementando estilos solo tenemos que agregar las propiedades una vez y dicho estilo podrá ser llamado desde los elementos que necesitemos!. _____________________________________________ <Button Text="Click aquí" Style="{StaticResource MainButtons}" /> _____________________________________________ <Style x:Key="MainButtons" TargetType="Button"> <Setter Property="BackgroundColor" Value="DarkOrange"/> <Setter Property="Padding" Value="0,80,0,0"/> <Setter Property="TextColor” Value="White" /> <Setter Property="FontAttributes" Value="Bold" /> </Style> Utiliza estilos: Al utilizarlos tu código se mantiene más limpio y organizado! 3.
  • 8. <StackLayout> <Button BackgroundColor="#FF8008" /> <Button BackgroundColor="#FF8008" /> <Button BackgroundColor="FF8008" /> </StackLayout> Colores directos Colores agregados en el Application.Resource Crea tu paleta de colores en el Application.Resource: Así mantienes los colores de tu App centralizados!4. <StackLayout> <Button BackgroundColor="{StaticResource HeaderColor}" /> <Button BackgroundColor="{StaticResource HeaderColor}" /> <Button BackgroundColor="{StaticResource HeaderColor}" /> </StackLayout> _____________________________________________ Application.Resource: <Color x:Key="HeaderColor">#FF8008</Color>
  • 9. Es de mucha ayuda poder replicar aplicaciones, ya que gracias a ellas vamos desarrollando y reforzando habilidades de reproducción de UI, tanto en el análisis de los componentes a utilizar como en el XAML. ______________________________________________________________________________________ __ Buscar aplicaciones que puedas replicar!5.
  • 10. Antes de empezar, dividir en bloques nuestro diseño nos puede ayudar a tener una idea más precisa de los puntos que tendremos que realizar el XAML así como también el orden de prioridad que tendremos al desarrollarlos pudiéndose ahorrar tiempo a la hora de escribir código. ________________________________________________________________________ Analiza el diseño y divide en bloques para que tengas claro el flujo a desarrollar en XAML6.
  • 11. Prueba tus interfaces en diferentes dispositivos, plataformas y orientaciones7.
  • 12. Colores directos Como buscar la imagen correcta en Android Agrega las imágenes en sus dimensiones correctas8.
  • 13. Sin ScrollView Con ScrollView ✔ No todos los dispositivos tienen la misma dimensión, utiliza ScrollView, así el usuario no se queda con un diseño a medias.9. ❌ Pantalla 1 Pantalla 2 Con el ScrollView se visualizan:
  • 14. Design time data para datos de pruebas: Así puedes mostrar data de prueba sin que tu data real se vea afectada y por tanto también tu tiempo de desarrollo. 10.
  • 15. <StackLayout Orientation="Horizontal"> <Label Text="Bienvenid@s" FontSize="30" TextColor="Fuchsia" /> <Label Text="Welcome" FontSize="28" TextColor="Blue" /> <Label Text="Bienvenue" FontSize="20" /> </StackLayout> Sin FormattedText Con FormattedText <Label> <Label.FormattedText> <FormattedString> <Span Text="Bienvenid@s" FontSize=30" ForegroundColor="Fuchsia" /> <Span Text="Welcome" FontSize="28" ForegroundColor="Blue" /> <Span Text="Bienvenue" FontSize="20" /> </FormattedString> </Label.FormattedText> </Label> Utiliza FormattedText11.
  • 16. <StackLayout Padding="0,0,20,0"> <ImageButton Source="{Binding Picture}" HorizontalOptions="Start" WidthRequest="40" HeightRequest="40""/> <Button Text="{Binding Quantity}" TextColor="#4D4B4B" CornerRadius="10" /> </StackLayout> Sin BindableLayout Con BindableLayout <StackLayout Orientation="Horizontal" BindableLayout.ItemsSource="{Binding fruitBar}"> <BindableLayout.ItemTemplate> <DataTemplate> <StackLayout Padding="0,0,20,0"> <ImageButton Source="{Binding Picture}" HorizontalOptions="Start" WidthRequest="40" HeightRequest="40""/> <Button Text="{Binding Quantity}" TextColor="#4D4B4B" CornerRadius="10" /> </StackLayout> </DataTemplate> </BindableLayout.ItemTemplate> </StackLayout> Utiliza BindableLayout12. El deberás repetir el StackLayout tantas veces necesites 1 2 3 n No necesitas repetirlo!
  • 18. <Label Text= "&lt;Hello people!!!&gt;" /> Agregando texto con caracteres especiales14. 🔹 < – Menor que – &lt; 🔹 > – Mayor que – &gt; 🔹 & – Ampersand – &amp; 🔹 “ – Comillas – &quot; 🔹 ‘ – Apóstrofe – &apos;
  • 19. <Button WidthRequest ="80" HeightRequest ="80" CornerRadius ="40" VerticalOptions ="Center" HorizontalOptions ="Center" BackgroundColor ="#F77DF9"/> Puedes crear botones circulares!15.
  • 20. Mejor manejo de imágenes con FFImageLoading16. ✔ Mejor manejo de la memoria ✔ Efectos especiales extras con Xamarin.FFImageLoading.Transformation
  • 21. 📌 Más flexibilidad en tus diseños haciéndolos horizontales y verticales. 📌 Mejor manejo de performance Utiliza CollectionView para tus listas17.
  • 22. Uso de Triggers para cambios Visuales18. Triggers de propiedad Triggers de data Triggers de evento
  • 24. Mantén siempre informado al usuario20. Diseño de Dribble (Barek Berendt ) Diseño de Dribble (Hega Putra)
  • 25. Échale un vistazo a PancakeView y al Canal de Kim Phillpotts