Aspectos básicos del enfoque H + G
Tags: android, huaweimobileservices, hmscore, huawei
Published: 2021-03-04 22:31:35

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dwzu8m0rbpcfjzfthtaq.png)

Para un proyecto de Huawei, generalmente manejamos dos conceptos simples, el proyecto H + G y el proyecto H2G, siendo el primero el uso de técnicas como sabores para representar en un mismo proyecto las dos bibliotecas diferentes (La de Huawei y la de Google), mientras que el segundo enfoque se centra en la generación de dos proyectos diferentes, cada uno independiente en un nivel de servicio para los Servicios de Huawei y los Servicios de Google.
Para el primer tipo el enfoque más común es el uso de sabores para diferenciar los servicios de uno a otro, y esto conlleva varios beneficios para los desarrolladores, siendo los más importantes el mantenimiento del proyecto a largo plazo, siendo un Consideración importante que el tamaño del proyecto y la organización del proyecto son una de las principales piezas importantes para que este tipo de proyecto realmente funcione.
Este tipo de proyecto implica mucho esfuerzo de organización y de vez en cuando no estamos muy familiarizados con la estructura que tendremos que utilizar en este, y hay dos errores comunes que, si se tienen en cuenta, pueden ahorrar toneladas de tiempo para nuestros desarrolladores y también asegura la generación integral de nuestro proyecto.
El primer error común que encontré que los desarrolladores tienen en los sabores son las rutas del paquete que estamos usando y su declaración en el archivo build.gradle en cada uno de ellos.
Dado que no estamos acostumbrados a organizar diferentes paquetes de rutas, generalmente no prestamos mucha atención a la ruta que estamos usando en un momento específico para nuestro proyecto, pero en el caso específico de diferentes sabores, en realidad declarará su diferenciación de la ruta del paquete en el archivo de compilación, en este formato:
```
flavorDimensions "flavor"
productFlavors{
huawei {
applicationId "com.huawei"
dimension "flavor"
}
appMarket2{
applicationId "com.appMarket2"
dimension "flavor"
}
}
```
Esto permite tener el cuidado de que nuestro sistema de archivos se corresponda realmente con esta ruta, y tener este cuidado de los paquetes es crucial, ya que si tenemos una ruta diferente declarada a la que estamos usando, el proyecto no reconocerá nuestros archivos dentro el sabor, y empezar a recibir errores raros al no tener archivos, cuando en realidad lo tenemos en el proyecto pero en el directorio incorrecto.
El segundo error también es muy común y está relacionado con un problema similar pero al revés, en lugar de no tener la ruta del paquete correctamente, se trata de colocar los archivos en el lugar correcto.
Dado que para el tema de servicios, uno de los archivos más importantes es el archivo services.json, la posición perdida de este archivo es más común de lo que nos gustaría, siendo la forma correcta para el ejemplo mostrado anteriormente, lo siguiente:

![Alt Text](https://miro.medium.com/max/1385/0*WYNNQsmkupy30hcB.png)
Espero que este artículo te ayude en la creación de tus proyectos de sabor y te haya ahorrado algunos dolores de cabeza por este tema, ya que sucedió más de una vez que me encontré con este tipo de consejos los más útiles para obtener más productividad de mi propio tiempo.