Monthly Archives: julho 2017

Livro Android Essencial com Kotlin

Posted by rlecheta on julho 26, 2017
Android, Livros / 6 Comments

Olá pessoal, este post visa explicar um pouco do conteúdo mostrado no livro Android Essencial com Kotlin.

O nome Essencial surgiu da ideia de ter um resumo simples e prático sobre os principais assuntos no desenvolvimento para Android. Este livro está mais atualizado e possui mais exemplos que a sua mesma versão em Java.

Obs: O livro utiliza libs como OkHttp e Retrofit para web services e Google Room para persistência de dados. Durante a leitura do livro são dadas diversas dicas de produtividade com a linguagem Kotlin, e também é explorado libs criadas pela JetBrains como Anko e Android Extensions.

O que veremos neste livro?

O livro começa com uma introdução ao Android e logo depois temos um capítulo básico sobre a linguagem Kotlin.

Os próximos capítulos são básicos sobre o desenvolvimento de aplicativos para Android, como a construção de telas/layouts, tratamento de eventos, activity, toolbar, fragments, etc.

No capítulo 9 iniciamos o desenvolvimento do aplicativo dos carros, que se estende até o final do livro. Este aplicativo consulta os carros no servidor criado no meu livro de Web Services RESTFul.

O aplicativo mostra diversos componentes do Material Design como o Navigation Drawer (menu lateral), Toolbar, Tabs, Listas , Cards, etc e mostra de forma simples boas práticas de desenvolvimento. O objetivo é aprender fazendo e tenho certeza de que no final da leitura você terá uma boa base sobre como continuar seus estudos e criar seus próprios apps.

Na home do aplicativo existem 3 tabs onde é possível visualizar os carros por tipo (clássicos, esportivos e luxo), e no botão FAB (+) é possível cadastrar um novo carro enviando os dados para o servidor, inclusive o app mostra como tirar uma foto e fazer upload.

Na tela de detalhes do carro, podemos assistir um vídeo do carro, visualizar um mapa de onde ele é fabricado, e até podemos Favoritar o carro. O carro favoritado é salvo no banco de dados do aplicativo e pode ser visualizado na Tab Favoritos.

Obs: O livro utiliza libs como OkHttp e Retrofit para web services e Google Room para persistência de dados. Durante o livro diversas dicas de produtovidade com a linguagem Kotlin são fornecidas, e também é explorado libs criadas pela JetBrains como Anko e Android Extensions.

Este vídeo mostra o aplicativo dos carros que será construído durante o livro. Durante o vídeo veja que eu cadastro e excluo um carro, e também favorito alguns.

Fora o aplicativo dos carros, o livro possui capítulos simples sobre diversos temas importantes do desenvolvimento para Android, como: Notificações, Alarmes, Receivers, Services, mensagens de Push com Firebase, etc.

Espero que gostem do livro, abs.

Android Studio e a ferramenta de compilação (build-tools) 26.0.0

Posted by rlecheta on julho 18, 2017
Android, Tutorial / 2 Comments

Olá pessoal, segue um comunicado importante sobre o método findViewById(id).

A partir da  ferramenta de compilação (build-tools) 26.0.0 e da biblioteca appcompat-v7 versão “26.0.0 Beta 1”, o método findViewById(id) mudou de assinatura:

Antigamente o método findViewById(id) retornava uma View e era preciso fazer o cast, como neste exemplo:

Java:

ImageView img = (ImageView) findViewById(R.id.img);

Kotlin:

val img = findViewById (R.id.img) as ImageView

Ao utilizar a nova versão da lib appcompat-v7 (26.0.0) o método findViewById(id) retorna um tipo genérico (subclasse de View). Por isso mudou a forma de fazer a chamada:

Java (sem cast):

ImageView img = findViewById(R.id.img);

Kotlin (sem cast):

val img = findViewById<ImageView>(R.id.img)

Se você conhece o que são tipos genéricos é simples entender. Veja que foi adicionado o tipo T na assinatura do método findViewById(id). Para você conferir, segue assinatura do método:

public <T extends View> T findViewById(@IdRes int id) {

return getDelegate().findViewById(id);

}

O novo livro Android Essencial com Kotlin que em breve será lançado pela editora Novatec já contém estas atualizações.

Documentação Oficial (release notes):

https://developer.android.com/topic/libraries/support-library/revisions.html

Android – compilando projetos com o plugin do Gradle 3.0.0

Posted by rlecheta on julho 18, 2017
Android, Tutorial / Comentários desativados em Android – compilando projetos com o plugin do Gradle 3.0.0

Olá pessoal,

A última versão do plugin do Gradle para o Android Studio e a ferramenta de compilação (build-tools) tiveram algumas mudanças que acho importante comentar.

Se você baixar o Android Studio 3.0 atualmente, é provável que ele já esteja atualizado, mas de qualquer forma, segue dicas do que é necessário para atualizar os plugins de compilação:

Dica 1) Sempre mantenha o Android Studio atualizado, e comece a utilizar o Android Studio 3.0, mesmo que ainda esteja em beta.

Dica 2) Quando você fica na dúvida de qual versão utilizar de alguma biblioteca (ex: appcompat-v7), ou o que colocar nos arquivos build.gradle e gradle-wrapper.properties, crie um novo projeto no Android Studio, pois ele vai criar os arquivos corretamente, então é só copiar 🙂

Agora vamos aos detalhes…

1) Atualizar plugin do Android para Gradle

No arquivo build.gradle (raiz do projeto), podemos usar a nova versão do plugin (3.0.0 ou superior). Note que quando estiver lendo este tutorial é provável que exista uma nova versão, então sempre atualize. Atualmente é fácil atualizar pois o Android Studio vai lhe avisar que existe uma nova versão.

2) Atualizar versão do Gradle

Para que o plugin funcione é preciso atualizar a versão do Gradle que o projeto utiliza, isso é feito no arquivo gradle-wrapper.properties.

No meu arquivo atualmente estou usando a seguinte URL para a versão do Gradle:

distributionUrl=https\://services.gradle.org/distributions/
gradle-4.1-milestone-1-all.zip

 

 

 

3) Utilizar a diretiva “implementation” ao invés de “compile” no arquivo app/build.gradle

Antigamente, uma dependência no gradle era adicionada da seguinte forma:

compile 'com.android.support:appcompat-v7:versao-xxx'

Atualmente, o Google recomenda utilizar a diretiva implementation ao invés de compile, mas por questões de compatibilidade ambas vão continuar funcionando.

implementation 'com.android.support:appcompat-v7:versao-xxx'

Para maiores detalhes, segue documentação oficial do Google:

https://developer.android.com/studio/build/gradle-plugin-3-0-0-migration.html