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 and C#
Search
Greg Shackles
September 14, 2013
Technology
2
3.1k
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
120
Observability-Driven Development: What DevOps is Really About
gshackles
1
260
Monitoring Your Mobile Apps in the Wild
gshackles
1
75
Building Scalable Applications with the Actor Model
gshackles
0
510
Creating a Voice-Driven TV Remote with Azure and Alexa
gshackles
0
77
Build 2017 Recap for Xamarin Developers
gshackles
0
78
Going Serverless: Event-Driven Architecture Without The Infrastructure
gshackles
0
150
Evolve 2016 Redux
gshackles
0
120
Instrumenting Your Mobile Monitoring Strategy
gshackles
0
4.6k
Other Decks in Technology
See All in Technology
Building Dashboards as a Hobby
egmc
0
410
一生覚えておきたい「システム開発=コミュニケーション」〜初めての実務案件振り返りLT〜
maimyyym
3
410
Microsoft Intune 勉強会 第 2 回目
tamaiyutaro
2
500
障害対応をちょっとずつよくしていくための 演習の作りかた
heleeen
1
1.8k
KubeConにproposalを送りたい人へのアドバイス
sat
PRO
3
280
コードや知識を組み込む / Incorporate Code and knowledge
ks91
PRO
0
160
今年のRubyKaigiはProfiler Year🤘
osyoyu
0
490
高専で制御を、大学でセンシングを学び、次は脳みそ
satoshirobatofujimoto
0
120
CockroachDB はどのくらい「しぶとい」のか? / How tough is CockroachDB?
kota2and3kan
4
1.1k
今日からできる!簡単 .NET 高速化 Tips -2024 edition-
xin9le
7
4.6k
さらばあのボタンとは言わせない SORACOM LTE-M Button powerd by AWSをまだ使えるようにした(前編?)
miura55
0
100
ルーターでプレゼンする
puhitaku
1
3.4k
Featured
See All Featured
Designing for humans not robots
tammielis
247
25k
Making Projects Easy
brettharned
109
5.5k
What’s in a name? Adding method to the madness
productmarketing
PRO
17
2.7k
Atom: Resistance is Futile
akmur
260
25k
Become a Pro
speakerdeck
PRO
13
4.6k
GraphQLの誤解/rethinking-graphql
sonatard
56
9.3k
The Mythical Team-Month
searls
217
42k
Fashionably flexible responsive web design (full day workshop)
malarkey
398
65k
Code Review Best Practice
trishagee
56
15k
Docker and Python
trallard
35
2.7k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
242
1.2M
Building Better People: How to give real-time feedback that sticks.
wjessup
356
18k
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