Black Friday 20% de desconto
Tá acabando

0

dias

00

hrs

00

min

00

seg

Artigos > Mobile

Utilizando features do Java 8 no Android

Alex Felipe
Alex Felipe
Imagem de destaque

Se você é um desenvolvedor Android experiente, não é novidade que o SDK do Android não opera com as versões mais recentes do Java, em específico, atualmente temos 100% de compatibilidade com a versão 7 do Java.

Isso significa que as features legais que temos no Java 8 ou mais, por padrão, não estão disponíveis!

Como uma alternativa, a própria comunidade desenvolveu libs capazes de trazer um pouco da experiência do Java 8 no Android, como é o caso do Retrolamba que permite o uso de expressão lambda para interfaces funcionais (Single Abstraction Method).

Jack toolchain e o desugar

Com base no interesse da comunidade, a própria equipe da Google disponibilizou o Jack (Java Android Compiler Kit), também conhecida como Jack toolchain, como uma alternativa experimental, para possibilitar algumas features do Java 8 'nativamente'.

Mesmo tendo uma proposta boa, a configuração via Jack toolchain não era das melhores, como também, haviam outros impactos que o depreciaram :(

Então, a partir da versão 3.0 do Android Studio, a Google otimizou essa solução adicionando uma etapa a mais na transformação de bytecode chamada desugar:

O desugar opera logo depois do código ser compilado pelo próprio compilador do Java, possibilitando o uso das features do Java 8 mesmo tendo a limitação de versão.

Habilitando o Java 8 de maneira

Para habilitar as features do Java 8 com o desugar, precisamos apenas adicionar o seguinte script no arquivo de build do módulo:


android { // demais configs

compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } }

Pronto, somos capazes de usar as features do Java 8 disponibilizadas.

"Legal, mas em quais situações posso usufruir das features do Java 8?"

A mais comum está relacionada às interfaces funcionais, como é o caso de listeners, por exemplo, um listener de clique com expressão lambda fica da seguinte maneira:


botao.setOnClickListener(v -> {
// implementação do clique
});

Comparando com a maneira 'tradicional':


botao.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
    // implementação do clique
    }
});

Bem mais simple, né?

Limitações com o uso do Java 8

Entretanto, nem todas as features estão acessíveis para qualquer versão de SDK do Android, mas não fique triste, abaixo estão as features disponíveis em quaisquer versões:

Da mesma forma, existem outras APIs, como é caso da classe Stream, que só são suportadas quando utilizamos a versão 24 como SDK mínimo. Outro caso são as classes do pacote java.time que exige a API 26.

De qualquer forma, é possível verificar os pacotes acessíveis diretamente pela documentação do Android. Agora vem a questão:

Vale a pena habilitar o uso do Java 8 no ambiente Android?

Caso o seu objetivo são features são suportadas por todas versões de SDK do seu projeto, faz muito sentido usufruir do Java 8.

Agora, se tiver que modificar o suporte mínimo, não é recomendável a mudança, afinal, você vai deixar de atender mais usuários por algo que não trás tanto valor para o produto final.

"Puts, eu queria muito ter acesso à API do Stream ou LocalDate, mas não posso aumentar o suporte mínimo do SDK, e agora?"

Existem algumas libs que podem ser adicionadas, como é o caso da Lightweight-Stream-API e a joda-time. É importante ressaltar que elas possuem uma interface similar às do Java, mas a implementação pode ter diferenças, como a ausência de processamento paralelo.

Abrindo portas para o Kotlin

Muito provavelmente, você já ouviu falar sobre a linguagem Kotlin para desenvolver Apps Android.

A partir dela, temos suporte a expressão lambda, métodos padrões de interfaces entre outras features que não existem na própria linguagem Java, como é o caso de extensão de função, funções de alta ordem entre outras que vemos formação desenvolvimento mobile.

Leia também:

Artigos de Tecnologia e Negócios > Mobile
Tá acabando

0

dias

00

hrs

00

min

00

seg

  • 1244 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

  • Desconto 20%

Premium

Desconto 20%
  • 1244 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

12X
R$75 R$60
à vista R$900 R$720
Matricule-se

Premium Plus

Desconto 20%
  • 1244 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

12X
R$100 R$80
à vista R$1.200 R$960
Matricule-se

Max

Desconto 20%
  • 1244 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

12X
R$120 R$96
à vista R$1.440 R$1.152
Matricule-se
Conheça os Planos para Empresas

Acesso por 1 ano

Estude 24h/dia onde e quando quiser

Novos cursos todas as semanas