Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Cross-Platform Native User Interfaces with Xama...
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Mauricio Contreras
December 06, 2016
Programming
21
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Cross-Platform Native User Interfaces with Xamarin.Forms
Mauricio Contreras
December 06, 2016
More Decks by Mauricio Contreras
See All by Mauricio Contreras
Azure DevOps para Desarrolladores .NET
maurocon3ras
0
23
Deployments and DevOps with AKS and Azure DevOps
maurocon3ras
0
77
Cómo desplegar aplicaciones de manera más rápida y segura
maurocon3ras
0
22
Introducción a Azure DevOps
maurocon3ras
0
130
Graph <3 Azure Functions
maurocon3ras
0
28
De Dev a DevOps con Visual Studio App Center
maurocon3ras
0
22
De Dev a DevOps - NETConf v18
maurocon3ras
0
26
Desarrollo nativo para Android, iOS y Windows con Xamarin
maurocon3ras
0
77
Aprovecha al máximo tu web app con PWA en Windows
maurocon3ras
0
31
Other Decks in Programming
See All in Programming
Skillsは効率化、Agentsは"自分の拡張"——Builder時代のエージェント編成(CC Night 2026)
wemra
1
140
Performance Engineering for Everyone
elenatanasoiu
0
180
Go1.27で導入されるジェネリクスメソッドでできること
mackee
0
140
Contextとはなにか
chiroruxx
1
330
LLM本来の能力を解き放つサンドボックス技術とAI民主化への適用
yukukotani
3
4.3k
IBM Bobを活用したレガシーアプリの最新化
oniak3ibm
PRO
1
200
Semantic Version 単位で戦略を柔軟に変えて、パッケージアップデートを自動化する
daitasu
1
260
JJUG CCC 2026 Spring: JSpecify で実現する Kotlin フレンドリーな Java API 設計
ternbusty
1
180
Agentic UI
manfredsteyer
PRO
0
180
AIだと陥りがちなJakarta EE最新技術への移行時の落とし穴と解決策
tnagao7
0
110
DynamoDBには集計系のクエリがないけどなんとかしたい
musan
1
180
Claspは野良GASの夢をみるか
takter00
0
200
Featured
See All Featured
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.9k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.5k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
160
Evolving SEO for Evolving Search Engines
ryanjones
0
220
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.6k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
530
Faster Mobile Websites
deanohume
310
31k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
440
Navigating Team Friction
lara
192
16k
WCS-LA-2024
lcolladotor
0
650
Large-scale JavaScript Application Architecture
addyosmani
515
110k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
Transcript
None
None
Enfoque tradicional de Xamarin Con Xamarin.Forms: compartes más código, todo
nativo ☺ iOS C# UI Windows C# UI Android C# UI Backend C# Compartido Código UI Compartido Backend C# Compartido
✓ 40+ Páginas, layouts, y controles (Constrúyelos desde code behind
o con XAML) ✓ Two-way data binding ✓ Navegación ✓ API de animaciones ✓ Dependency Service ✓ Messaging Center Backend C# Compartido Código UI compartido
Layouts Pages Stack Absolute Relative Grid ContentView ScrollView Frame Content
MasterDetail Navigation Tabbed Carousel
ActivityIndicator BoxView Button DatePicker Editor Entry Image Label ListView Map
OpenGLView Picker ProgressBar SearchBar Slider Stepper TableView TimePicker WebView EntryCell ImageCell SwitchCell TextCell ViewCell
Ecosistema Xamarin.Forms
Windows Xamarin.Forms StackPanel StackLayout TextBox Entry ListBox ListView CheckBox Switch
ProgressBar ActivityIndicator Grid Grid Label Label Button Button Image Image Date/TimePicker Date/TimePicker
Windows Xamarin.Forms DataContext BindingContext {Binding Property} {Binding Property} ItemsSource ItemsSource
ItemTemplate ItemTemplate DataTemplate DataTemplate
None
<?xml version="1.0" encoding="UTF-8"?> <TabbedPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="MyApp.MainPage"> <TabbedPage.Children> <ContentPage Title="Profile"
Icon="Profile.png"> <StackLayout Spacing="20" Padding="20" VerticalOptions="Center"> <Entry Placeholder="Username" Text="{Binding Username}"/> <Entry Placeholder="Password" Text="{Binding Password}" IsPassword="true"/> <Button Text="Login" TextColor="White" BackgroundColor="#77D065" Command="{Binding LoginCommand}"/> </StackLayout> </ContentPage> <ContentPage Title="Settings" Icon="Settings.png"> <!-- Settings --> </ContentPage> </TabbedPage.Children> </TabbedPage>
None
None
Xamarin.Forms es Open Source! open.xamarin.com
None
✓ Mejora el rendimiento al hacer scrolling ✓ El comportamiento
antiguo está por defecto (pero cambiará en un futuro cercano)
XAML Parsed and inflated Parsed & turned into IL XAMLC
✓ Carga más rápido ✓ Disminuye el peso de la
app ✓ Ver errores XAML en tiempo de compilación (build-time)
None
None
• Embeddable Carousel • ItemTemplate & DataTemplates • Altamente customizable
✓ Custom renderer “lite” ✓ Cambia propiedades en los controles
nativos ✓ Opcional ✓ “stringly-typed” X Sin métodos o eventos X Sin reemplazar el control
entry.Effects.Add (Effect.Resolve("Xamarin.BorderEffect"));
None
None
None
https://developer.xamarin.com/guides/xamarin-forms/datapages/
https://developer.xamarin.com/guides/xamarin-forms/themes/
Embedding Nativo
None
Preguntas. Mauricio Andrés Contreras Microsoft MVP Xamarin Certified Mobile Developer
[email protected]
maurodev.ninja @mauroDevNinja
http://mva.microsot.com http://channel9.microsoft.com http://university.xamarin.com https://developer.xamarin.com/guides/xamarin- forms/ https://aka.ms/XamarinIntermediate