Wednesday, March 20, 2013

The MvvmCross Manifesto - Draft 1

MvvmCross is opinionated. It cares about how you write your code. Its opinions are:
  • Portability – you should use Portable Class Libraries for as much of your code as you possibly can - viewmodel, model, service and even view. Friends don’t let friends copy and paste. # is for twitter, not for code.
  • Interface Driven Development – you should use Dependency Injection, Inversion of Control and Plugins to get your applications richly and robustly to market on all of your target platforms.
  • Code for Test – you should use interfaces; you should develop small, cohesive, loosely coupled components; and you should add unit tests to allow your code to be used, reshaped and reused again and again.
  • Mvvm – you should use architectural patterns - especially Model-View-ViewModel with Data-Binding - in order to provide a structure within your app, and in order to deliver both a delightful application and a sustainable, flexible ongoing development process.
  • Native UIs – users love Native, and you should give them Native UIs that delight, that provide rich functionality and that are styled to fit naturally in the context of your users’ devices.
  • Your opinions matter – you should be able to override any part of MvvmCross, including it’s opinions.
  • The app is King –  more than anything else, what matters is that you ship. Delivering is everything. The app is King.

No comments:

Post a Comment