sábado, 4 de abril de 2015

Curso: Android Fundamentals, Udacity

Dei uma olhada nesse curso da Udacity, UD853, Developing Android Apps, Android Fundamentals.
Ele foi preparado pela Google, e cobre vários tópicos interessantes. É baseado no desenvolvimento de um aplicativo chamado Sunshine, que mostra as condições do tempo buscando os dados num provedor de dados do tempo de diversas localidades.
Um dos instrutores é o engenheiro de software Reto Meier, autor de uma série de livros sobe desenvolvimento Android. Usei um de seus livros no início do meu aprendizado sobre desenvolvimento Android.
A duração prevista é de 10 semanas, mas, depende da disponibilidade e conhecimentos de cada um.
O pré-requisito é programar em alguma linguagem OO por aproximadamente 3 anos e ter conhecimento de Java básico.
É em inglês, mas tem legendas em (quase sempre...) português.
Vale a pena.
PS: Tem opção paga e free.
Abraços



terça-feira, 31 de março de 2015

Testando o CountUpTimer no emulador Android

  Vamos testar a classe CountUpTimer do post anterior.

  Segue a activity do teste:




Vejam como ficaram os testes com 1 segundo e 5 segundos:



Ps: ficou muito ruim, perdeu qualidade no upload.


segunda-feira, 23 de março de 2015

Usando o Handler como Timer 3, CountUpTimer

  No Android, sempre que pensamos em alguma rotina baseada em tempo, a indicação é usar a classe Handler. Mesmo que o primeiro recurso que lembrarmos seja a classe Timer!
  A classe Handler possui esses métodos que são úteis para implementar comportamentos baseados em tempo: postAtTime, postDelayed, sendMessageAtTime e sendMessageDelayed.
  Nesse exemplo uso uma classe abstrata CountUpTimer, que foi inspirada na CountDownTimer, para implementar um jeito de executar tarefas repetitivas após um dado intervalo de tempo. Toda a lógica está no método handleMessage do Handler, o método que se deve implementar ao extender o CountUpTime é o onTick, que recebe o tempo decorrido desde o start em milisegundos.
  Notem que o onTick deve ser implementado com o cuidado de ser breve, e, com uma preocupação adicional, de estar sendo chamado em um bloco sincronizado.

 Como costumam dizer por aí que uma imagem vale por mil palavras, eu acho que um código vale pelo menos por umas tantas quantas... Então seguem os códigos:





Uma observação final, implemente o CountUpTimer na MainThread.

Abraços