Aplicación meteorológica con KIT de ubicación HMS — MVVM — DI (inyección de dependencias)
Tags: android, hmscore, huaweimobileservices
Published: 2020-10-06 00:18:50

Este artículo contiene la implementación de una aplicación meteorológica para los Servicios de ubicación. La aplicación se basa en los servicios de ubicación de GMS y ya está publicada en Google Play Store. Así que en este articulo realizamos la migración al kit de ubicación HMS y publicarlo en App Gallery Connect.
El patrón MVVM se creó para simplificar la programación controlada por eventos de las interfaces de usuario.

En MVVM, ViewModel expone secuencias de eventos a los que se pueden vincular las Vistas. Debido a esto, ViewModel ya no necesita mantener una referencia a la Vista. Esto también significa que todas las interfaces que requiere el patrón MVP ahora se descartan. La vista tiene una referencia a ViewModel pero ViewModel no tiene información sobre la vista. El consumidor de los datos debe saber sobre el productor, pero el productor, el ViewModel, no sabe, y no le importa, quién consume los datos.
2. Los servicios de ubicación de Google Play fueron reemplazados por el kit de ubicación HMS.

El kit de ubicación HUAWEI combina las ubicaciones de GPS, Wi-Fi y estaciones base para ayudarlo a obtener rápidamente ubicaciones precisas de usuarios, desarrollar capacidades de posicionamiento global y llegar a una amplia gama de usuarios en todo el mundo. Actualmente, proporciona las cuatro capacidades principales: ubicación fusionada, semántica de ubicación, identificación de actividad y geocerca. Puede llamar a las capacidades relevantes según sea necesario.

Ubicación fusionada: proporciona un conjunto de API simples y fáciles de usar para que pueda obtener rápidamente la ubicación del dispositivo según el GPS, el Wi-Fi y los datos de ubicación de la estación base.

Semántica de ubicación: le permite modificar la API de solicitud de actualización de ubicación para obtener la información de ubicación y dirección en función de la capacidad de geocodificación inversa.

Identificación de actividad: identifica el estado de movimiento del usuario a través del sensor de aceleración, la información de la red celular y el magnetómetro, lo que le ayuda a ajustar tu aplicación según el comportamiento del usuario.

Geofence: te permite establecer un área interesada a través de una API para que su aplicación pueda recibir una notificación cuando se produce una acción específica (como salir, entrar o quedarse en el área).
Escenario de desarrollo

La aplicación debe solicitar la ubicación del dispositivo de forma continua, puede solicitar el permiso de ubicación para tu aplicación, llamar a la API requestLocationUpdates () del Kit de ubicación, establecer diferentes parámetros de solicitud (en LocationRequest) y especificar un modo de ubicación según sea necesario. Para cancelar la devolución de llamada de información de ubicación, llama a la API removeLocationUpdates ().
Proceso de desarrollo

La siguiente figura muestra el proceso de desarrollo general. Los procedimientos de desarrollo detallados se describen en las siguientes secciones. Si tienes una aplicación con servicios móviles de terceros integrados, puedes usar HMS Convertor para convertir automáticamente las API de los servicios móviles de terceros en API basadas en HMS, logrando una rápida integración de los servicios HMS. Para obtener más información sobre el convertidor HMS, haz clic en el siguiente enlace
[Toolkit](https://developer.huawei.com/consumer/en/huawei-toolkit/)

![1 yeDpdtIug-IIu3OayIuYwA](https://dev-to-uploads.s3.amazonaws.com/i/ovkzti490h5kexzwsq5p.png)

Archivos Gradle

Lo primero que debemos hacer es hacer los cambios apropiados en los archivos gradle. Entonces estos cambios afectaran las importaciones en el código. build.graddle (app)

Cambios: Eliminamos la dependencia de GMS para la ubicación y la remplazamos por el Kit de ubicación de HMS.
 

![0 FnxcbgU5VqulITrK](https://dev-to-uploads.s3.amazonaws.com/i/mexscn5sw04hfk0456hw.jpg)

Además, el build.gradle (proyecto). Reemplacemos el Classpath de GMS con el Classpath de HMS.
![0 -O1K-cXtT5rrhvDo](https://dev-to-uploads.s3.amazonaws.com/i/nnhqljp137b4pmxqtad9.jpg)
 
![0 IPp0fGGx5pvdrWMS](https://dev-to-uploads.s3.amazonaws.com/i/uhpuvbdnedrrsv1ygo68.jpg)

![0 14luQ02Ch5ny-ZUs](https://dev-to-uploads.s3.amazonaws.com/i/phgvnfic0f2wa5g68e5e.jpg)
 

Manifest

Agregamos al nuestro manifest, otro permiso que aprovecha la arquitectura del teléfono HMS.
![0 3Tn8E9Rc9hhMXRE9](https://dev-to-uploads.s3.amazonaws.com/i/r487f3rkzx3rka23maj8.jpg)

Resultado


![0 _n8s2I6nTmGvw7Zs](https://dev-to-uploads.s3.amazonaws.com/i/374zqr2p92wvzh86ubgp.jpg)
 
La aplicación se migra con éxito y funcionando con el kit de ubicación HMS.

Conclusión

La aplicación Colo Sunny es publicada en App Gallery Connect. Entonces, después de algunos procesos de prueba, la aplicación se publicó con éxito.