En este proyecto se vern los siguientes mdulos: MODULO DE REGISTRO-Pagina empezar-Pagina crear cuenta con autenticacin por gmail-Pagina completar registro con autenticacin por sms. MODULO DE NAVEGACIN-Pagina de men principal-Pagina de ubicar origen y destino-Buscador de direcciones consumiendo la PLACES API de google-Calculo de direcciones consumiendo DISTANCE MATRIX API de google-Dibujar rutas de origen y destino consumiendo DIRECTIONS API de googlePatrn de software MVVMLos beneficios de usar el patrn MVVM son los siguientes: Si hay una implementacin de modelo existente que encapsula la lgica comercial existente, puede ser difcil o arriesgado cambiarlo. En este escenario, el modelo de vista acta como un adaptador para las clases del modelo y le permite evitar realizar cambios importantes en el cdigo del modelo. Los desarrolladores pueden crear pruebas unitarias para el modelo de vista y el modelo, sin usar la vista. Las pruebas unitarias para el modelo de vista pueden ejercer exactamente la misma funcionalidad que usa la vista. La interfaz de usuario de la aplicacin se puede redisear sin tocar el cdigo, siempre que la vista se implemente completamente en XAML. Por lo tanto, una nueva versin de la vista debera funcionar con el modelo de vista existente. Los diseadores y desarrolladores pueden trabajar de forma independiente y simultnea en sus componentes durante el proceso de desarrollo. Los diseadores pueden concentrarse en la vista, mientras que los desarrolladores pueden trabajar en el modelo de vista y los componentes del modelo. La clave para usar MVVM de manera efectiva radica en comprender cmo factorizar el cdigo de la aplicacin en las clases correctas y en comprender cmo interactan las clases. Las siguientes secciones analizan las responsabilidades de cada una de las clases en el patrn MVVM. El modelo de vista implementa propiedades y comandos a los que la vista puede enlazar datos y notifica a la vista cualquier cambio de estado a travs de eventos de notificacin de cambios. Las propiedades y los comandos que proporciona el modelo de vista definen la funcionalidad que ofrecer la interfaz de usuario, pero la vista determina cmo se mostrar esa funcionalidad. Conexin de modelos de vista a vistasLos modelos de vista se pueden conectar a vistas mediante las capacidades de enlace de datos de Xamarin. Forms. Hay muchos enfoques que se pueden usar para construir vistas y ver modelos y asociarlos en tiempo de ejecucin. Estos enfoques se dividen en dos categoras, conocidas como primera composicin de vista y primera composicin de modelo de vista. Elegir entre ver la primera composicin y ver la primera composicin del modelo es una cuestin de preferencia y complejidad. Sin embargo, todos los enfoques comparten el mismo objetivo, que es que la vista tenga un modelo de vista asignado a su propiedad BindingContext. Con la primera composicin de vista, la aplicacin se compone conceptualmente de vistas que se conectan a los modelos de vista de los que dependen. El beneficio principal de este enfoque es que facilita la construccin de aplicaciones comprobables por unidades poco acopladas porque los modelos de vista no dependen de las vistas en s. Tambin es fcil comprender la estructura de la aplicacin siguiendo su estructura visual, en lugar de tener que realizar un seguimiento de la ejecucin del cdigo para comprender cmo se crean y asocian las clases. Adems, la primera construccin de la vista se alinea con el sistema de navegacin Xamarin. Forms que es responsable de construir pginas cuando se produce la navegacin, lo que hace que la primera composicin del modelo de vista sea compleja y est desalineada con la plataforma.