Uma das coisas fantásticas de Racket é a documentação. Esta pode ser consultada online ou offline quando você instala o ambiente na sua máquina (existem instaladores para Windows, Linux e Mac OS X).
A instalação é fácil veja meu post para mais detalhes. Para escrever nosso programa para Android ou browser vamos usar o Moby, um compilador da linguagem Advanced Student Language (uma das linguagens do Racket) para Javascript/mobile.
Não precisa se preocupar com a instalação do Moby. Ele está disponível no PLaneT, o sistema de distribuição de pacotes do Racket. Isto quer dizer que o DrRacket (uma IDE que vem incluída) vai instalar o Moby pra você no primeiro uso e deixar tudo prontinho...
Ok, então você instalou o Racket, abriu o DrRacket, e agora?
Como sempre, muito fácil.
Para começar, vamos verificar que seu ambiente está funcionando corretamente.
Cole o código abaixo na área de definições:
#lang planet dyoo/moby:3:10 |
"hello world" |
true |
(define (f x) (* x x)) |
(check-expect (f 42) 1764) |
(check-expect (map f '(1 2 3 4 5)) |
(list 1 4 9 16 25)) |
Clique em "Run" (ou use o atalho CTRL+T) e veja o resultado:
Welcome to DrRacket, version 5.1.1 [3m]. Language: planet dyoo/moby:3:9; memory limit: 256 MB. "hello world" #t Running tests... Both tests passed! >
A primeira vez pode ser um pouco mais lenta pois o DrRacket vai baixar e instalar o Moby. As outras execuções não precisam de Internet e serão rápidas.
Agora vamos criar dois arquivos:
- counter.rkt
#lang planet dyoo/moby:3:10 |
(define initial-world 0) |
(big-bang initial-world (on-tick add1)) |
- run-counter.rkt
#lang racket |
(require (planet dyoo/moby:3:10)) |
(run-in-browser "counter.rkt") |
Agora basta executar o run-counter.rkt clicando no botão "Run".
Pronto, sua primeira aplicação está criada.
Veja como ficou:
Ela é bem simples, só um contador. Mas que funciona no browser e.... e no seu Android!! Se você não tiver um, funciona no do seu amigo...
Para instalar a aplicacão no Android precisamos gerar um pacote. Para isto criamos um outro arquivo, o "build-counter.rkt", com o seguinte conteúdo:
#lang racket (require (planet dyoo/moby:3:10)) (create-android-phone-package "counter.rkt" "counter.apk")
Este programa vai transformar nosso "counter.rkt" em um pacote para Android "counter.apk".
Pronto!
Sim, pronto! Instale a aplicação no seu Android e divirta-se!
Como ficou no Android?
Como eu não tenho um telefone com Android, baixei a SDK com um emulador e criei um dispositivo virtual para testar.
Baixei o Android SDK pra Linux e extraí num diretório qualquer.
Basta executar o utilitário em tools/android para criar um AVD (dispositivo a ser emulado). Para criar um
AVD é preciso instalar alguma versão da API, na área "Avaiable Packages" eu escolhi "SDK Platform Android 3.1, API 12, revision 2".
Em resumo:
Inicie o dispositivo clicando em "Start".
Para desbloquer a tela use "Page Up" do seu teclado.
Para instalar o nosso aplicativo "counter" no Android, execute este comando num terminal:
rodolfo@lisa:~/Downloads/android-sdk-linux_x86/platform-tools$ ./adb install ~/projects/racket-for-smartphones/counter.apk 1348 KB/s (203114 bytes in 0.147s) pkg: /data/local/tmp/counter.apk Success
Instalado! Clique no menu de aplicações, aquele ícone com vários quadradinhos entre o globo e o fone.
E lá está nossa aplicação counter!!! Clique no ícone para executar.
Minha conclusão é que este procedimento é mais fácil do que o Hello World em Java proposto pelo Android SDK... e já temos algo melhor que um Hello World.
Você tem um Android aí na sua mão? Quer testar? Baixe e instale o pacote counter.apk (200 kB) e me mande uma foto!
[editado 2011/05/30 12:11]
O meu amigo Juan Lopes testou num Android, vejam:
Se você acha que um contador não é tão legal, então pode tentar outros exemplos, e pode também criar sua própria aplicação. O Moby dá acesso a GPS, sensor de movimento, acelerômetro, Internet, e tudo que não tiver lá pode ser estendido.
Para mais informações, veja a documentação oficial do Moby e a página do projeto com slides, material em áudio e vídeo (em inglês).
Futuro
O Danny Yoo está trabalhando em um compilador de Racket para Javascript, o Whalesong, que deve ser integrado ao Moby, substituindo a camada atual de compilação. Feito isto, ele pretende focar novamente em melhorar o Moby.
Agradecimentos
Obrigado ao Danny por ter atualizado o Moby para funcionar corretamente com a versão mais recente do Racket (5.1.1), à equipe PLT por criar o Racket, e à comunidade pelo entusiasmo e prestatividade.
2 comments:
Bacana, vou criar uma VM para começar a me aventurar no racket.
Parabéns pelo post
O Racket é mesmo bastante viciante.
A comunidade é muito ativa e receptiva.
Estamos começando mais um canal de comunicação, específico para quem quer se comunicar em Português, seja por dificuldades com o inglês ou para manter a proximidade com os falantes de nossa língua.
Confira:
http://groups.google.com/group/racket-br
Post a Comment