ReactiveCocoa / ReactiveViewModel

Model-View-ViewModel, using ReactiveCocoa
MIT License
1.96k stars 259 forks source link

Document how we do MVVM #2

Open jspahrsummers opened 11 years ago

jspahrsummers commented 11 years ago

Especially how hierarchies work and line up to the view and model layers (or don't).

paulyoung commented 11 years ago

This would be most excellent.

+@jwilling +@CodaFi

oleksii-demedetskyi commented 11 years ago

:+1: for description. Most interesting aspect for me - how screen transition performed, who sit above the view-models. I practicing writing MVVM-like code little more than half of last year, so I want to look how another people will implement it, and have some reliable source for answering: "Why you do this?". :)

tonyxiao commented 11 years ago

On this note, I'd love to see some sample app written MVVM style also!

tonyarnold commented 10 years ago

I would love to see some real-world examples of MVVM in use, as well as how to appropriately test the various components. :+1: from me as well.

DuneParkSoftware commented 10 years ago

If anyone is interested, I have started building a small demo app (https://github.com/DuneParkSoftware/RAC_MVVMDemo) to explore the MVVM pattern with RAC on iOS. I am fairly new to MVVM and RAC. If you check out the code and notice that I'm doing something inefficiently (or just plain wrong), please make a pull request.

So far, I have a singleton object that "does some work" in the background. Meanwhile, a view model watches the singleton's property and converts it for the view controller. The view controller, in turn, updates the display.

There is also a RACCommand on the view model that is bound to the view, and simulates sending next/error/complete signals based on the singleton's state.

In the past, I have experienced issues with the viewModel not being released when its owning viewController is discarded. Therefore, the code is liberally commented with NSLog's so I can make sure the viewModel gets dealloc'd properly and doesn't leak.

I'm not certain that I'm using the RVMViewModel active property and signals correctly. Also, I don't understand how the forwardSignalWhileActive: and throttleSignalWhileInactive: signals are meant to be used.

ashfurrow commented 10 years ago

I've also gone ahead and opened an app that uses this repo: https://github.com/AshFurrow/C-41 Pull requests welcome :)

Not sure how it relates to how you do MVVM, but if it's similar I wouldn't mind writing the documentation for it for this repo. Let me know.

jspahrsummers commented 10 years ago

I also have an example project at jspahrsummers/GroceryList.