sábado, 30 de junho de 2012

Dica: layout.out.xml

Esse erro ocorre quando você tenta rodar o app estando no editor do layout.xml.
Parece-me um bug no plugin do Android.

Mas a solução é fácil, siga os passos abaixo.


Para corrigir:
- Delete o layout.out.xml
- De um clean no projeto - vá na aba Project -> clean
- Rode o projeto como android application ou de Open num fonte java e rode a app


Para evitar esse problema sete o seguinte:
Na aba Window:
> Preferences
  > Run/Debug
    > Launching
      > Launch Operation
        Selecione em: "Always launch the previously launched application"

quarta-feira, 20 de junho de 2012

Nova versão do app 100Palpite?

Acabei de publicar no Google Play a nova versão do aplicativo 100Palpite?
Link no Play
As alterações são:
1- Inclusão de um banner para publicidade.
2- Número de dezenas por palpite. Antes só gerava palpites com 6 dezenas, agora pode-se escolher entre 6 e 15 dezenas.
3- Envio do arquivo exportado (para o SD card) por eMail ou bluetooth

Boa sorte!

terça-feira, 5 de junho de 2012

Programação Android, aprendendo direito.


  Bom, você já deu uma verificada como funciona a programação Android, talvez tenha seguido um ou outro tutorial, e decidiu investir seriamente em aprender como desenvolver aplicativos para o Android.
  Nesse ponto, estou considerando que o seu conhecimento, de programação em geral e da linguagem Java em particular, seja pelo menos intermediário.
  Também estou considerando que você não tem acesso a um curso de programação Android numa dessas escolas conceituadas de pelo menos umas 40 horas. Ou, se tiver, já tenha terminado.
  A pergunta a ser respondida é: qual o caminho a seguir?
  Eu, recomendo que você use um bom livro como guia nos próximos passos.
  Um livro que seja recomendado pela comunidade. Tem que ter o aval de programadores experientes.
  Neste ponto eu desaconselho (existe essa palavra?), não recomendo de jeito nenhum, tentar seguir o caminho mais tentador, por parecer mais barato, de seguir apostilas gratuítas, video-aulas, ou coisas do gênero. Inclusive tutoriais, a menos que seja oficial do Google, ou, seja recomendado pela comunidade experiente.
  E por que um livro é mais indicado? Porque um livro bem escrito foi pensado como uma sequencia de lições, graduadas para se aprender passo-a-passo, preparando uma base sólida de conhecimentos mínimos para se desenvolver alguns aplicativos que representem vários aspectos das diversas possibilidades do ambiente Android.
  Mas, os outros materiais não podem ter essa mesma função? Poder, pode. Mas, nem sempre. E, além disso, me responda você: qual seria o custo para você se aprender errado?
  Neste ponto você não tem como avaliar se o material é bom ou não. Vamos evitar muita decepção e tempo se evitarmos isso.
  Esses materiais devem ser usados como um complemento, como material de consulta, como exemplos de uso. E, também, para avaliar seu conhecimento, se descobrir falhas nos códigos. Também, para aprender outras tecnicas de programação.
  Você já deve estar se perguntando, ou pelo menos pensado, espera aí cara, você escreve tutoriais para quê? Eu respondo mais tarde, aguarde...
  Eu disse seguir um livro, mas se tiver mais algum(ns) para consultas seria interessante. Aí você vai achar que eu esteja de gozação. Não, não estou. O problema é que perfeição está longe do ser humano, então o tal livro base pode ser bom, mas perfeito, nunca! Pode ser superficial num ponto, ou, não abordar algum tópico importante.
  Aprenda a ler códigos. Estude códigos. Aprenda com códigos. Os samples devem ser consultados sempre!
  Se conhecer algum programador Android experiente que possa ser consultado seria excelente. Se não tiver, consulte foruns e o Google. Para a maioria das suas dúvidas você vai encontrar as respostas que foram respondidas para alguém que teve a mesma pergunta. Se não encontrar, pergunte você mesmo em algum forum.
  Agora, vamos tentar responder a questão dos tutoriais. Quando alguém se dá ao trabalho de escrever um tutorial, ele está tentando passar uma informação sobre algum aspecto do Android (vamos considerar apenas o Android). Significa que o autor do tutorial está focado num tópico. Muitas vezes está passando por cima de uma série de considerações, como boas práticas, consistência, inclusive segurança, etc. Está também direcionando o tutorial para um determinado público, considerando nível de conhecimento, experiência, etc. Então, o novato vai achar que tem um exemplo completo e acabado, quando o tutorial está tentando passar uma (boa) idéia a ser desenvolvida.
  Quando você estiver mais ou menos na metade do  livro, você pode e deve iniciar algum projeto para aplicar o aprendizado.
  Bons estudos!

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.