sexta-feira, 30 de janeiro de 2015

Dominando o Android: Atualização 2

Olá povo,

Em atenção as pessoas que compraram meu livro, estou reportando os erros que o pessoal está encontrando. Sendo assim, segue abaixo mais algumas atualizações sobre o livro. Quem quiser acompanhar e reportar erratas pode participar do grupo de discussão sobre o livro.

Capítulo 1

Página 43. A pasta values-v11-mcc724-mnc31 informada não funcionaria pois teria que ser respeitada a ordem de avaliação dos recursos. O nome correto seria values-mcc724-mnc31-v11.
Obrigado Douglas Drumond!

Página 46. A propriedade densityDpi da classe Configuration só está disponível na API Level 17 (Android 4.2). E as propriedades screenHeightDp e screenWidthDp na API Level 13 (Android 3.2). Uma alternativa para obter esses valores é utilizar a classe DisplayMetrics.
Obrigado Tatiani Lima!

Capítulo 4

Página 113: No lugar de setEditorActionListener(OnEditorActionListener), usar setOnEditorActionListener(OnEditorActionListener).
Valeu Jorge Felipe (por essa e outras).

Página 134. Na seção "Cabeçalho e Rodapé", no lugar de setListAdapter(Adapter) lê-se listView.setAdapter(Adapter).

Página 136: Na seção "EmptyView", quando fui fazer esse exemplo, ele era inicialmente com uma ListActivity.
public class MainActivity extends ListActivity {
  ...
  public void onCreate(Bundle savedInstanceState){
    setContentView(R.layout.activity_main);
    listView = getListView();
    ...
  }
  ...
}
Com isso, o exemplo funciona corretamente, porque internamente a classe ListActivity define a propriedade emptyView da ListView. Entretanto, no Lollipop, por padrão, a  ListActivity não exibe a ActionBar (barra de título da parte superior), então resolvi herdar de ActionBarActivity. E com isso, esqueci de adicionar a seguinte linha:
listView.setEmptyView(findViewById(android.R.id.empty));

Essa correção já está disponível no GitHub.
Obrigado Vitor Albuquerque!

Capítulo 5

Página 155: No segundo parágrafo, no lugar de android:text, seria android:textColor.

Página 159: Remover propriedade android:background dos botões, uma vez que ela foi definida no arquivos values/styles.xml.

Capítulo 6

Página 195: No único parágrafo, no lugar de equipe, seria hotel.

Geral

Em vários exemplos estou utilizando o valor fill_parent ao invés do match_parent. Entretanto o segundo é o recomendado desde a API Level 8 (Android 2.2). Mas se você observar, o valor das constantes internamente é o mesmo. Então na prática, não faz diferença nenhuma, ele só foi renomeado. Mas, por precaução, utilize match_parent.

--

Bem pessoal! Por enquanto é isso. Desculpem o transtorno, mas é que não houve revisão técnica pois encareceria o livro. Essa incubência ficou para vocês e eu agradeço bastante essa colaboração.

À medida que forem achando alguma coisa, por gentileza reportem no grupo. Vai ajudar a mim e a outros leitores.

4br4ç05,
nglauber

segunda-feira, 26 de janeiro de 2015

Aplicação do blog no GitHub

Olá povo,

Na última terça-feira (20/01) disponibilizei a versão 1.4 do aplicativo do blog no Google Play. Ele sofreu algumas mudanças internas e foi visualmente modificado para seguir alguns (poucos) padrões do Material Design. Ele é compatível com smatphones e tablets Android rodando o Gingerbread (2.3) ou superior.




Mas sem sombra de dúvida, a grande novidade é que o código-fonte está disponível no GitHub!!!
Então, tá esperando o quê? Baixa logo o código e começa a dar uma fuçada no que eu fiz :)

Achou um bug? Tem alguma coisa que você não gostou no aplicativo? Tem alguma melhoria a ser feita? Modifica e faz um push request pra mim! Vamos compartilhar conhecimento :)

4br4ç05,
nglauber

quarta-feira, 21 de janeiro de 2015

Dominando o Android com 20% de desconto!!!

Olá povo,

O meu livro "Dominando o Android" estava até ontem (20/01/2015) com desconto de 25% no site da Novatec. Mas se você perdeu essa oportunidade, não se preocupe!

Adquira o livro com desconto de 20% utilizando o código "GLAUBER"!

Vê se não perde essa chance hein!

4br4ç05,
nglauber

terça-feira, 13 de janeiro de 2015

Dominando o Android - Atualização 1 - Capítulo 14

Olá pessoal,

Acho que com o livro as atualizações aqui do blog ficarão mais frequentes. Pelo menos é o que eu espero. Vou fazer o possível para colocar as correções/atualizações aqui através de mini-posts falando rapidamente sobre a mudança e o por quê.

Para quem não sabe, o código-fonte dos exemplos do livro estão disponíveis no meu gitHub (https://github.com/nglauber/dominando_android). E lá vocês vão ver dois branchs master e master_updates. O código que estiver com algum bug, eu vou corrigir e colocar no branch master e o que for atualização ficará no branch master_updates.
Também criei um grupo de discussão (http://groups.google.com.br/d/forum/livro-dominando-o-android) que todos podem se inscrever.

Recebi hoje uma avaliação do livro que informava que o mesmo "tinha uma falha grave" e "estava desatualizado" porque eu não estou utilizando API do Google Play Services 6.5. E que uma classe (a LocationClient) que eu usava no exemplo não existia.

Não sei se todos sabem, mas o processo de finalização de um livro requer algumas etapas que demandam tempo: revisão ortográfica, diagramação, checar figuras, referências, tempo de impressão na gráfica, etc.  A versão 6.5 do Google Play Services foi anunciada no dia 17/11/2014, mas só foi disponibilizada para os desenvolvedores dia 08/12/2014. Época que o livro já estava com a editora em processo de finalização e impressão. Sendo assim, não pude atualizar o capítulo 14 (Mapas e Localização) a tempo. Sendo assim, peço desculpas pelo meu livro ter ficado desatualizado, por conta de alguns dias... :(
Mas quero reiterar que o código apresentado no livro funciona perfeitamente do jeito que ele se encontra.

--

Pedido de desculpas feito, vamos ao que mudou! As alterações feitas em relação ao exemplo do livro estão nesse commit aqui no branch master_updates, uma vez que é uma atualização da nova API e não uma correção de um erro do livro.

Conforme o comentário do leitor, a classe com.google.android.gms.location.LocationClient não existe mais. Mas seus métodos foram distribuídos em outras classes.
  • Na classe GeofenceReceiver, os eventos de Geofence podem ser tratados com a classe GeofencingEvent.
  • Na classe MainActivity, muito do que era feito com a LocationClient passou a ser responsabilidade da GoogleApiClient, inclusive os eventos de conexão (ConnectionCallbacks e OnConnectionFailedListener).
  • Ainda na MainActivity para obter a localização atual passamos a utilizar a classe LocationServices.FusedLocationApi. Bem como para requisitar atualizações sobre mudança na localização.
  • E finalmente, para adicionar um Geofence, usamos a classe LocationServices.GeofencingApi.
Isso é um resumo pessoal. Quem quiser mais informações sobre essa nova API, recomendo esses links:



Qualquer dúvida, sugestão ou crítica serão muito bem-vindas.

4br4ç05,
nglauber

sexta-feira, 9 de janeiro de 2015

Entrevista para o blog da Novatec

Oi povo,

Segue abaixo a entrevista que dei para o blog da novatec.

Nelson contou um pouco de sua história profissional e o trabalho com tecnologias móveis. Confira a entrevista e conheça um pouco mais sobre o autor:
Como foi seu início na computação?
Comecei em 2000 fazendo cursos isolados de Delphi e ASP. Em seguida, fiz alguns sistemas comerciais para algumas empresas em Caruaru onde nasci. Em 2002, me mudei para Recife para fazer o curso técnico de desenvolvimento de software no Ibratec (atual Unibratec) e felizmente uma semana após me mudar, consegui um emprego na área. Inicialmente trabalhei com ASP alguns meses, depois 3 anos com Delphi. Em 2006 entrei no CESAR para trabalhar com jogos para celulares Java ME, e em 2009 iniciei os estudos com Android por causa do projeto em que estava trabalhando. Desde então, estou ligado a tecnologias móveis, inclusive meu mestrado foi dedicado a esse tema.
Por que decidiu escrever sobre o Android?
Quando iniciei meus estudos sobre Android em 2009, tive dificuldade em achar material disponível na Internet, pois o Android ainda estava começando. Então decidi compartilhar com outros desenvolvedores o que estava aprendendo escrevendo posts para o meu blog e publicando artigos para revistas especializadas. Outro fator motivador foram aulas de Android que ministro nos cursos de graduação e pós-graduação. Muitos alunos me fazem questionamentos durante as aulas e que na maioria das vezes está disponível no blog ou em algum artigo que eu tinha escrito. Então resolvi juntar esses conteúdos, atualizá-los e transformá-los em um livro. E com isso, ajudar aos meus alunos e quem quer aprender Android de uma maneira geral.
Autor Nelson Glauber
Que benefícios e responsabilidades o título de primeiro Developer Expert de Android da América Latina te trouxe? Como isso afetou sua vida profissional?
Para mim, o maior benefício é o reconhecimento do trabalho por parte do próprio Google. Esse programa além de reconhecer o profissional pelo seu conhecimento, valoriza o trabalho de divulgação da plataforma na qual ele foi nomeado. Mas graças a esse título, tive o prazer de participar do Google I/O (conferência mundial dos desenvolvedores Google) em San Francisco e conhecer HQ da Google em Mountain View.
Outra coisa fantástica é a quantidade de desenvolvedores que conheci durante os eventos que participei. Pessoas de toda parte do Brasil e do mundo envolvidas com tecnologias Google e que trabalham no próprio Google. Inclusive o prefácio do livro foi escrito por dois Googlers daqui do Brasil.
A responsabilidade é basicamente continuar o trabalho com o Android, ministrando aulas, palestras, escrevendo artigos, compartilhando código, etc. O problema é que um GDE precisa ter muito mais cuidado com o que ele diz ou escreve, pois passa a ter um peso bem maior.
Nelson Glauber
Qual o principal conselho que você dá para quem quer entrar no mercado de desenvolvimento mobile?
Desenvolver aplicações para dispositivos móveis é muito divertido, mas sem sombra de dúvida, desafiador. Então a primeira coisa é gostar da área, depois é se dedicar aos estudos. Caso não possua experiência em programação ainda, deve primeiro consolidar os conceitos básicos de computação e programação, para depois dedicar-se à programação mobile. E posso garantir que o resultado de tanto esforço é bem gratificante, pois ver o fruto do seu trabalho na palma da sua mão e sendo utilizado por pessoas do mundo todo é muito bacana.
Acredita que é uma área que ainda tem muito a crescer?
Sem dúvida! A venda de smartphones cresce ano após ano e cada vez mais queremos mais serviços nos nossos telefones. Consequentemente a demanda por pessoas especializadas no assunto aumenta. E é importante ressaltar que mobile não se restringe mais a smartphones e tablets, agora temos os dispositivos vestíveis como os relógios inteligentes com Android Wear que abordo em dois capítulos do livro.
Autor Nelson Glauber - Dominando o Android
Pretende escrever outros livros?
A princípio não tenho nada em mente, pois escrever um livro requer meses de dedicação e como atualmente trabalho durante o dia e ministro aulas à noite, fica um pouquinho difícil. Então vamos aguardar a reação dos leitores ao “Dominando o Android”, e caso a receptividade seja boa, quem sabe?

4br4ç05,
nglauber

quarta-feira, 31 de dezembro de 2014

2014 o melhor ano da minha vida

Olá povo,

O ano de 2014 foi fantástico para mim, sem dúvida o melhor de todos profissionalmente falando (pessoalmente, tudo na paz). Foram muitas aulas de Android, no curso de graduação da Unibratec e uma turma de pós-graduação na FJN em Juazeiro do Norte-CE.
Em abril, fui nomeado o primeiro Google Developer Expert de Android na América Latina, graças à todos os meus alunos, aqueles que lêem meu blog, meus artigos e assistem minhas palestras.
Com essa nomeação, fiz minha primeira viagem internacional: fui para os Estados Unidos participar do Google I/O em San Francisco. Aproveitei a viagem e conheci o HQ do Google em Mountain View. Repeti a dose em Novembro para GDE Summit (encontro anual dos GDEs).
Também palestrei algumas vezes esse ano, boa parte sobre Android Wear e Android Lollipop: no lançamento do GDG Recife, na FAFICA em Caruaru, no próprio CESAR em um intervalo técnico, nos DevFest do Centro-Oeste (em Goiânia) e do Nordeste (em Aracajú) e NextLevel Apps (em São Paulo).
E para coroar 2014, meu livro "Dominando o Android" que comecei a escrever em abril, foi publicado e o lançamento oficial acontecerá em janeiro/2015.

E 2015? Janeiro começa com o lançamento do livro (próxima semana divulgo a data/horário). Vou ministrar a disciplina de Android na pós-graduação da Unibratec, e continuarei com minhas turmas de graduação. Isso, é o que eu sei até agora, mas espero que esse ano novo seja tão bom quanto esse que está passando.

Obrigado a todos que participaram do meu 2014. Conto com todos vocês em 2015, que tem tudo para ser SENSACIONAL!

[EDITADO 01/01/2015]
Cometi a imbecilidade de esquecer que uma das melhores coisas desse ano foi a quantidade de pessoas que conheci. Todo o pessoal dos GDGs: Marcelo Quinta, Silas Limeira, Bianca Ximenes, Euler Neto, Joselito Junior, Erick Mendonça, Luis Leão, Juarez Filho e Roberto Brandini. Os Googlers daqui do Brasil: Alê Borba, Neto Marin e José Papo. Os GDEs brasileiros: Ciro Nunes, Zeno Rocha, Alline OliveiraDaniel Viveros e Lúcio Maciel. Sem contar os GDEs de fora: Mario Viviane, Erik Hellman, Eyal Lezmy, Sebatian Mauer, Mike Wolfson e Cyril Mottier. E os roommates  na Google I/O: Alexandre Tarifa e Paulo Fernandes.

Se eu esqueci de alguém, me avisem que eu atualizo a lista :)
[/EDITADO]

4br4ç05,
nglauber

quarta-feira, 3 de dezembro de 2014

Livro "Dominando o Android"

Olá povo,

É com uma enorme satisfação, que após meses de trabalho, estou lançando meu livro pela editora Novatec entitulado Dominando o Android: do básico ao avançado.
Este livro é destinado a estudantes e profissionais de desenvolvimento de software que querem aprender a desenvolver aplicativos para a plataforma Android. Dominando o Android aborda desde os conceitos mais básicos até as técnicas mais avançadas no desenvolvimento de aplicativos para plataforma mobile do Google.
Por meio de exemplos práticos e didáticos você aprenderá:
  • Criar aplicativos para smartphones e tablets Android.
  • Conhecer os principais componentes para construir interfaces gráficas elegantes e compatíveis com diversos tamanhos e densidades de tela.
  • Persistir dados locais com SQLite e no cartão de memória do aparelho.
  • Acessar web services para enviar e receber dados.
  • Utilizar serviços do Google, tais como: Maps, Cloud Messaging, YouTube, Google+ e AdMob. 
  • Trabalhar com serviços, broadcast receivers, notificações e app widgets.
  • Deixar sua aplicação mais divertida usando animações e recursos multimídia. 
  • Criar aplicativos para os relógios inteligentes (smartwatches) com Android Wear.
  • Saber as principais novidades do Android 5.0 Lollipop. 
Ao final, o leitor estará pronto para projetar e desenvolver seus próprios aplicativos e publicá-los no Google Play.

A capa do livro foi feita pelo meu grande amigo Leo Macedo e o prefácio foi escrito por José Papo e Neto Marin do Google Brasil. Conto ainda com a participação ilustre do meu amigo Marcelo Quinta no capítulo sobre Google Play.

O lançamento do livro [ocorreu dia 14/01/2015]  ainda não está 100% definido, mas provavelmente será na segunda semana de janeiro/2015. Quando tiver mais novidades, posto aqui.

Os interessados, entrem no site da Novatec e vejam como adquirir o seu :)

O código-fonte está disponível no GitHub e se quiser tirar dúvidas sobre o livro, inscreva-se aqui.

4br4ç05,
nglauber