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
Building Multi-Platform Native Apps with MVVM a...
Search
Greg Shackles
September 14, 2013
Technology
2
3.3k
Building Multi-Platform Native Apps with MVVM and C#
Greg Shackles
September 14, 2013
Tweet
Share
More Decks by Greg Shackles
See All by Greg Shackles
Building Modern Services with .NET Core 3 and gRPC
gshackles
0
150
Observability-Driven Development: What DevOps is Really About
gshackles
1
270
Monitoring Your Mobile Apps in the Wild
gshackles
1
80
Building Scalable Applications with the Actor Model
gshackles
0
570
Creating a Voice-Driven TV Remote with Azure and Alexa
gshackles
0
95
Build 2017 Recap for Xamarin Developers
gshackles
0
93
Going Serverless: Event-Driven Architecture Without The Infrastructure
gshackles
0
160
Evolve 2016 Redux
gshackles
0
130
Instrumenting Your Mobile Monitoring Strategy
gshackles
0
4.6k
Other Decks in Technology
See All in Technology
JuliaTokaiとJuliaLangJaの紹介 for NGK2025S
antimon2
1
150
20250122_個人向けCopilotどうなん
ponponmikankan
0
170
今から、 今だからこそ始める Terraform で Azure 管理 / Managing Azure with Terraform: The Perfect Time to Start
nnstt1
0
260
Godot Engineについて調べてみた
unsoluble_sugar
0
460
2025-01-24-SRETT11-OpenTofuについてそろそろ調べてみるか
masasuzu
0
110
Mocking your codebase without cursing it
gaqzi
0
110
FODにおけるホーム画面編成のレコメンド
watarukudo
PRO
2
420
ブロックチェーンR&D企業における SREの実態 / SRE Kaigi 2025
datachain
0
2k
Amazon Route 53, 待ちに待った TLSAレコードのサポート開始
kenichinakamura
0
200
FinJAWS_reinvent2024_recap_database
asahihidehiko
2
240
タイミーのデータ活用を支えるdbt Cloud導入とこれから
ttccddtoki
2
410
メンバーがオーナーシップを発揮しやすいチームづくり
ham0215
2
320
Featured
See All Featured
Speed Design
sergeychernyshev
25
740
Raft: Consensus for Rubyists
vanstee
137
6.7k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.6k
Why Our Code Smells
bkeepers
PRO
335
57k
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.6k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
52k
Facilitating Awesome Meetings
lara
51
6.2k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
45
2.3k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
174
51k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
4
190
Docker and Python
trallard
43
3.2k
Adopting Sorbet at Scale
ufuk
74
9.2k
Transcript
Building Multi-Platform Native Apps with MVVM and C# Greg Shackles
Senior Software Engineer OLO @gshackles
[email protected]
github.com/gshackles
nycmobiledev.net @NYCMobileDev
Gone Mobile gonemobile.io @GoneMobileCast
Google Apple RIM Microso! Symbian 52.0% Android 39.9% Apple 4.4%
RIM 3.1% Microsoft Source: comScore US Market Share: June 2013
Write Once, Run Anywhere
Write Once, Run Anywhere BUSTED
Xamarin: C# All The Things! * * plus some F#
for good measure •100% Native •Full access to platform SDKs •BCL, Async, LINQ, etc •Improved API •Shared code across platforms •Garbage collection •Visual Studio / Xamarin Studio •Frequent Releases
MVVM Click Me Hello World! 1. action 2. event handling
3. command 4. access data 5. notify change 6. get changed data 7. update UI View Binder View Model Model
Binding: Properties
Binding: Collections
Binding: Actions
Binding: Value Converters
MvvmCross: Platforms
•Shared behavior, not presentation •Bind all the platforms! •Powerful binding
options •Convention over configuration •Pluggable architecture •PCL •Inversion of Control •Testable MvvmCross: Highlights
•Source: github.com/slodge/MvvmCross •Stuart’s Blog: slodge.blogspot.com •N+1: mvvmcross.wordpress.com •Chat: jabbr.net/#/rooms/mvvmcross MvvmCross:
Resources
•Customize view presentation •Platform-specific •Still retain View Model logic Presenters
•Tabs / Panorama •Split View / Master-Detail •Fragments •Modals •Hamburger menu
Presenters
Plugins • Accelerometer • Download Cache • Email • File
• Json • Localization • Location • Messenger • Phone Call • Picture Chooser • SQLite • Visibility • Web Browser • Many More!
None