


El objetivo de este artículo es dar una visión amplia de lo que un servidor considera que son buenas prácticas en Android y la recomendación de algunas librerías y herramientas para simplificar y optimizar nuestro código.


IDE
Android Studio – Google dejó de dar soporte al ADT de Eclipse. Desde la actualización a AS 2.0 se incluye Instant Run, que agiliza notablemente la ejecución frente a cambios en el desarrollo. Básicamente compila los cambios y los añade a la compilación anterior. Así, Android Studio no reinicia tu aplicación cada vez que intentas ejecutar o depurar.
BUILD ENGINE
Gradle vs Maven – Gradle está mucho más extendido y es significativamente más rápido. Tiene un sinfín de posibilidades como la optimización de recursos en las releases y ofuscación del código entre otros.
SONAR
Utilización de Sonar (Android Lint) para evaluar la calidad del código, cobertura de test y clasificación de posibles errores.
ARQUITECTURA
Es más que recomendable utilizar una arquitectura definida y extendida entre la comunidad Android. Entre las existentes, destacan estas dos:
- Clean Architecture : (MVP + Repository)

Hexagonal Architecture

En el mundo Android, la más extendida es Clean Architecture, que unifica el patrón Model-View-Presenter (capa de presentación) con Repository Pattern (capa de datos), abstrayendo la lógica de negocio de ambas separada en casos de uso.
LIBRERÍAS
- ButterKnife. Para inyección de recursos en código Java.
- OkHttp (Volley o Retrofit). Para APIs REST.
- Glide (Picasso). Pintado de imágenes con cacheado.
- Hugo. Herramienta de Logs. Logs automáticos en métodos con parámetros de entrada y salida.
- Gson (Moshi). La librería más potente de parseo de JSON a objetos Java y viceversa.
- ORMlite (SugarORM). ORM para SQLite actúa como una capa de abstracción entre la base de datos SQLite y el código Java, consiguiendo un mejor tratamiento de errores y excepciones, evitando errores de sintaxis y un trato de datos mucho más trivial.
- EventBus (Otto). Basado en el BroadCastReceiver de Android simplificando la comunicacíon entre componentes.
- JUnit, Mockito, Robolectric, Espresso (Spoon, AssertJ) para Test.
Otros artículos destacados

¡Recibido!
Gracias por rellenar el formulario. Se han enviado los datos correctamente.
