Perdonad que no haya contestado antes. He estado bastante liado entre el trabajo y otras cosas.
Respondo a un par de cosas:
El proyecto tal cual no funciona porque la api key para OpenWeather es inválida (no puedo regalar mi api key). Es necesario registrarse y sustituir por una buena.
La api key se cambia en la clase Environment.
Cita:
Originalmente Escrito por Dexafree
Dicho esto, paso a hacer un par de comentarios sobre el código... Como siempre, la programación es el mundo del cuñadismo por excelencia (aka: "Pues yo esto lo haría de otro modo...")
|
Respecto a las mejoras del código, lo primero muchas gracias por tu opinión, lo agradezco mucho.
Si, Network podría ser un singleton, ya he probado antes con él, pero como siempre dicen que es un antipatrón... de todas formas tengo pendiente hacer pruebas a ver si realmente no merece la pena.
Lo de las anotaciones de Retrofit es como las usaba en el modo tradicional de programar. La ventaja en esta otra forma es que no lleno en una sola interfaz distintas llamadas. Tambien tengo pendiente pensar cómo aprovechar las anotaciones y dividirlas por cada cliente.
Sobre el contexto, toda la razón. El código lo he hecho en ratos libres y corriendo y hay muchas cosas por mejorar.
En global, si, es una arquitectura más compleja para iniciados, pero merece la pena aplicarla siempre, por muy pequeña que sea la app. Con experiencia, os daréis cuenta.
Un saludo!
EDITO: Explico un poco más en detalle la principal razón para no utilizar las anotaciones de Retrofit:
El objetivo es desligar por completo las clases Client de Network (implementación básica de la conexión) de tal manera que ningún Client sepa qué librería se utiliza.
Esto permite que si se decide cambiar de Retrofit a Volley, por ejemplo, el cambio sólo sería en Network, dejando intactos todos los Client.
O un ejemplo más real, si Retrofit se actualiza, como ha pasado de la 1 a la 2, cambiando muchos de los métodos principales y callbacks, sólo afecta a la clase Network.
Sigo teniendo pendiente encontrar una forma de aprovechar mejor las anotaciones, pero por ahora, a falta de tiempo para investigar, eso es lo que se me ha ocurrido para permitir el desacoplamiento.