tutorial ios mvvm architecture xcode5

ios - tutorial - mvvm swift 4



MVVM ejemplo/implementación de ejemplo en iOS (1)

Reactivo Cacao definitivamente no es necesario para MVVM. He construido un framework MVVM muy exitoso sin ningún tipo de enlaces. Los enlaces no son un requisito para MVVM.

Específicamente, el vínculo entre el Modelo de Vista y la Vista requiere que el Modelo de Vista envíe una señal a la Vista que necesita para actualizar sus datos. Esto se puede lograr usando Reactive Cocoa, KVO (me gusta mucho el KVOController de Facebook) o incluso usando un patrón simple de delegado.

El modelo de vista sabe cuándo se debe actualizar la vista: o bien los datos han cambiado, o bien se está realizando una solicitud de datos asíncronos a través del modelo y el modelo se ha cargado en el modelo de visualización.

Cuando configura su Vista, puede vincular cada control al valor correspondiente en el Modelo de visualización. He descubierto que cuando necesito batir pantallas, esto puede ser muy tedioso. En cambio, prefiero tener un único método que se llame cuando el Modelo de Vista indique que la Vista debería actualizarse. Dentro de ese método, simplemente voy a establecer todas mis propiedades de control.

Ahora, solo necesita preocuparse por cómo se desencadena ese método. En mi marco personal, aprovecho KVO y mis ViewControllers supervisan una propiedad de marca de tiempo en mi clase base de ViewModel. Cada vez que mis modelos de vista actualizan sus datos subyacentes, se actualiza su marca de tiempo que desencadena la actualización. También podría hacer que el controlador de visualización se registre como el delegado de actualización de ViewModel y use un patrón de delegado estándar.

Una vez más, MVVM no se trata de requisitos de implementación específicos, y más acerca de un concepto de nivel superior de separación de preocupaciones, desacoplamiento de dependencia y encapsulación.

¿Alguien ha implementado el patrón MVVM en su aplicación iOS sin usar ReactiveCocoa?

Encontré muchos ejemplos aquí, pero todos usan Reactivo Cocoa. Quería un ejemplo simple de implementación de MVVM.