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

9 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
  5. I'm trying to see how to write a complete doc in French for V3, but at current time I even not succeed making my MV intializinf, lol !, I must missed something important... or not.. Following some samples on the web for V3 is leading to errors cause things have changed.
    So it will be cool, before the "big one" that you will published to get a short but final doc about v3, just for power users already knowing basis. So we should be able to understand all key concepts and tricks of V3 and begin to write localized papers.
    A this time I'm stuck, all "v3" papers or blog entries I read are false, full of things that have changed. It is not usable.
    I know you're busy and I'm really happy for you, but the success of such a framework will also come from some good papers and for that we need a little help from you ; just the key concept, clearly explained, the new tricks, and most important : up to date with the "real" final V3. Think about it, and do not hesitate to send me draft you've got my mail !
    (of course thanks for all this job, mvvmcross is going in the good direction !)

    ReplyDelete
    Replies
    1. Thanks Olivier

      I - can understand that some documents may be out of date, but I doubt "all 'v3' papers ... false" and i also strongly disagree on it not being usable.

      We've made a big effort since to avoid breaking changes since the beta date (end March) so any docs or blogs published since then should not be broken.

      For new docs, a team of us are now working on a site within the github mvvmcross account - i very much hope the first version of that will get published soon. Before then, i have published over 20 hours of videos via http://mvvmcross.wordpress.com - and that's backed by a couple of repos full of samples in my github account.

      If none of those videos or sample repos help and if you'd like assistance getting past your current hurdle, please post the details of your initialization issue in a stackoverflow question.

      If there are specific errors in old blog posts, or in external sites then let me know specifics and we may try to change them - although i have no intention of going back and changing anything that is v1 or v2(vnext).

      thanks for your input - love your blog :) I hope we can get you over the init problem you are currently hitting.

      Stuart

      Delete