Quer saber como criar aplicativos mais inteligentes, utilizando recursos de Machine Learning, Inteligência Artificial e tudo com o poder de processamento do próprio Android? Venha comigo, vou te ensinar!
Meu nome é Junior Martins, sou instrutor e desejo boas-vindas a mais este conteúdo de Android.
Audiodescrição: Junior se autodescreve como um homem de pele clara, com cabelos loiros escuros e compridos, que vão até a altura dos ombros. Está utilizando óculos de armação preta, com uma camiseta também na cor preta. Ele está a frente de um fundo degradê azul e rosa.
Ao longo do curso, vamos utilizar o aplicativo Mail para mensagens eletrônicas ou e-mails. Vamos entender o que é a biblioteca de Machine Learning do Google, ML Kit, utilizada para dispositivos Android e iOS. Além disso, aprenderemos omo ela pode ser útil em situações onde temos alguns e-mails com texto em vários idiomas, para que possamos identificar qual é o idioma do e-mail, e também realizar a tradução de diversos idiomas.
Para isso, vamos entender como realizar a instalação de cada uma delas, quais são as suas peculiaridades e padrões. Também vamos aprender um pouco melhor sobre como gerenciar cada um dos modelos que permitem fazer essa tradução, obtendo o download deles antecipadamente, quando for necessário, e até, se for o caso, realizar a exclusão. Vamos entender o motivo de cada uma dessas situações.
Vamos estudar alguns casos de uso específicos e analisar detalhadamente quais são os requisitos para poder utilizar essas bibliotecas. Um ponto muito importante e interessante é que elas funcionam offline. Ou seja, mesmo sem internet, após desligar o Wi-Fi e os dados móveis, podemos entrar em um modelo e a identificação continuará sendo realizada. Se tivermos o modelo baixado, podemos fazer a tradução do idioma.
Embora toda a interface do nosso aplicativo tenha sido construída utilizando o Jetpack Compose, os conceitos que aprenderemos também poderão ser aplicados com o sistema de View.
Para melhor aproveitar o curso, recomendamos que você tenha noção de como funciona o Jetpack Compose, e especialmente como lidar com o sistema de ViewModel e estados. O motivo é que vamos integrar todo o conhecimento do ML Kit com relação à parte de tradução a essa arquitetura recomendada pela própria equipe de desenvolvedores do Android.
Espero que você esteja animada(o) para começar a estudar inteligência artificial no Android. Vamos lá!
Para prosseguirmos com o conteúdo deste curso, vamos utilizar o Mail, um simulador de aplicativos de e-mail dividido em três telas principais. A primeira é uma caixa de entrada contendo e-mails em vários idiomas. Podemos deslizar, clicar em um e-mail e abri-lo.
A segunda tela exibe o conteúdo e o título dos e-mails. Por fim, temos uma terceira tela na opção de ajustes. Por enquanto, ela não contém nada, mas vamos notificar isso posteriormente. É importante conhecermos a estrutura deste projeto.
Estamos com o projeto aberto no Android Studio. Ele segue uma estrutura bem similar à que desenvolvemos em outros cursos na Alura. As pastas estão divididas em di
, que é a nossa Injeção de Dependências. Ela está pronta, assim não gastaremos muito tempo com essa parte, já que não é exatamente da biblioteca que vamos configurar.
O projeto será disponibilizado para download, basta baixar e fazer a instalação.
Temos algumas pastas de extensões e um diretório chamado mlkit
com alguns arquivos prontos que nos ajudarão mais adiante. No momento apropriado, entenderemos para que serve.
Além disso, a classe TextTranslator
também está pronta, mas ainda não tem conteúdo. Enfim, o que interessa é que ela está pronta e configurada para que a Injeção de Dependências seja feita, e assim não perdemos tempo com esse detalhe.
Temos o diretório model
, contendo alguns modelos simples que utilizaremos ao longo do curso. No diretório samples
, temos alguns exemplos, como uma lista de e-mails em vários idiomas, simulações de data e de cores. São conteúdos que utilizaremos para realizar as traduções.
No diretório ui
, está a parte de interface do nosso aplicativo. Não lidaremos com toda a parte de interface, pois são conceitos que já abordamos em materiais anteriores, mas vocês podem explorar o diretório Components
e o ContentEmail
, tela com a qual trabalharemos bastante.
Dentro de ContentEmail
, temos o ContentEmailScreen.kt
e o ContentEmailViewModel
, que são duas partes que usaremos bastante. Caso queiram se familiarizar, podem explorar também. No momento, tanto a parte de ui
, quanto a lógica - não diretamente ligadas à biblioteca - estão prontas, assim poupamos tempo e focamos no que interessa, que é trabalhar com os recursos de IA.
Seguindo, teremos o nosso diretório home
, navigation
, configurações que são bem similares ao diretório do ContentEmail
. Descendo mais um pouco, encontramos o nosso MainActivity
, que é uma única activity para seguirmos com a parte de navegação. Passaremos um bom tempo realizando os primeiros testes.
Esse projeto utiliza uma tecnologia um pouco diferente do que você pode estar acostumada(o) para instalar dependências no Android Studio. Na seção Gradle Scripts
, podemos notar que existe um arquivo chamado libs.versions.toml
. E se abrirmos o arquivo build.gradle.kts
, ele será um pouco diferente do que estamos acostumados.
Esse arquivo foi atualizado pela equipe de desenvolvimento do Android em si, e também foi disponibilizá-lo dentro deste projeto. Explicarei mais sobre o que muda, mas é interessante ter essa noção.
Para quem quiser conferir melhor sobre essas mudanças, basta acessar a documentação Migrar o build para catálogos de versões.
Após a revisão, você pode baixar, instalar e rodar o aplicativo. Espero que esteja pronta(o) para começar. Vamos lá!
Existe um caso muito comum quando queremos possibilitar que mais pessoas ao redor do planeta utilizem nosso aplicativo. São situações com a seguir: temos um emulador, que está com o idioma em português, nosso aplicativo possui alguns textos como "Escrever", "Início" e "Ajustes". Há outro emulador rodando, com o idioma em inglês por padrão, mostrando "Home", "Settings" e "Write".
Para esse tipo de situação, então, é bastante comum que, dentro de um mesmo projeto do Android Studio, possamos acessar a pasta em "res > values > strings". Se abrirmos o arquivo strings.xml
, podemos perceber que no topo existe uma seção que recomenda abrir o editor, "Open Editor".
Clicando nessa seção, localizaremos um botão com o ícone de um planeta e o símbolo de um botão verde para adicionar um novo idioma. Se clicarmos nele, vários idiomas são disponibilizados para que possamos criar um novo arquivo de tradução.
Por exemplo, poderíamos selecionar, dentre os idiomas, o "French" (francês). Dentro da nossa pasta de values
surgirá um novo arquivo de strings
que estará vazio. Se quisermos traduzir nosso aplicativo para o francês, podemos voltar ao arquivo principal, copiar algumas das mensagens, abrir o novo arquivo de strings
e colá-las para fazer a tradução.
Automaticamente, quando nosso app for instalado, o próprio Android identificará que existe um arquivo específico de tradução para o francês e mostrará o aplicativo já traduzido.
Essa abordagem é válida quando sabemos quais são os textos que estarão em nosso aplicativo. Por exemplo, sabemos que o menu sempre estará lá, o "Início", dentre outros. Porém, quando temos textos que variam, como no caso de nosso aplicativo de e-mail, não podemos saber o idioma do e-mail que receberemos, nem seu conteúdo.
Além disso, se quiséssemos traduzir todas as strings de nosso arquivo strings
, seria um trabalho considerável. Pode haver cerca de 20, mas em um aplicativo real esse número pode chegar a centenas ou milhares. Imagine o trabalho de fazer essa tradução para cada um dos 10 idiomas mais falados no mundo.
Para poupar esse trabalho, podemos usar o ML Kit, que é um conjunto de ferramentas de inteligência artificial otimizadas para Android e iOS, desenvolvidas especificamente para trabalhar com Machine Learning em dispositivos móveis pela Google.
Temos a vantagem de utilizá-lo offline uma vez configurado. Isso permite respostas mais rápidas, pois podemos obter uma tradução sem enviar e receber dados de um servidor. Oferece maior segurança, permitindo traduzir textos sensíveis localmente, sem expor os dados a uma rede.
E há também uma economia de dados para quem usa o app e para nós, como desenvolvedores ou empresa, por não precisarmos pagar por um serviço em nuvem para realizar as traduções.
O ML Kit é um conjunto de possibilidades. É como se tivéssemos várias caixinhas com propósitos diferentes, e cada uma delas pode ser baixada, instalada e configurada para oferecer algumas opções.
Atualmente, o ML Kit é dividido em duas seções:
Reconhecimento de imagens, pessoas, objetos, entre outras possibilidades;
Processamento de linguagem natural, que inclui o escaneamento de códigos, tradução e identificação de idiomas.
Disponibilizaremos um material mais completo na descrição, caso queiram entender melhor o ML Kit.
Para termos uma noção do potencial dessas ferramentas, a Google disponibiliza alguns estudos de caso. Um deles é do aplicativo WPS, que utiliza as duas bibliotecas que abordaremos, economizando cerca de 65 milhões de dólares por ano identificando idiomas e realizando traduções. É um estudo de caso interessante que recomendo a leitura.
Estudo de caso: A WPS usa o ML Kit para traduzir textos em 43 idiomas e economizar US $65 milhões por ano
Para começarmos a utilizar esses recursos, deixarei o link da documentação na descrição. Nela, selecionaremos a opção de Android, que é a biblioteca de identificação de idiomas. Existem tutoriais na página, mas podemos deslizar até encontrar a seção sobre instalação. Há duas formas de instalar as bibliotecas do ML Kit, optaremos pela mais simples. Copiaremos implementation 'com.google.mlkit:language-id:17.0.4
.
Voltando ao Android Studio, primeiramente fecharemos os arquivos abertos e excluiremos o arquivo de strings
que criamos anteriormente, pois era apenas um exemplo. Localizaremos o arquivo build.gradle.kts
, deslizaremos até o final e colaremos a dependência que copiamos.
Se você estiver utilizando um projeto mais antigo, bastará sincronizar o projeto. No entanto, como estamos usando uma versão mais recente, precisaremos colocar parênteses após "implementation", fechar com outro parênteses no final e substituir as aspas simples por apóstrofos.
implementation ("com.google.mlkit:language-id:17.0.4")
Agora, deixaremos o cursor em cima do google
, selecionaremos apertaremos "Alt + Enter", escolheremos a opção "Replace with new library catalog declaration for language-id" e pressionaremos "Enter". Feito isso, se clicarmos em "Sync Now", a dependência será instalada.
O procedimento terminou e se clicarmos com "Ctrl + V" em "Language", seremos redirecionados ao nosso arquivo de libs.version.toml
. Nele, é possível notar que existe um language-id
sendo adicionado.
Está tudo pronto para começarmos a utilizar os recursos de Machine Learning em nosso aplicativo. Vamos lá!!
O curso Android com IA: explorando o Google ML Kit para tradução de textos possui 127 minutos de vídeos, em um total de 56 atividades. Gostou? Conheça nossos outros cursos de IA para Mobile em Inteligência Artificial, ou leia nossos artigos de Inteligência Artificial.
Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:
Impulsione a sua carreira com os melhores cursos e faça parte da maior comunidade tech.
1 ano de Alura
Assine o PLUS e garanta:
Formações com mais de 1500 cursos atualizados e novos lançamentos semanais, em Programação, Inteligência Artificial, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.
A cada curso ou formação concluído, um novo certificado para turbinar seu currículo e LinkedIn.
No Discord, você tem acesso a eventos exclusivos, grupos de estudos e mentorias com especialistas de diferentes áreas.
Faça parte da maior comunidade Dev do país e crie conexões com mais de 120 mil pessoas no Discord.
Acesso ilimitado ao catálogo de Imersões da Alura para praticar conhecimentos em diferentes áreas.
Explore um universo de possibilidades na palma da sua mão. Baixe as aulas para assistir offline, onde e quando quiser.
Acelere o seu aprendizado com a IA da Alura e prepare-se para o mercado internacional.
1 ano de Alura
Todos os benefícios do PLUS e mais vantagens exclusivas:
Luri é nossa inteligência artificial que tira dúvidas, dá exemplos práticos, corrige exercícios e ajuda a mergulhar ainda mais durante as aulas. Você pode conversar com a Luri até 100 mensagens por semana.
Aprenda um novo idioma e expanda seus horizontes profissionais. Cursos de Inglês, Espanhol e Inglês para Devs, 100% focado em tecnologia.
Transforme a sua jornada com benefícios exclusivos e evolua ainda mais na sua carreira.
1 ano de Alura
Todos os benefícios do PRO e mais vantagens exclusivas:
Mensagens ilimitadas para estudar com a Luri, a IA da Alura, disponível 24hs para tirar suas dúvidas, dar exemplos práticos, corrigir exercícios e impulsionar seus estudos.
Envie imagens para a Luri e ela te ajuda a solucionar problemas, identificar erros, esclarecer gráficos, analisar design e muito mais.
Escolha os ebooks da Casa do Código, a editora da Alura, que apoiarão a sua jornada de aprendizado para sempre.