terça-feira, 5 de junho de 2012

Como ser um bom programador Android


Você quer ser um bom programador Android? Então desenvolva as seguintes características ao máximo:
Paixão por programação
Gostar muito de ler
Gostar de aprender
Curiosidade
Autodidata
Inteligência
Memória
Concentração
Paciência
Humildade
Ensinar
Gostar de desafios
Organização
Planejar
Projetar
Algoritmos
Estrutura de dados
Design Patterns
Boas Práticas
Conhecer os recursos da linguagem Java e as bibliotecas do Android
Preguiça
Impaciencia
Ego
Precisão
Cumpridor de prazos
disponibilidade de tempo
Flexibilidade
Desconfiometro
Dedicação e perseverança
Solucionador de problemas

Você precisa ter aquilo que chamo "Paixão por programação", amar programar. Então, programe, programe e programe.
Você precisa "Gostar muito de ler"  pois é preciso "Gostar de aprender", porquê tem uma imensa "Curiosidade" para conhecer detalhes e um pouco de tudo.
Ter sempre um livro ou artigo ou tutorial sendo lido, estudado, esmiuçado!
Precisa ser "Autodidata", pois não teria como pagar cursos para tudo. Aliás, nem existe curso para isso tudo. Então, ter uma razoável "Inteligência" e "Memória" são fundamentais.
Capacidade de "Concentração" e "Paciência".
Ter "Humildade" para aprender com os melhores e uma dose maior para aprender com os novatos. E reservar um tempo para "Ensinar", saiba que ensinar é uma maneira de aprender!
Ler códigos e soluções de terceiros.
"Gostar de desafios", novidades, novos problemas, isso é o seu oxigenio!
Ajuda muito ter 'Organização", saber "Planejar" e "Projetar".
Ter um conhecimento geral de processamento de dados é importante, conhecer "Algoritmos", "Estrutura de dados", "Design Patterns" e é claro conhecer e usar  as "Boas Práticas" de programação.
"Conhecer os recursos da linguagem Java e as bibliotecas do Android", profundamente. Classes, objetos, frameworks, threads, activities, services, broadcasts receivers, sqlite, views, screens, smartphones, tablets, nullpointerexceptions: esse é o seu mundo.
Você precisa de uma dose de "Preguiça", para fazer código que funcione o mais rápido possível, para fazer código fácil de ler para não ter que gastar tempo no futuro, que seja fácil de fazer manutenção, e principalmente fazer código reutilizável, afinal fazer código repetitivo é demais para um preguiçoso!
"Impaciência", não dá para ficar esperando as coisas acontecerem, antecipe-se. Prepare-se para o futuro.
"Ego", tem que ter orgulho do seu trabalho. tem que ser um modelo a ser seguido, não ter um código amaldiçoado! Imagine um reles estagiário criticando um trabalho seu? Nunca, jamais!
Você precisa desenvolver com "Precisão", o programa tem que funcionar 100%.
Você deve ser um "Cumpridor de prazos", para isso saber avaliar a quantidade de trabalho e a sua dificuldade é fundamental.
E o que falar da "disponibilidade de tempo"? Precisa aprender a administrar o tempo desde cedo. Senão, não vai dar para fazer tudo isso. E, acima de tudo, existe muita vida lá fora!
Tenha "Flexibilidade", pois, muitas coisas irão mudar durante o desenvolvimento.
"Desconfiometro", este é um aparelhinho que deve ter sempre bem calibrado. A sua solução é a melhor? É abrangente? É facilmente alteravel? Tem pontos fracos? É como um sexto sentido, que vai ajudar em situações onde é dificil antever ou prever, mas, com ele você vai antecipar um possível problema.
No fim, tudo se resumirá em "Dedicação e perseverança", 99% de transpiração e 1% de inspiração e talento! Não se engane, nada substitui o trabalho duro.
Aí, você vai ser considerado um "Solucionador de problemas", aquele cara que sempre encontra uma solução para os problemas mais dificeis!
Felicitações, você agora é um bom programador Android!

domingo, 3 de junho de 2012

Um ano de Android

   Estou completando um ano de Android.


O tempo passa, um ano de convivência com o robozinho verde.
Tenho estudado muito e codificado pouco.
Publiquei dois aplicativos simples:
Um gerador de números para a megasena
Uma calculadora de juros

Abraços!





Android, file io e encoding

  Vamos fazer umas alterações no projeto anterior para testarmos gravação e leitura de arquivos de textos e encoding.
  Usaremos:
  Para output:
   openFileOutput - médodo que abre um arquivo e retorna um objeto tipo FileOutputStream.
   OutputStreamWriter - classe que faz a tradução de character em byte(s) usando o encoding. Se não for informado um específico assume o default.
   BufferedWriter - grava characters. no buffer.

  Para input:
    openFileInput - médodo que abre um arquivo e retorna um objeto tipo FileInputStream
    InputStreamReader - classe que faz a tradução de bytes para character usando o encoding. Se não for informado um específico assume o default
    BufferedReader - classe que faz a leitura de characters via buffer.

   Vamos aos códigos:

 main.xml


strings.xml


TesteFileEcondingActivity.java

Vamos digitar alguns caracteres acentuados para testar:



Acima gravamos texto.txt com o encoding default



Acima, leitura do arquivo texto.txt, usando o encoding Cp1252. Vejam os caracteres acentuados.



Acima, lendo o arquivo informando o encoding UTF8. Como foi com ele que gravamos, leitura ok.

É isso.
Abraços.