10 bibliotecas que todo desenvolvedor Android deve conhecer

10 bibliotecas que todo desenvolvedor Android deve conhecer


Em 2015, já publicamos um artigo sobre as cinco principais bibliotecas que usamos naquele momento. No entanto, a plataforma Android cresceu significativamente desde então. Como você sabe, em um campo tão rapidamente desenvolvido como o desenvolvimento de software, tudo muda e se desenvolve na velocidade da luz. Por isso, decidimos que era hora de atualizar a lista das bibliotecas Android mais eficazes.


Sem mais delongas, vamos direto para a nossa lista. Primeiro, examinaremos uma das mais antigas, mas, na minha opinião, uma das bibliotecas Android mais eficazes.


1. Retrofit


O Retrofit é um cliente HTTP com segurança de tipo que permite apresentar sua API REST como uma interface. Você poderá gerenciar corpos, cabeçalhos, parâmetros de solicitações de API e muitos outros com a ajuda de anotações, o que tornará esse processo simples e compreensível. A atualização também permite fazer chamadas de API síncronas e assíncronas.


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

Além disso, o Retrofit fornece um módulo Rx separado. Se você usar o Rx, este módulo retornará Observable ao acessar a API, o que permitirá associá-lo ao restante do seu aplicativo. Estas são apenas algumas das muitas razões pelas quais ainda amamos e usamos o Retrofit.


2. Moshi


Moshi é uma biblioteca para converter JSON em objetos Java e Kotlin. Muitos percebem Moshi como GSON 3.0. No entanto, essa biblioteca é superior ao GSON em vários aspectos: é mais rápida , suporta o Kotlin, atualiza, gera exceções previsíveis e não usa o adaptador DateTime corrompido por padrão. Além disso, usando Moshi, o processo de conversão de objetos JSON em Java (e vice-versa) se torna o mais simples e direto possível.


 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) 

Também adoramos a Moshi por oferecer suporte à API JSON. A API JSON é uma especificação de construção da API, e muitas das APIs com as quais trabalhamos são gravadas usando essa especificação. A API Moshi JSON facilita nossa vida porque a API JSON é convertida em objetos Java significativos. O Retrofit ainda suporta Moshi, e juntos eles funcionam muito bem.


3. Chuck


Chuck é um inspetor de HTTP para Android que permite que você explore o histórico HTTP do seu aplicativo no seu celular. O log HTTP é exibido como uma notificação, que pode ser expandida para efetuar login no Chuck e ver informações detalhadas. O uso do Chuck irá, incrivelmente, agradar o departamento de controle de qualidade, pois eles podem ver onde o problema está localizado: no lado Android ou no servidor. Esta biblioteca às vezes pode ajudá-lo mais do que o logcat. Isso ocorre porque seu histórico HTTP será preservado, mesmo que o aplicativo seja fechado inesperadamente, enquanto o logcat se limpa periodicamente após uma reinicialização.


Chuck


4. Planar


Você provavelmente sabe que o download de imagens no Android é muito difícil. Mesmo o redimensionamento de uma imagem pode ser um desastre com uma OutOfMemoryException . Glide é uma biblioteca de upload de imagens que fornece uma API de qualidade que permite modificar a imagem como desejar.


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

A biblioteca permite carregar facilmente uma imagem remota no ImageView, definir imagens estáveis, armazenar em cache e dimensionar imagens, etc. Apenas tente fazer tudo isso sem a ajuda do Glide, e você entenderá imediatamente por que está na nossa lista de bibliotecas principais. O Glide ainda suporta algumas alterações padrão comuns, como a criação de uma imagem circular.


5. ThreeTen


ThreeTen é uma biblioteca de datas e horas para o Android. Esta é uma versão portada do JSR-310 que foi incluída no Java 8 como o pacote java.time.* . Adoramos essa biblioteca porque a API padrão do Calendário Android transforma o trabalho em um pesadelo.


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

O ThreeTen é muito inferior ao JodaTime em termos de número de métodos e tamanho binário. A API desta biblioteca também é menor que a API JodaTime. Se você já está usando o JodaTime, provavelmente não deve atualizar para o ThreeTen. No entanto, eu recomendo tentar o ThreeTen se você está apenas começando a trabalhar em um novo projeto.


6. Madeira


O Timber é uma biblioteca de log poderosa, porém simples, construída sobre a classe Log do Android. Com sua ajuda, você pode facilmente ligar e desligar a exibição de logs. A biblioteca também oferece excelente suporte para registrar seqüências de caracteres e exceções formatadas. Graças a essas vantagens, o Timber também está incluído em nossa lista de bibliotecas principais que usamos em quase todos os projetos do 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. quarto


O quarto é o ORM oficial para Android e há vários motivos para esse status. Esta biblioteca possui uma API amigável ao usuário, semelhante ao Retrofit. A sala também depende muito de anotações e sintaxe SQL padrão.


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

Além disso, o Room inclui suporte a Rx e LiveData por LiveData , para que você possa usá-lo como quiser. A principal vantagem do Room sobre vários ORMs é sua simplicidade. Muitos ORMs têm uma API muito mais complexa, para a qual você precisará estudar cuidadosamente toda a documentação. Graças à sintaxe padrão do SQL, o Room é extremamente compreensível, o que permite que você comece imediatamente sem gastar muito tempo lendo a documentação.


8. RxJava


RxJava é uma implementação Java da API ReactiveX que permite vincular tarefas e eventos assíncronos em sequências observáveis . Os usuários esperam que aplicativos modernos exibam dados em tempo real. Em outras palavras, eles desejam que as informações sejam atualizadas automaticamente. É nesse aspecto que o RxJava é útil.


Ao receber dados em tempo real, torna-se extremamente difícil combinar várias solicitações de API, alternar fluxos e manipular erros. É aqui que o RxJava se demonstra perfeitamente e é por esse motivo que começamos a usar esta biblioteca. Concordo que o RxJava pode parecer confuso e difícil de aprender, mas essa biblioteca definitivamente merece seu tempo. Mesmo depois de mudar para o Kotlin, continuamos a usar o RxJava por causa de suas vantagens. Quando combinado com a API Kotlin, fica ainda melhor graças às funções de extensão adicionais.


 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 */ } ) 

Tente fazer algo semelhante ao trecho acima usando Java simples. Vamos lá.


9. Android KTX


O Android KTX é um conjunto de extensões de wrapper para a API do Android no Kotlin que o tornam mais amigável. O principal objetivo desta biblioteca é tornar a API do Android mais conveniente de usar. Ele contém muitos métodos e ótimos novos recursos do Kotlin, como parâmetros nomeados, funções lambda e parâmetros padrão.


 /* 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") } 

O Android KTX é caracterizado pela presença de muitas funções de extensão, e a única maneira de descobrir sobre elas é mergulhar no código da biblioteca para ver como as funções melhoraram a API do Android. O Android KTX simplifica a maneira como você usa a API do Android e, por esse motivo, essa biblioteca deve ser a base de todos os aplicativos Android escritos no Kotlin.


10. Adaga


Nossa lista das 10 principais bibliotecas não estaria completa sem o Dagger. Essa biblioteca é uma estrutura de injeção de dependência completamente estática em tempo de compilação. O Dagger, como o RxJava, é realmente difícil de entender (eu tive que gastar algum tempo para entender o exemplo do CoffeeMaker), mas definitivamente merece o tempo e o esforço.


A injeção de dependência é uma maneira de adicionar pequenos componentes a outros modelos com o mínimo de esforço. Por exemplo, se você tiver um modelo de carro, poderá adicionar pneus a ele e substituir facilmente a implementação de pneus no futuro - sem alterar uma única linha de código no modelo de carro.


Ao desenvolver aplicativos mais complexos, você definitivamente não desejará executar tarefas de injeção de dependência, porque a quantidade de código está crescendo rapidamente e se tornando muito complicada para oferecer suporte. O Dagger evita esse problema porque ele cria um gráfico de injeção de dependência em tempo de compilação, através do processamento de anotações.


No ano passado, o Google adicionou um módulo Android Dagger separado, que permite escrever menos código padrão e simplifica a injeção de dependência.


Conclusão


Então, aqui está: nossa lista das 10 principais bibliotecas Android em 2018. Dez ótimas bibliotecas que tornarão o processo de desenvolvimento do Android mais agradável para quem decide usá-las. Quer mais bibliotecas? Aconteceu que em nossa empresa desenvolvemos várias de nossas próprias bibliotecas Android. Você pode se familiarizar com eles:


  • MjolnirRecyclerView - adiciona suporte ao cabeçalho, rodapé, componentes de exibição vazia e DiffUtils ao RecyclerView;
  • Goldfinger - simplifica a implementação da autenticação de impressão digital;
  • DBInspector - exibe e fornece acesso aos bancos de dados do aplicativo;
  • Complexify é uma maneira fácil de verificar a qualidade da senha de um usuário;
  • Prince of Versions - lida com atualizações de aplicativos dentro do aplicativo.

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


All Articles