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.4k
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
190
Observability-Driven Development: What DevOps is Really About
gshackles
1
310
Monitoring Your Mobile Apps in the Wild
gshackles
1
110
Building Scalable Applications with the Actor Model
gshackles
0
660
Creating a Voice-Driven TV Remote with Azure and Alexa
gshackles
0
130
Build 2017 Recap for Xamarin Developers
gshackles
0
140
Going Serverless: Event-Driven Architecture Without The Infrastructure
gshackles
0
200
Evolve 2016 Redux
gshackles
0
150
Instrumenting Your Mobile Monitoring Strategy
gshackles
0
4.7k
Other Decks in Technology
See All in Technology
あたらしい上流工程の形。 0日導入からはじめるAI駆動PM
kumaiu
4
620
Contract One Engineering Unit 紹介資料
sansan33
PRO
0
13k
SREの仕事を自動化する際にやっておきたい5つのポイント
jacopen
6
1.2k
セキュリティについて学ぶ会 / 2026 01 25 Takamatsu WordPress Meetup
rocketmartue
1
210
ファインディの横断SREがTakumi byGMOと取り組む、セキュリティと開発スピードの両立
rvirus0817
1
760
いよいよ仕事を奪われそうな波が来たぜ
kazzpapa3
3
310
ドキュメントからはじめる未来のソフトウェア
pkshadeck
5
2.2k
AWS Devops Agent ~ 自動調査とSlack統合をやってみた! ~
kubomasataka
2
290
新規事業における「一部だけどコア」な AI精度改善の優先順位づけ
zerebom
0
440
SMTP完全に理解した ✉️
yamatai1212
0
150
エンジニアとマネジメントの距離/Engineering and Management
ikuodanaka
3
690
セキュリティ はじめの一歩
nikinusu
0
1.3k
Featured
See All Featured
Rails Girls Zürich Keynote
gr2m
96
14k
How to make the Groovebox
asonas
2
1.9k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
0
130
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
270
Imperfection Machines: The Place of Print at Facebook
scottboms
269
14k
Art, The Web, and Tiny UX
lynnandtonic
304
21k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.6k
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
5.2k
Ethics towards AI in product and experience design
skipperchong
2
190
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.3k
What does AI have to do with Human Rights?
axbom
PRO
0
2k
HDC tutorial
michielstock
1
340
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