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
140
Observability-Driven Development: What DevOps is Really About
gshackles
1
270
Monitoring Your Mobile Apps in the Wild
gshackles
1
78
Building Scalable Applications with the Actor Model
gshackles
0
550
Creating a Voice-Driven TV Remote with Azure and Alexa
gshackles
0
87
Build 2017 Recap for Xamarin Developers
gshackles
0
84
Going Serverless: Event-Driven Architecture Without The Infrastructure
gshackles
0
160
Evolve 2016 Redux
gshackles
0
120
Instrumenting Your Mobile Monitoring Strategy
gshackles
0
4.6k
Other Decks in Technology
See All in Technology
いざ、BSC討伐の旅
nikinusu
1
480
社内で最大の技術的負債のリファクタリングに取り組んだお話し
kidooonn
1
440
SREによる隣接領域への越境とその先の信頼性
shonansurvivors
1
340
フロントエンド メタフレームワーク 選定の際に考えたこと
yuppeeng
0
590
AI長期記憶システム構築のための LLMマルチエージェントの取り組み / Awarefy-LLM-Multi-Agent
iktakahiro
2
340
家具家電付アパートの冷蔵庫をIoT化してみた!
scbc1167
0
140
「 SharePoint 難しい」ってよく聞くけど、そんなに言うなら8歳の息子に試してもらった
taichinakamura
2
790
コンテナのトラブルシューティング目線から AWS SAW についてしゃべってみる
kazzpapa3
1
120
Lambdaと地方とコミュニティ
miu_crescent
1
140
SREの組織類型に応じた リーダシップの考察
kenta_hi
PRO
0
620
マイベストのデータ基盤の現在と未来 / mybest-data-infra-asis-tobe
mybestinc
2
1.9k
Oracle Cloud Infrastructureデータベース・クラウド:各バージョンのサポート期間
oracle4engineer
PRO
28
12k
Featured
See All Featured
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
505
140k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
Mobile First: as difficult as doing things right
swwweet
222
8.9k
GraphQLとの向き合い方2022年版
quramy
43
13k
Rebuilding a faster, lazier Slack
samanthasiow
79
8.7k
Gamification - CAS2011
davidbonilla
80
5k
Building Your Own Lightsaber
phodgson
102
6.1k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
26
2.1k
How to Ace a Technical Interview
jacobian
276
23k
Speed Design
sergeychernyshev
24
600
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
26
1.4k
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