Cross-Platform Mobile Architectural Patterns
This post contains links and references to subjects discussed in my MonkeySpace 2013 talk.
Naturally, the talk was grounded in Xamarin Studio.
Xamarin's Field Service App is a reference implementation for cross-platform MVVM.
The Xamarin DCI example source code can be found here.
Essential books on software-architectural patterns:
- Design Patterns: Elements of Reusable Software; Gamma et al.
- Patterns of Enterprise Application Architecture; Fowler
- Pattern-Oriented Software Architecture: Vol. 1; Buschmann et al.
- Pattern-Oriented Software Architecture, Patterns for Concurrent and Networked Objects: Vol. 2; Schmidt et al.
Special mention should be made of:
Which covers Data-Context-Interaction in detail.
- "Models-Views-Controllers"; Reenskaug
- "MVP: Model-View-Presenter"; Potel
- "Introduction to Model/View/ViewModel Pattern for Building WPF Apps"; Gossman
- "The DCI Architecture: A New Vision for Object-Oriented Programming"; Reenskaug, Coplien
It should be noted that DCI advocates now speak of it as a "paradigm" and not simply an architectural style.
More DCI links:
- Full.OO Homepage
- DCI Tutorials - Lean Software Architecture
- The Common Sense of Object-Orientated [sic] Programming
- Clean Ruby
- DCI Example with NRoles
The quote by Joe Armstrong:
I think the lack of reusability comes in object-oriented languages, not functional languages. Because the problem with object-oriented languages is they’ve got all this implicit environment that they carry around with them. You wanted a banana but what you got was a gorilla holding the banana and the entire jungle.
If you have referentially transparent code, if you have pure functions — all the data comes in its input arguments and everything goes out and leave no state behind — it’s incredibly reusable.
comes from the book Coders at Work.
I write about software development in my monthly column for SD Times.