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
Mauricio Contreras
December 06, 2016
Programming
22
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
79
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
エンジニアにデザインハーネスを 〜デザインプロセスを規定するためのハーネス〜 / Design harness from an engineer's perspective
rkaga
2
1.8k
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
310
React本体のコードリーディング
high_g_engineer
0
110
改善しないと、タスクが回らない。 “てんこ盛りポジション” を引き継いだ情シスの、入社3ヶ月の業務改善録
krm963
0
230
AI時代の仕事技芸論〜ソフトウェア開発で「遊ぶように働く」職人的熟達のすすめ(スクフェス仙台 2026バージョン)
kuranuki
0
790
メールのエイリアス機能を履き違えない
isshinfunada
0
150
テーブルをDELETEした
yuzneri
0
130
AI Engineeringは、AIプロダクトだけのものか? 〜AIがソフトウェアを作る時代の新しい当たり前〜 / No AI in your product. AI Engineering in your development.
rkaga
4
290
AI時代に設計が 最大の生産性レバーになる 意図駆動開発とデータを消さない設計|Don't Delete Your Data or Your Intent — Design as the Deepest Lever in the AI Era
tomohisa
0
120
yield再入門 #phpcon
o0h
PRO
0
830
Foundation Models frameworkで画像分析
ryodeveloper
1
160
なぜ関数型プログラミングで「型」と「証明」が語られるのか #fp_matsuri
kajitack
3
1.1k
Featured
See All Featured
Crafting Experiences
bethany
1
230
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.9k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.7k
Discover your Explorer Soul
emna__ayadi
2
1.2k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.5k
GraphQLとの向き合い方2022年版
quramy
50
15k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
450
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
How STYLIGHT went responsive
nonsquared
100
6.2k
How GitHub (no longer) Works
holman
316
150k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
420
The Cult of Friendly URLs
andyhume
79
7k
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