10 bibliotecas que todo desarrollador de Android debería conocer

10 bibliotecas que todo desarrollador de Android debería conocer


En 2015, ya publicamos un artículo sobre las cinco bibliotecas principales que utilizamos en ese momento. Sin embargo, la plataforma Android ha crecido significativamente desde entonces. Como saben, en un campo de rápido desarrollo como el desarrollo de software, todo cambia y se desarrolla a la velocidad de la luz. Es por eso que decidimos que era hora de actualizar la lista de las bibliotecas de Android más efectivas.


Sin más preámbulos, vayamos directamente a nuestra lista. Primero, veremos una de las bibliotecas de Android más antiguas, pero, en mi opinión, una de las más efectivas.


1. Reequipamiento


Retrofit es un cliente HTTP de tipo seguro que le permite presentar su API REST como una interfaz. Podrá administrar cuerpos, encabezados, parámetros de solicitudes de API y muchos otros con la ayuda de anotaciones, lo que hará que este proceso sea simple y comprensible. La actualización también le permite realizar llamadas API síncronas y asíncronas.


interface ApiService { @GET("movie/{id}") fun getMovieDetails(@Path("id") id: String) : Call<MovieDetails> } 

Además, Retrofit proporciona un módulo Rx separado. Si usa Rx, este módulo devolverá Observable al acceder a la API, lo que le permitirá asociarlo con el resto de su aplicación. Estas son solo algunas de las muchas razones por las que todavía amamos y usamos Retrofit.


2. Moshi


Moshi es una biblioteca para convertir JSON a objetos Java y Kotlin. Muchos perciben a Moshi como GSON 3.0. Sin embargo, esta biblioteca es superior a GSON en varios aspectos: es más rápida , admite Kotlin, se actualiza, genera excepciones predecibles y no utiliza el adaptador de fecha y hora dañado de forma predeterminada. Además, usando Moshi, el proceso de convertir JSON a objetos Java (y viceversa) se vuelve lo más simple y directo posible.


 val moshi = Moshi.Builder().build() val jsonAdapter = moshi.adapter(Model::class.java) /* JSON to Model */ val model = jsonAdapter.fromJson(json) /* Model to JSON */ val json = jsonAdapter.toJson(model) 

También amamos a Moshi por apoyar la API JSON. La API JSON es una especificación de construcción de API, y muchas de las API con las que trabajamos están escritas usando esta especificación. La API JSON de Moshi nos facilita la vida porque la API JSON se convierte en objetos Java significativos. Retrofit todavía es compatible con Moshi, y juntos funcionan muy bien.


3. Chuck


Chuck es un inspector de HTTP para Android que le permite profundizar en el historial HTTP de su aplicación en su teléfono móvil. El registro HTTP se muestra como una notificación, que se puede ampliar para iniciar sesión en Chuck y ver información detallada. El uso de Chuck complacerá increíblemente al departamento de control de calidad, ya que pueden ver dónde se encuentra el problema: en el lado de Android o en el lado del servidor. Esta biblioteca a veces puede ayudarlo más que logcat. Esto se debe a que su historial HTTP se conservará incluso si la aplicación se cierra inesperadamente, mientras que logcat se borra de vez en cuando después de un reinicio.


Chuck


4. Deslizamiento


Lo más probable es que sepas que descargar imágenes en Android es muy difícil. Incluso cambiar el tamaño de una imagen puede ser un desastre con una OutOfMemoryException . Glide es una biblioteca de carga de imágenes que proporciona una API de calidad que le permite modificar la imagen a su gusto.


 GlideApp.with(context) .load(url) .centerCrop() .placeholder(R.drawable.ic_placeholder) .into(imageView) 

La biblioteca le permite cargar fácilmente una imagen remota a ImageView, definir imágenes estables, almacenar en caché y escalar imágenes, etc. Simplemente intente hacer todo esto sin la ayuda de Glide, e inmediatamente comprenderá por qué está en nuestra lista de bibliotecas clave. Glide incluso admite algunos cambios predeterminados comunes, como la creación de una imagen circular.


5. ThreeTen


ThreeTen es una biblioteca de fecha y hora para Android. Esta es una versión portada de JSR-310 que se incluyó en Java 8 como el java.time.* estándar java.time.* . Nos encanta esta biblioteca porque la API estándar de Android Calendar convierte el trabajo en una pesadilla.


 /* Current DateTime */ LocalDateTime.now() /* String to DateTime */ val localDateTimeString = "2011-12-03T10:15:30" val localDateTime = LocalDateTime.parse(localDateTimeString) 

ThreeTen es muy inferior a JodaTime en términos de número de métodos y tamaño binario. La API de esta biblioteca también es más pequeña que la API de JodaTime. Si ya está utilizando JodaTime, entonces probablemente no debería actualizar a ThreeTen. Sin embargo, recomiendo probar ThreeTen si recién está comenzando a trabajar en un nuevo proyecto.


6. Madera


Timber es una biblioteca de registro potente pero simple construida sobre la clase de Log Android. Con su ayuda, puede activar y desactivar fácilmente la visualización de registros. La biblioteca también ofrece un excelente soporte para registrar cadenas formateadas y excepciones. Gracias a estas ventajas, Timber también se incluye en nuestra lista de bibliotecas clave que usamos en casi todos los proyectos de Android.


 /* Log error */ Timber.e("Error happened") /* Log warning with params */ Timber.w("Your variable value is %s", variable) /* Log exception */ try { ... } catch (e: Exception) { Timber.e(e) } 

7. Habitación


Room es el ORM oficial para Android, y hay varias razones para este estado. Esta biblioteca tiene una API fácil de usar similar a Retrofit. Room también depende en gran medida de las anotaciones y la sintaxis SQL estándar.


 @Dao interface MovieDao { @Query("SELECT details FROM movies WHERE id = :id") fun getMovieDetails(id: String): MovieDetails } 

Además, Room incluye compatibilidad con Rx y LiveData de LiveData , por lo que puede usarlo como desee. La principal ventaja de Room sobre varios ORM es su simplicidad. Muchos ORM tienen una API mucho más compleja, para lo cual deberá estudiar cuidadosamente toda la documentación. Gracias a la sintaxis SQL estándar, Room es extremadamente comprensible, lo que le permite comenzar de inmediato sin perder mucho tiempo leyendo la documentación.


8. RxJava


RxJava es una implementación de Java de la API ReactiveX que le permite vincular tareas y eventos asincrónicos en secuencias observables . Los usuarios esperan que las aplicaciones modernas muestren datos en tiempo real. En otras palabras, quieren que la información se actualice automáticamente. Es en este aspecto que RxJava es útil.


Al recibir datos en tiempo real, se vuelve extremadamente difícil combinar múltiples solicitudes API, cambiar flujos y manejar errores. Es aquí donde RxJava se demuestra perfectamente, y es por esta razón que comenzamos a usar esta biblioteca. Estoy de acuerdo en que RxJava puede parecer confuso y difícil de aprender, pero esta biblioteca definitivamente merece su tiempo. Incluso después de cambiar a Kotlin, continuamos usando RxJava debido a sus ventajas. Cuando se combina con la API de Kotlin, mejora aún más gracias a las funciones de extensión adicionales.


 Single.zip( /* Execute first API call and retry twice if it fails */ apiService.getMovieActors(id).retry(2), /* Execute second API call and retry twice if it fails */ apiService.getMovieDetails(id).retry(2), /* Receive successful results and merge them into single model */ BiFunction<List<Actor>, MovieDetails, Movie> { actors, details -> Movie(details, actors) } ) /* Execute API calls on IO thread */ .subscribeOn(Schedulers.io()) /* Receive results on MainThread */ .observeOn(AndroidSchedulers.mainThread()) .subscribeBy( onError = { /* Handle error */ }, onSuccess = { /* Handle full movie data */ } ) 

Intente hacer algo similar al fragmento anterior utilizando Java simple. Vamos


9. Android KTX


Android KTX es un conjunto de extensiones envolventes para la API de Android en Kotlin que lo hacen más amigable. El objetivo principal de esta biblioteca es hacer que la API de Android sea más conveniente de usar. Contiene muchos métodos y excelentes características nuevas de Kotlin, como parámetros con nombre, funciones lambda y parámetros predeterminados.


 /* Display View */ view.isVisible = true /* Apply padding to all sides */ view.setPadding(padding) /* Update padding on any side */ view.updatePadding(left = newPadding, right = newPadding) /* Quick Toast */ toast("Display test toast") /* New way to create bundle */ bundleOf { "key1" to item1 "key2" to item2 } /* Better way to use SharedPreferences */ sharedPreferences.edit { putString("key1", "value1") putString("key2", "value2") } 

Android KTX se caracteriza por la presencia de muchas funciones de extensión, y la única forma de conocerlas es sumergirse en el código de la biblioteca para ver cómo las funciones mejoraron la API de Android. Android KTX simplifica la forma en que usa la API de Android y, por esta razón, esta biblioteca debería ser la base de todas las aplicaciones de Android escritas en Kotlin.


10. Daga


Nuestra lista de las 10 mejores bibliotecas no estaría completa sin Dagger. Esta biblioteca es un marco de inyección de dependencia completamente estático en tiempo de compilación. Dagger, como RxJava, es realmente difícil de entender (tuve que pasar un tiempo para entender su ejemplo de CoffeeMaker), pero definitivamente merece el tiempo y el esfuerzo.


La inyección de dependencia es una forma de agregar componentes pequeños a otros modelos con un esfuerzo mínimo. Por ejemplo, si tiene un modelo de automóvil, puede agregarle neumáticos y reemplazar fácilmente la implementación de neumáticos en el futuro, sin cambiar una sola línea de código en el modelo de automóvil.


Cuando desarrolle aplicaciones más complejas, definitivamente no querrá realizar tareas de inyección de dependencias usted mismo, porque la cantidad de código crece rápidamente y se vuelve demasiado complicada de soportar. Dagger le ahorra este problema porque crea un gráfico de inyección de dependencia en tiempo de compilación a través del procesamiento de anotaciones.


El año pasado, Google agregó un módulo Android Dagger separado que le permite escribir menos código repetitivo y simplifica la inyección de dependencia.


Conclusión


Así que aquí está: nuestra lista de las 10 mejores bibliotecas de Android en 2018. Diez excelentes bibliotecas que harán que el proceso de desarrollo de Android sea más agradable para cualquiera que decida usarlas. ¿Quieres más bibliotecas? Dio la casualidad de que en nuestra empresa desarrollamos varias de nuestras propias bibliotecas de Android. Puedes familiarizarte con ellos:


  • MjolnirRecyclerView : agrega soporte para encabezado, pie de página, componentes de vista vacía y DiffUtils a RecyclerView;
  • Goldfinger : simplifica la implementación de la autenticación de huellas digitales;
  • DBInspector : visualiza y proporciona acceso a bases de datos de aplicaciones;
  • Complexify es una manera fácil de verificar la calidad de la contraseña de un usuario;
  • Prince of Versions : maneja las actualizaciones de la aplicación dentro de la aplicación.

Source: https://habr.com/ru/post/es425397/


All Articles