Monday, February 25, 2013

MvvmCross v3 - the documentation plan....

For 'Hot Tuna' I'm planning to make much better documentation....

It's not written yet, but below are the headings for what I'm currently planning.

No idea when I'm going to get it all done - but will try. I may also try crowdsourcing these docs - not sure yet....

Anyone got any opinions on this? Please share them via comments or via the normal channels...




Welcome to MvvmCross

What we’ll cover

What you need

Where to get help

How to ask questions

How to send additions and corrections

Thanks

Thanks to:

Badges of Awesomeness


Some Theory

Mvvm

History

In .Net

In Action

IoC

Plugins

Portable Class Libraries

Event Aggregation (The Messenger)

Develop for Test

Develop for Reuse

NUnit

UI Platforms

Mono for Android

MonoTouch

Windows Phone

Windows RT

WPF

Xamarin.Mac

Project 1 - TipCalc

Core

Tip Calculation

ViewModel

Test Harness

UI

Mono for Android

MonoTouch

Windows Phone

Windows RT

WPF

Xamarin.Mac

Project 2 - PetShop

Core

PetShop Management

SQLite

AllPets ViewModel

PetDetail ViewModel

Test Harness

UI

Mono for Android

MonoTouch

Windows Phone

Windows RT

WPF

Xamarin.Mac

Project 3 – Todo? WshLst? TwitterSearch?

Core

Todo

Networking

Login ViewModel

Home ViewModel

New/Edit ViewModel

Test Harness

UI

Mono for Android

MonoTouch

Windows Phone

Windows RT

WPF

Xamarin.Mac

Project 4 – ? Something to do with AutoViews

Core

?

? List ViewModel

? Item ViewModel

? Edit ViewModel

Test Harness

UI

Mono for Android

MonoTouch

Windows Phone

Windows RT

WPF

Xamarin.Mac

Inside MvvmCross

Core MvvmCross

The Start Sequence

The Application

IoC

Startup

Trace

Exceptions

Models and Services

ViewModels

The UI Thread

Properties

INotifyPropertyChanged
RaisePropertyChanged

Collections

INotifyCollectionChanged
ObservableCollection

Navigation

ViewModel Location
Construction

Value Converters

(only brief intro here – cover more in later chapters)

Binding

Swiss Binding Syntax

Mono for Android UI

Setup

Views

Fields

Events

Collections

Tables
Linear Layouts

ValueConverters

Advanced

Custom Bindings

Custom controls

Abbreviations

Adding new Activity base classes

Advanced Collections

Sections
Horizontal ListView
AutoComplete

Fragments

Constructing Views without AXML

Finding Memory Leaks

Visual Designers

Integrating with existing libraries

Internationalisation

StartActivityForResult

Using Dialogs

Using Menus

Menu Button
Context Menus

Android Services

Animations

Maps

Presenters

Tab UIs
Tablet UIs
ActionBar UIs
Sliding Menu (3-line Menu)

Push Notifications

MonoTouch UI

Setup

Views

Fields

Events

Collections

TableViews and Cells
CollectionViews and Cells

ValueConverters

Writing your UI with

Using XIBs

Code-based UIs

Dialog-based UIs

Advanced

Custom Bindings

Adding new UIViewController base classes

Finding Memory Leaks

Integrating with existing libraries

Visual Designers

Using Navigation Bar Buttons

Using ActionSheets

Using UIAlertView

Maps

Internationalisation

Creating Custom Drawn UIViews (Subclassing UIViews)

Creating Custom UIViewControllers

Animations

Presenters

Tab UIs
Tablet UIs
SplitView UIs
Modal UIs
Sliding Menu (3-line Menu)

Universal Applications Supporting iPad and iPhone

Push Notifications

Windows Phone

Setup

Views

Fields

Events

Collections

ListBox
ItemsControl

ValueConverters

Advanced

Finding Memory Leaks

Integrating with existing libraries

Binding and the Application Bar

Visual Designers

Maps

Creating Custom Drawn Controls

Animations

Internationalisation

Presenters

Panorama and Pivot UIs

Push Notifications

Tiles

Background Agents (Live Tiles)

Windows RT

Setup

Views

Fields

Events

Collections

ListBox
Grid

ValueConverters

Advanced

Finding Memory Leaks

Integrating with existing libraries

Binding and the Application Bar

Maps

Visual Designers

Semantic Zoom

Internationalisation

AnyCPU vs x86/x64/ARM

Creating Custom Drawn Controls

Animations

Presenters

Grids
Split Views

Push Notifications

Tiles

Toasts

Background Agents (Live Tiles)

Search Charm

WPF

TODO

Xamarin.Mac

TODO

PlugIns

Introduction

You don’t have to use plugins - Platform Specific IoC

Creating a Plugin

Some Existing Plugins

Accelerometer

Visibility

Color

Image/DownloadCache

Camera/PictureChooser

Location

Email/PhoneCall/Share/WebBrowser

Messenger

SQLite

Localisation - Internationalisation

Network (Am I going to build this one?)

Timers (Am I going to build this one?)

CrossUI

History – MonoTouch.Dialog

Dialog UIs

Mono for Android

Customising Elements

Adding Elements

MonoTouch

Customising Elements

Adding Elements

AutoViews

Why? Prototyping

Very Brief?

If you don’t like…

Choosing an IoC Platform

Customising Navigation

Replacing Navigation

Simple Mvvm

Customising ViewModel-View Lookup

Custom ViewModel Location (and LifeCycle)

Custom Presenters

Binding Syntax

Chimp (very brief)

What?

Why?

Using …

Just IoC and Plugins

Your own Mvvm

Another Mvvm framework

MvvmLight
Jounce
PRISM
Caliburn

More…

TPL and Async/Await

Sharing Code with a Server

Server Helpers

Urban Airship

Buddy

Azure Mobile Services

Parse

Additions

New Platforms

NuGet

List of available Portable libraries

JSON.Net

Logging (mbrit)

Xamarin.Mobile

Sponsors

JetBrains

Infragistics

PaintCodeApp

Appendix

Getting to know your Mac

Getting to know Resharper

Getting to know MonoDevelop

7 comments:

  1. There's a permissions problem Stuart, won't let me click on the links. It was displaying earlier?

    ReplyDelete
  2. Sorry - to be clear.... the links are MS Office Links - the documentation isn't written yet but a table of contents is :)

    ReplyDelete
  3. Better documentation is desperately needed. I am about ready to give up on MvvmCross due to the lack thereof. I can't even find anything telling me how to set up a WPF or WinRT project.

    You would be better served doing the documentation now and then updating once v3 is ready.

    ReplyDelete
    Replies
    1. Thanks Sean

      Have you tried http://slodge.blogspot.co.uk/2012/12/an-quick-start-on-creating-mvvmcross.html?

      If you hit problems then please do try asking questions on StackOverflow - that helps generate and spread knowledge.

      I am working really hard to get MvvmCross into an easier consume state - see the goals for v3 - but realistically this takes time and effort, all of which I'm doing for free. I am really grateful to all the bloggers and presenters who are helping to spread knowledge about mvvmcross - they are all awesome.

      But while we're all working on this, then people who want to use mvx will have to do some work too - and this is especially the case on end-of-life platforms like wpf ;)

      Stuart

      Delete
    2. Busy working on a parallel "wpf" version of our not-ready android application. And It was really easy to start WPF getting code from TwitterSearch.Wpf ...

      Delete
  4. Just one question. Can we replace vNext with v3?
    Maybe the first documentation should be the difference with all the branches, no? :)

    ReplyDelete
    Replies
    1. See the v3 post for the answer to that question.

      And on the maybe, I look forward to you contributing that documentation :)

      Delete