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
84
Build 2017 Recap for Xamarin Developers
gshackles
0
83
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
『GRANBLUE FANTASY Relink』キャラクターの魅力を支えるリグ・シミュレーション制作事例
cygames
0
150
Oracle Autonomous Database:サービス概要のご紹介
oracle4engineer
PRO
1
7.1k
20240911_New_Relicダッシュボード活用例
speakerdeckfk
0
110
タイミーのレコメンドにおける ABテストの運用
ozeshun
1
200
再考 アクターモデル/ reconsider actor model
ytake
0
370
LLVM/ASMを使った有限体の高速実装
herumi
0
120
Discovering AI Models
picardparis
4
3.9k
実務における脅威モデリングを考えよう
nikinusu
0
680
Technical Writing Meetup vol.35
soracom
PRO
2
130
QAに対する超個人的な解釈 / Personal Take on QA
toma_sm
1
140
あなたの知らないiOS開発の世界
recruitengineers
PRO
3
180
Tricentisにおけるテスト自動化へのAI活用ご紹介/20240910Shunsuke Katakura
shift_evolve
0
210
Featured
See All Featured
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
23
1.7k
How STYLIGHT went responsive
nonsquared
93
5.1k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
0
120
Six Lessons from altMBA
skipperchong
26
3.4k
Visualization
eitanlees
142
15k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
43
2k
Code Review Best Practice
trishagee
62
16k
Raft: Consensus for Rubyists
vanstee
136
6.5k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
Web development in the modern age
philhawksworth
205
10k
No one is an island. Learnings from fostering a developers community.
thoeni
18
2.9k
Navigating Team Friction
lara
183
13k
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