sábado, 20 de abril de 2013

Usando uma KEY para armazenar no TinyDB


Olá,

Embora o TinyDB seja projetado para uso simples, é possível criar um INDEX que aponte para certos dados. Digamos , por exemplo, que voce precise incluir (e depois recuperar)  numa chave CODIGO ( e que aponte para  NOME e EMAIL ). Como exemplo para testar, crie uma tela tal como essa:























Então , no Blocks editor codifique assim :






















Com isto, NOME (indexado pelo valor 1)  e EMAIL (indexado pelo valor 2) são armazenados/recuperados SOB a chave igual ao valor do campo codigo.TEXT.
Por exemplo, se vc cad astrou CODIGO = 2 (valor entrado em codigo.TEXT) no formulário , recupere os dados  informando 2 em codigo2.TEXT.

Espero que seja útil para projetos "mais complexos" .... :)

Isso aí, até o próximo

Germinaro


sábado, 13 de abril de 2013

Contornando problemas com o TIMER no AppInventor


Android Apps in 1 Hour: No Coding Required

Olá, o AppInventor ainda não tem uma solução(embora muitos usuários tenham requisitado)  para casos em que a aplicação necessite ficar "VIVA"(ALIVE) e rodando em background como um SERVICE .
Rodando em background significa que mesmo que o aparelho apresente-se como desligado, ou em estado latente ,  o mesmo fica "aguardando " por algum evento, tal como um SMS, uma chamada telefonica, ou mesmo contando tempo...
Quando o aparelho "desliga"o visor, no caso apresentado, o TIMER "pára" e é retomado quando é ligado novamente ... 
Caso você tenha problemas (como tive) de ao trabalhar com o CLOCK e o tempo do aparelho estiver definido para desligamento do visor (ou do aparelho) com valor inferior ao tempo definido, a solução que encontrei foi :
 - UTILIZE o Notifier (componente da guia OTHER STUFF) na Palette da IDE.
Exemplo :















Neste caso/solução acima , foi definido no componente CLOCK um TimerInterval de 60000 (o que corresponde a 60s ou seja 1 minuto = 60000  milissegundos. O CLOCK trabalha com millissegundos.

Então, WHEN Clock1.Timer(a cada vez que EXPIRA o TimerInterval , além de outras atividades é emitida uma notificação (Call Notifier.ShowAlert ) e ISTO MANTÉM o smartphone "acordado"...
Para que funcione então, é preciso que o tempo desligamento do visor do aparelho seja definido com valor SUPERIOR ao tempo de expiração do CLOCK1.

Foi esta solução que encontrei e...FUNCIONOU !!!

Espero que ajude !

Até o próximo post,

Germinaro



quinta-feira, 11 de abril de 2013

Enviando email com o AppInventor

Curso UDEMY : Android App in 1 Hour


Olá, Vamos a um exemplo de como enviar um email utilizando os recursos do AppInventor. Crie uma tela inicial semelhante a essa:

Arraste e defina :

3 Horizontal Arrangement, onde vc vai colocar cada conjunto (Label + Textbox), conforme figura ;
3 labels (Email para:, Assunto:, Texto: )   ;
3 textbox, sendo que naquele que segue Texto: marque MULTILINE nas propriedades;
1 button (Enviar Email);
1 componente ActivityStarter .









OK, a lógica fica assim (no Blocks Editor):























Notem que faz chamada a um recurso INTERNO do aparelho com android.intent.action.VIEW !!!

Claro, dá para melhorar o DESIGN e adaptar ãs necessidades , mas o básico é isso !

Agora testar no Emulador ou no smartphone...vai utilizar a sua conta definida no aparelho para fazer o envio do email...

OK?

até o próximo ,


Germinaro

quarta-feira, 3 de abril de 2013

Exemplo : um simples browser...

Olá,

Claro, não teremos todas as funcionalidades de um browser normal.
Mas, serve como exemplo da simplicidade.
Vamos lá , precisamos de :
1) Crie uma tabela (arraste um TableArrangement) de 2 x 2.
2) Nesta tabela coloque um Textbox1(com texto default: http://) e um Button1 com texto=GO ! , por exemplo;
3) Arraste um componente Webviewer (da Pallete NOT READY FOR PRIME TIME).

OK !
Fica assim:


















Agora vamos ao CÓDIGO (monte os blocos no BLOCKS EDITOR) :










 Agora, só testar no Emulador ou no SmartPhone...

Fácil ? Alguma outra idéia ?

Até o próximo post,

Germinaro