Camélia Avenida tocará no Dev in Rio 2010

Nem todo mundo que me conhece sabe disso, mas eu tenho banda desde que eu me entendo por gente. O que algumas pessoas sabem é que a minha banda, Camélia Avenida, tem músicas gravadas e existe desde 2007. Agora, o que quase ninguém sabe é que tocaremos no evento de tecnologia mais sensacional de todos: Dev in Rio.

Andávamos meio escondidos porque recentemente nosso amigo e guitarrista Marcelo Ferreira deixou a banda. Levamos um tempo para decidir qual seria o o nosso futuro e acabamos optando por continuar apenas com um guitarrista. Depois de um tempo apenas ensaiando para adaptar as músicas, estamos de volta! E a estreia dessa nova fase vai acontecer dia 9 de Outubro no Dev in Rio.

Vamos tocar MUITO cedo. A ideia é estarmos lá fazendo barulho durante o credenciamento, ou seja, a partir das 8:30. O pessoal do #horaextra nos chamou para eliminarmos qualquer resquício de sono dos participantes do evento. E é isso que pretendemos fazer =)

Dev in Rio 2010

Todas as nossas músicas estão disponíveis para download no nosso site. Caso queira só ouvir sem ter que baixar, elas também estão disponíveis no MySpace. Além de mp3, nós temos a versão física do nosso primeiro EP. Na época em que gravamos, conseguimos um patrocício para a impressão de alguns encartes (só o encarte mesmo, o resto é tudo “feito a mão”, hehe) e o resultado ficou muito bom! Ainda temos alguns e estaremos distribuindo no Dev in Rio. Se quiser adquirir, é só pedir. Atenção: não é sorteio e nem venda. Caso goste do nosso som e queira uma cópia física do nosso EP, é só vir até nós e pedir. Simples assim. Depois, por favor, pirateie o máximo que puder. =P

Então é isso. Se quiser começar o sábado ouvindo um som, faça uma força e chegue cedo no Dev in Rio. Só lembrando, se quiser ouvir nossas músicas, elas estão disponíveis no nosso site e no MySpace.

Até lá!

Como foi o Dia Debian RJ 2010

O Dia Debian na Universidade Severino Sombra em Vassouras foi sensacional! Palestras excelentes sobre software livre, arduino e monitoramento de redes. E como não poderia faltar, uma sessão de Coding Dojo. Parabéns a todo o pessoal do Grupo de Software Livre do Sul Fluminense por terem tornado o evento possível. Foi realmente muito bom.

Eu estive lá para falar sobre jogos no Linux, livres ou não. A apresentação está disponível no SlideShare. Adicionei comentários aos slides para facilitar a compreesão. Sinta-se livre para baixá-los, alterar e distribuir como quiser.

Agradeço ao pessoal do Grupo de Software Livre do Sul Fluminense pela oportunidade de participar deste evento. Espero poder estar presente nos próximos Dias Debian, palestrando novamente ou apenas assistindo.

Então até o Dia Debian 2011!

Dia Debian RJ 2010 – 14 de Agosto em Vassouras

A distribuição Linux Debian faz aniversário dia 16 de Agosto. E para comemorar, todo ano nesta data ou no fim de semana mais próximo, é realizado o Debian Day em várias partes do mundo. No Brasil o Dia Debian acontece em diversos estados e o daqui do Rio de Janeiro será no dia 14 de Agosto, na Universidade Severino Sombra em Vassouras.

Eu estarei lá com a palestra “Liberdade Também nos Games!”. Nela vou mostrar porque é interessante desenvolver jogos também para Linux (e não só para Windows), mostrar jogos de qualidade que já estão disponíveis para essa plataforma (muito além de Tetris) e dar o caminho das pedras para quem pretende entrar nessa área. Além disso, falarei de fatos recentes que indicam que os dias de dual boot apenas para poder rodar jogos no Windows estão contados.

Além das palestras terá Hack Lab de Arduino (com o Turicas), Coding Dojo e no final, naturalmente, faremos um #horaextra para o pessoal se conhecer.

A grade completa de palestras está disponível aqui. Ah, e é tudo de graça! É só chegar lá. Imperdível, né? =)

Então nos vemos em Vassouras.

Até lá.

Ludum Dare: 48 horas para desenvolver um jogo usando PyGame

Fazer um jogo sobre um determinado tema em 48 horas. E quando eu digo “fazer”, não estou falando apenas sobre escrever código. É fazer mesmo! Game design, arte, som e código. Desde o início e sozinho (pois é, nada de pedir ajuda a aquele seu amigo designer). Isto é o Ludum Dare, uma competição online que acontece de tempos em tempos. Teve uma este mês e eu participei.

As regras do Ludum Dare são simples. É dado um tema e uma regra especial. Os competidores têm de Sexta-feira à meia noite até Domingo à meia noite para desenvolver o seu jogo utilizando qualquer tecnologia (só existem algumas poucas que não são permitidas). O tema foi Greed (ganância, cobiça) e a regra especial foi “only one of each”, ou seja, não era permitido repetir objetos no jogo. Então nada de desenhar apenas um sprite e sair repetindo ele pela tela. Pretende usar moedas para representar a ganância? Então você vai ter que desenhar uma por uma e elas terão que ser diferentes umas das outras. Isso aumentou muito a dificuldade e jogou fora um monte de possíveis ideias interessantes. Por exemplo, com essa restrição, você não pode fazer nenhum jogo de plataforma side scrolling, a não ser que você não repetisse o plano de fundo da fase, ou seja, teria que desenhar um background que cobrisse toda a fase. Outro exemplo são aqueles jogos casuais “infinitos”, nos quais você vai jogando enquanto conseguir sobreviver e a sua pontuação é baseada no tempo que conseguiu se manter vivo. É simplesmente impossível fazer um jogo nesse estilo quando você não pode repetir objetos.

Além do tema e da regra especial, também foi dado um segundo tema, que os competidores podiam usar ou não. Nesta edição o segundo tema foi pescaria.

Baseado nos dois temas e na regra especial, tive a seguinte ideia:
- Dois barcos pesqueiros. Um controlado pelo jogador e o outro pelo computador.
- Os “peixes” são na verdade tesouros: moedas, barras de ouro, Copa do mundo e etc.
- Cada “peixe” tem um valor e um peso atribuído a ele. O peso é diretamente proporcional ao valor (quanto mais valioso, mais pesado).
- Os barcos têm um limite máximo de peso que podem suportar. Se ultrapassar, o barco afunda.
- Ganha o barco que pescar mais sem afundar.
- Os barcos são feitos de papel (não faz diferença nenhuma na implementação nem no Game Design, mas na hora pareceu ser uma boa ideia).

(Não sei se perceberam, mas essa ideia é apenas um Blackjack 21 com uma roupagem diferente. Nada original.)

Chegou a hora de fazer o jogo. Como eu disse, os competidores devem fazer TUDO no jogo. Eu não queria me preocupar logo com a arte, então comecei a implementar sem mostrar nenhuma alteração na tela. Todos os resultados eram exibidos apenas no terminal (nesse ponto já era possível jogar =P). Depois fui incluindo algumas imagens aleatórias que eu consegui na internet. Usei PyGame no desenvolvimento, um framework para jogos em Python. A implementação foi bem tranquila, a PyGame é bem fácil de usar e é sempre gratificante programar em Python. O fato da minha ideia ser extremamente simples também contribuiu bastante com a facilidade na implementação (nem gravidade tem no jogo).

O problema foi fazer o resto do jogo. Eu já trabalho com isso há algum tempo, mas nunca precisei desenhar cada quadro de uma animação, por exemplo. Foi TENSO. Sou uma negação desenhando com lápis ou qualquer outro dispositivo físico, então usando o Gimp e o Pinta foi mais complicado ainda! Sem dúvida alguma, a maior parte do prazo eu gastei tentando dar um jeito na arte. Para fazer a música não tive problemas. Fui apresentado ao JamStudio (valeu Renata!) onde você só coloca os acordes e ele faz uma música pra você. Não sei se isso é contra as regras, mas agora já era.

Eu não consegui terminar tudo o que eu tinha em mente no prazo de 48 horas (acho que eu acabei dormindo demais =/), então entreguei do jeito que tava.

Mesmo tendo sérios problemas com a arte, a experiência foi muito satisfatória. A ideia do Ludum Dare é justamente proporcionar a experiência de uma pessoa participar de todas as etapas da criação de um jogo. Acredito que sirva como uma capacitação. Te torna apto a desenvolver rapidamente um protótipo a partir de uma ideia. O que é simplesmente sensacional. Ao invés de você chegar para uma equipe de artistas, programadores e game designers e tentar explicar a sua ideia a partir de rabiscos toscos, você implementa uma versão simples da sua ideia e mostra para eles. Muito melhor, não é mesmo?

O próximo Ludum Dare já está marcado para 20-22 de Agosto. Recomendo muito para quem pensa em fazer jogos, já faz ou simplesmente gosta de programar.

Caso alguém se interesse, o código do jogo está no meu github. Essa é a versão que eu submeti ao Ludum Dare e que está incompleta. Porém, assim que acabou a competição, eu criei outro repositório e continuei o desenvolvimento. Ainda tem coisa que eu gostaria de implementar, mas agora já está bem mais completo do que antes. Se quiser, é só baixar.

Ainda vou falar muito de PyGame aqui. Então se quiser saber mais, siga-me. =)

Até a próxima.

Desenvolvendo Apps para Google Android: Hello World

Estudar o SDK do Android já está há algum tempo nos meus planos, porém só agora comecei. Pretendo postar aqui tudo o que eu aprender sobre ele. Para começar, algo bem básico: montando o ambiente e criando o seu primeiro aplicativo.

Baixando e Instalando o Eclipse

Android é Java. Logo, você precisa de uma IDE. E já que tem que usar uma IDE, é melhor usar a que facilite mais o trabalho: Eclipse (3.4 ou superior). Dá pra fazer com qualquer outra, mas o Eclipse já tem um plugin destinado ao desenvolvimento para Android, por isso o seu uso é extremamente recomendado.

Você pode baixar o Eclipse Classic aqui. Eu estou usando a versão 3.6, mas já usei a 3.5 também e funcionou sem problemas.

Baixando o Android SDK

Em developers.android.com é possível baixar a SDK para as plataformas Linux, Windows e Mac OS X. Não necessita instalação. Basta extrair o conteúdo em alguma pasta e adicionar o caminho da pasta tools do SDK no Path. Para isso, no Linux ou no Mac, basta editar o arquivo .bash_profile (no Linux o Path pode estar localizado no arquivo .bashrc) localizado na pasta Home do seu usuário.

Exemplo: PATH=$PATH:$HOME/bin:$HOME/android-sdk-linux_86/tools

Para alterar o Path no Windows, você deve ir em Painel de Controle > Sistema e Segurança > Sistema > Configurações Avançadas do Sistema.  Vá na aba Avançado e clique em Variáveis de Ambiente. Agora é só editar a variável Path adicionando o caminho da pasta tools do SDK.

Baixando Plugin do Android para o Eclipse

Para facilitar os desenvolvedores, o Android oferece um plugin para Eclipse chamado Android Development Tools (ADT). O seu uso é bastante recomendado, pois oferece um ambiente de desenvolvimento integrado, permitindo rápida criação de novos projetos e UIs (User Interface), além de facilitar o debug dos aplicativos.

Para instalá-lo, no Eclipse, vá em Help > Install New Software. Na janela Avaiable Software, clique em Add.

Na janela Add Site preencha com um nome a sua escolha e complete o campo Location com https://dl-ssl.google.com/android/eclipse/.

Agora é só marcar Developer Tools e clicar em Next até o final.

Após o término da instalação, vá em Window > Preferences e clique em Android no menu da esquerda. Preencha o campo SDK Location com o caminho da pasta onde você extraiu o Android SDK e clique em OK.

Adicionando Plataformas Android e Outros Componentes

Apenas o SDK baixado do site do Android não é o suficiente. É necessário pelo menos uma plataforma Android para conseguir rodar o aplicativo em desenvolvimento. Para obtê-la, vá em Window > Android SDK and AVD Manager e clique em Available Packages no menu da esquerda. Você vai ver que estão disponíveis vários pacotes. Escolha para qual versão do Android você deseja desenvolver e marque para download a plataforma referente a esta versão. É recomendado baixar também a documentação e os exemplos (samples) para a plataforma escolhida. Usuários de Windows devem baixar também o Usb Driver para poder testar o seu aplicativo em um celular com Android. Este driver não é necessário para Linux e Mac.

Hello World

Quase tudo pronto para começar a desenvolver para Android. Só falta criar um Android Virtual Device (AVD), que é o emulador onde você testará os seus aplicaticos. Para isso vá em Window > Android SDK and AVD Manager. Selecione Virtual Devices no menu do lado esquerdo e clique no botão New.

Escolha um nome para o AVD e, no campo Target, selecione a plataforma Android que você baixou. Além disso, escolha um tamanho para o SD Card (64 mb, por exemplo).  Clique em Create AVD.

Para criar um novo projeto vá em File > New > Project e selecione Android Project em Android. Clique em Next. Agora preencha os campos Project Name (o nome do projeto no Eclipse), Application Name (o nome do aplicativo, o que aparecerá no celular com Android), Package Name (package namespace do Java), Create Activity (por enquanto basta saber que é apenas uma subclasse da classe Activity do Android) e Min SDK Version (a menor versão do Android na qual o seu aplicativo funcionará). Selecione também a plataforma Android que você baixou no campo Build Target.

Pronto. Agora é só ir em Run > Run e selecionar Android Application. O AVD vai abrir e mostrar o Hello World. Tenha paciência, porque, na primeira vez que o AVD é aberto, demora mesmo até aparecer o resultado. Felizmente só é preciso abrir uma vez. É só minimizar o AVD e voltar a programar. Toda vez que você rodar o aplicativo, este abrirá no AVD.

Obs: Se o Eclipse apontar algum erro assim que o projeto for criado, abra o HelloAndroid.java dentro da pasta src no Package Explorer e rode novamente. Deve funcionar.

Por enquanto é isso. O próximo passo, se tudo der certo, é aprender a utilizar a câmera do celular a partir de um aplicativo Android. Vamos ver no que dá.

Até a próxima.

Como foi a minha participação na IV SAE da UFPR

Em Outubro do ano passado, eu e o Adrian fomos convidados pelo Allam Matsubara para dar uma palestra sobre desenvolvimento de jogos na UFPR. A palestra durou pouco menos de 2 horas e foi bastante proveitosa. Os alunos gostaram bastante. Tanto que nos chamaram de novo este ano. Estivemos lá no dia 14 de Maio para participar da IV Semana Acadêmica de Exatas e dessa vez tivemos 4 horas para palestras.  Além disso ainda tivemos Coding Dojo e #horaextra. Vamos por partes.


As Palestras

O Adrian começou falando sobre como abrir uma empresa de games e quais as dificuldades que você deve esperar caso decida fazer isso.

Quando o Allam nos chamou para participar da SAE, ele deixou bem claro que todos esperavam uma demonstração de algo rodando no Xbox 360. Nem que fosse simplesmente um “Hello World”. Então, além de falar sobre alternativas livres para os softwares necessários para se fazer um jogo e a importância da matemática e da física,  preparei três demonstrações:

1 – Começando um projeto usando apenas XNA – Como exibir um objeto (um desenho da Terra) na tela e movimentá-lo de acordo com as setas do teclado.

2 – Começando um projeto usando XNA e uma engine – No caso a engine utilizada foi a Torque X 2D.  A ideia dessa demonstração era mostrar o quanto uma engine pode facilitar o seu trabalho. Isso ficou claro para todos assim que eu criei o projeto e rodei sem alterar nada no código: já era exibido um objeto na tela que respondia às setas do teclado. Então para chegar ao resultado obtido pela demonstração anterior, só foi necessário trocar a imagem padrão (logo da Garage Games) pela imagem do nosso planeta. Como isso foi muito fácil, incrementei colocando uma animação de um bonequinho que acena para o planeta quando este chegar perto o suficiente. Isso sim é um Hello World =)

3 – Fazendo o deploy de um projeto em XNA para o Xbox 360 – E finalmente o que eles queriam ver: algo rodando no Xbox. Fiz o deploy do Hello World feito na demonstração anterior. Então passei o controle para a platéia para eles testarem e verem que funcionava mesmo.

A segunda palestra do Adrian falou sobre Scrum4Games, uma adaptação da metodologia de desenvolvimento ágil Scrum para melhor se adequar a uma equipe de desenvolvimento de jogos.


Coding Dojo

Quando estivemos na UFPR ano passado, eu comentei com o Allam sobre o Dojo Rio e perguntei porque eles não faziam um lá em Curitiba. Ele me respondeu que já até tentaram, mas pouca gente se animou de verdade com a ideia. Então eu disse que voltaria a Curitiba e faria uma sessão de Dojo lá para ver se a galera animava. E foi isso que eu fiz.

Assim que o Adrian acabou a palestra dele, eu expliquei como funcionava o Coding Dojo e disse que faríamos um naquele momento utilizando Python. Como eu esperava, 90% das pessoas se levantaram e saíram da sala. Medo? Vergonha de programar com um monte de gente olhando? Não sei ao certo. Sei que sobraram 14 guerreiros (nem todos aparecem na foto). E foi sensacional!

Durante a retrospectiva, choveram elogios ao Python. Desde “sintaxe simples e interessante” até “Python é a linguagem mais bonita que já vi”. Ouvir isso de alguém que acabou de conhecer a linguagem foi absurdamente gratificante e já fez valer a pena organizar esta sessão de Dojo. Além do Python, também elogiaram o desenvolvimento orientado a testes e a programação em par.

O pessoal gostou tanto que disseram que criariam o Dojo deles também. E esta semana eu recebi o convite para entrar na lista dojo-parana.

Missão cumprida. Mais um grupo de Coding Dojo no Brasil. Como eu certa vez profetizei na lista do dojo-rio: “chegará o dia em que todos terão um grupo de Coding Dojo perto de sua casa”. Com a criação do dojo-parana, este dia está mais perto. =)

Até a próxima.

Como foi o Motodev Summit Brasil 2010

Na última quarta-feira aconteceu em São Paulo o Motodev Summit Brasil, evento organizado pela Motorola sobre desenvolvimento de aplicações para Android. Eu estive lá e a primeira coisa que eu tenho a dizer sobre o assunto é: a Motorola tá entrando de sola nessa área.

Hoje existem poucos desenvolvedores Android e, consequentemente, poucas aplicações. Muitas pessoas escolhem comprar um iPhone ao invés de um celular com Android porque o iPhone tem aquela determinada aplicação que vai facilitar a vida dessa pessoa. Como a Motorola vem lançando vários celulares com Android, é de suma importância que mais aplicações sejam produzidas. Mas como conseguir novos desenvolvedores? “Façamos um evento gratuito sobre o assunto para ensinar e mostrar o quanto eles podem se dar bem trabalhando nessa área”. De fato, uma bela ideia.

E eles investiram bastante para que nós, possíveis novos desenvolvedores Android, nos sentíssemos bem. O lugar, Hotel Transamérica, foi muito bem escolhido, as palestras foram boas e teve muita comida. Café da manhã, dois coffee breaks, almoço e encerramento (com direito a cerveja, vinho e caipirinha de vários sabores). Tudo de graça. Muito bom.

As palestras técnicas abordaram desde “como desenvolver um aplicativo Android desde o início” até “truques de depuração dos profissionais”, passando por gerenciamento de eventos, acesso a banco de dados e desenvolvimento de widgets. Porém, todas elas foram bem básicas. O que faz todo sentido, visto que a ideia era formar novos desenvolvedores. Consegui aprender algumas coisas, mas elas serviram mais para mostrar o que é possível fazer com a plataforma Android e apontar o caminho das pedras para quem está começando.

Ao contrário do que eu pensava antes do Motodev Summit, a Motorola não tem interesse em novos desenvolvedores apenas para poder vender mais celulares. No post passado, eu comentei que provavelmente o Google Checkout não demoraria para chegar ao Brasil porque isso é do interesse dos fabricantes de celulares, então em breve poderíamos colocar as nossas aplicações na Android Market Place. Eu estava enganado. Não é de forma alguma do interesse da Motorola que mais pessoas possam vender na Android Market. Por quê? Porque eles vão lançar uma loja de aplicativos deles, só para aparelhos da Motorola: a Shop4Apps.

E o que isso significa para nós desenvolvedores? Uma oportunidade a mais! Não precisamos mais guardar as nossas aplicações no bolso enquanto esperamos o Google Checkout chegar no Brasil. Podemos vendê-las na Shop4Apps. Um dos palestrantes disse o seguinte:

“É uma excelente oportunidade, porque quando você coloca uma aplicação na Android Market, você tem já tem que competir com 50.000 outras aplicações. A Shop4Apps está começando agora. A visibilidade das suas aplicações será bem maior”.

De fato a chance de uma pessoa encontrar a sua aplicação procurando na Shop4Apps será muito maior do que procurando na Android Market, mas não é só isso que deve ser levado em conta. A Shop4Apps estará disponível apenas para celulares da Motorola e em 4 países (China, Brasil, Argentina e México), enquanto a Android Market Place está disponível em qualquer celular com Android e em todos os países onde está disponível o Google Checkout. A diferença no alcance das duas lojas é absurdo. Porém, a Shop4Apps é uma bela alternativa. Ainda mais se o foco for produzir aplicações especificamente para o consumidor brasileiro. Aí sim a ela é uma excelente oportunidade.

Como eu havia dito no início deste post, a Motorola tá entrando de sola nessa área. Investiu bastante para realizar um grande evento e convencer novos desenvolvedores a trabalhar com Android (e tenho certeza que ela foi bem sucedida neste intuito). Além disso, está lançando a sua própria loja de aplicativos, a Shop4Apps, para competir com a Android Market Place. Nós, desenvolvedores, só temos a ganhar com isso.

Obs: Também foi apresentado no evento o Motodev Studio, que pelo o que eu entedi, é um framework que adiciona algumas facilidades na Android SDK. Eu não assisti nenhuma palestra sobre ele, por isso não mencionei no post.

Até a próxima.

Análise: Motorola Milestone (Droid) com Google Android 2.0

Quando foi anunciado nos EUA o lançamento do Motorola Droid (conhecido aqui no Brasil como Milestone), o primeiro smartphone com o Google Android 2.0, este chegou a ser chamado de “iPhone Killer”. Título meio exagerado? Bom, não sei. Se ele é realmente melhor que o iPhone, não sou eu que vou dizer. Pelo menos não agora, pois não tenho um iPhone para fazer a comparação.

Comprei o Milestone há uns dois meses porque me deu vontade de começar a brincar um pouco com a SDK do Android. Quer dizer, na verdade mesmo, eu queria começar a mexer com qualquer SDK de smartphone. Podia ser a do iPhone mesmo. Resolvi correr para o Android por apenas um motivo: não troco meu Linux por nada. Se eu resolvesse me aventurar com o celular do Steve Jobs teria que comprar um Mac, sendo que eu tinha acabado de adquirir um laptop novo e ele tava redondinho rodando o Fedora 12. Então imagina a fadiga? Sem condição. Portanto, tchau (até breve) iPhone. Olá, Android! =)

E dizer que eu to bem satisfeito.


O Aparelho

Visualmente ele é meio quadradão. Retrô talvez. Ao meu ver, bastante bonito. A tela é bem grande, 3.7″ (a do iPhone 3GS é de 3.5″), o que faz com que seja bem tranquilo utilizar o teclado virtual, que funciona tanto com o celular na vertical quanto na horizontal. Além disso ele ainda possui um teclado QWERTY físico. Essencial para escrever textos longos.

A câmera é de 5 megapixels e possui flash. Porém, sinceramente, eu não achei grande coisa. Na verdade eu ainda não conheço nenhum celular que tenha uma câmera realmente decente. As fotos do 2º Sprint da PythonCampus foram tiradas com ela.

Um acessório muito interessante do Motorola Milestone é o Dock. É um suporte onde você encaixa o aparelho e este passa a servir como um relógio de mesa que além de exibir a hora e a data, mostra também o clima. Nesse modo ainda é possível deixar passando as fotos da galeria.

Sempre ouvi falar que a bateria dos smartphones acabavam muito rápido. Bom, a do Milestone não é muito diferente disso. Com o 3G e a sincronização automática ligados, a bateria dura apenas 7 horas. Porém, não há necessidade de deixar o 3G ligado o tempo todo, ainda mais se você não possuir um plano de dados ilimitado. Pensando nisso, fiz alguns testes:

1) Com o 3G e o Wi-fi desligados, a bateria durou mais de 170 horas, ou seja, uma semana com o celular ligado direto.

2) Utilizando internet somente antes de dormir para acessos rápidos, como ler e-mails e twitter, a bateria durou um pouco mais de 70 horas, o que equivale a quase 3 dias.

Isso mostra que a duração da bateria está inversamente ligada a utilização da internet (seja wi-fi ou 3G), ou seja, se você quer que a bateria dure bastante tempo, então basta não deixar a internet ligada a toa. Ligue apenas quando for utilizá-la. Eu uso o acesso 3G várias vezes ao dia e a minha bateria costuma durar mais 48 horas.


Android 2.0

Assim que o aparelho é ligado, você tem que logar com a sua conta do Google. E isso é uma das melhores coisas do Android: integração nativa com os serviços do Google. Gmail, Gtalk, Google Calendar, Google Contacts, Google Maps e etc. Tudo já está lá, pronto para usar.

A home do Android funciona como uma área de trabalho, onde você coloca atalhos para os aplicativos mais utilizados. São três telas de área de trabalho. Um detalhe interessante é que você pode adicionar um papel de parede que se estenda pelas três telas, causando um efeito bacana quando passa de uma tela para a outra.

Ao contrário do iPhone (até o 3GS), o Android suporta multi-tarefas. Isso quer dizer que enquanto você espera uma página carregar no browser, você pode ler os seus e-mails na aplicação do Gmail, por exemplo. Extremamente útil.

Obs: Enquanto eu escrevia esse post, a Motorola liberou a atualização do Milestone do Android 2.0  para o Android 2.1. Portanto não faz sentido continuar sobre o 2.0. Vou fazer a atualização e em breve posto aqui as minhas observações.


Desenvolvendo para Android?

Beleza. Aparelho bom, sistema operacional melhor ainda, mas eu comprei esse celular porque queria desenvolver aplicações para Android. E exatamente nesse assunto que eu tive uma grande decepção: brasileiros não podem disponibilizar suas aplicações para venda. Como assim? Eu explico.

Dando uma olhada no Android Market Place achei estranho só encontrar aplicações grátis e resolvi pesquisar sobre isso. Descobri que a única forma de pagamento no Android Market é o Google Checkout, que nada mais é do que o PayPal da Google. Só que o problema é que este serviço não está disponível no Brasil, ou seja, brasileiros não podem pagar por aplicações do Android. Por isso só aparecem as gratuitas no Android Market do Brasil.

Se fosse só isso, não seria lá um grande problema, porque a venda de aplicações não é a única forma de ganhar dinheiro nessa área. Existem vários casos de pessoas que obtiveram lucros altos apenas com aplicações gratuitas, através da venda de espaços publicitários. O problema é que os brasileiros não podem disponibilizar no Android Market aplicativo nenhum! Nem pago nem gratuito! Porque para isso é necessário comprar uma licença com a Google, da mesma forma como acontece com a Apple e a App Store. E qual a única forma de pagar por essa licença? Google Checkout, que como já foi dito, não está disponível no Brasil.

Não preciso dizer que isso foi um espetacular banho de água fria no meu projeto de desenvolver para Android. Porém, espera-se que este serviço esteja disponível no Brasil em breve. Isso é de total interesse da Motorola (e de todas as outras empresasa que fabricam celulares com Android), porque apareceriam mais desenvolvedores e consequentemente mais aplicações. O que tornaria o seu produto ainda melhor.

– UPDATE –
Preço

Em um dos comentários, meu amigo Pedro Menezes me perguntou quanto eu paguei pelo aparelho. Como essa informação é bastante relevante, resolvi atualizar o post ao invés de apenas respondê-lo.

O preço original do Milestone na Vivo é R$1699. Porém, se você tiver o plano Vivo Você 200 e um pacote de dados de no mínimo 500mb, o celular sai por R$599. Sendo que o Vivo Você 200 custa R$144 e o plano de dados R$55. Agora façamos algumas contas:

Digamos que você fosse parcelar o valor do celular em 12 vezes sem juros (a Vivo não oferece esse parcelamento. Estou usando esse exemplo só para ilustrar). Daria R$141,60 por mês. Digamos ainda que você tenha o plano Vivo Escolha 90 (o meu plano anterior), que custa R$74 por mês. No total você gastaria R$215,60 mensais.

Mas e se você migrasse o plano? O celular saíria por R$49,92 pro 12 meses. Somando com R$144 do Vivo Você 200 e com R$55 do plano de dados, o valor total mensal seria de R$249, ou seja, apenas R$34 mais caro. Sendo que você ainda passaria a ter 200 minutos em ligações (ao invés de 90) e 500mb de dados (ao invés de nada). Vale a pena, certo? Pois é. Foi isso que eu fiz.


Resumindo:

O celular é ótimo. Atendeu todas as minhas espectativas em relação ao aparelho e ao Sistema Operacional. A única decepção foi mesmo o fato de não poder disponibilizar minhas aplicações no Android Market Place. Porém, não é por isso que eu vou deixar de estudar o SDK. Na verdade já comecei a fazer isso. Resta torcer para que o Google Checkout não demore a chegar ao Brasil.

E eu acabei não falando das aplicações disponíveis, mas foi de propósito. Pretendo ir postando aqui dicas sobre as aplicações mais interessantes. Portanto, se te intessa, siga-me =)

Agora vou lá atualizar meu celular para o Android 2.1!

Até a próxima.

15° EDTED e suas Lightning Talks

No último sábado, 20/03, aconteceu o 15° Encontro de Design e Tecnologia Digital, o EDTED. 1074 pessoas compareceram ao evento que contou com palestras de Luli Radfahrer, Martha Gabriel, Fábio Akita, Fabiano Milani, entre outros. Porém, eu não assisti a nenhuma delas. O motivo: as Lightning Talks do pessoal #horaextra e do Dojo Rio!

Mas vamos pela ordem.

Pela manhã, Henrique Bastos ministrou um minicurso de 2h30min de Django. Deixando de lado os slides logo após a primeira meia-hora, optou por botar a “mão na massa” e mostrar o framework funcionando na prática. Além de mostrar diversas funcionalidades do Django através de exemplos, improvisou um teatro para explicar a arquitetura HTTP: “Você é o cliente, você o servidor e você o pacote. Cliente, conecte-se no servidor. Pronto. Agora manda o pacote.” Sensacional.

Almoço.

E chega a hora das Lightning Talks. Pra quem nunca ouviu falar, como o próprio nome já diz, Palestras Relâmpago, são palestras curtas. Normalmente com duração de 5 ou 10 minutos. O meu primeiro contato com elas foi no FISL do ano passado. Foi surreal. Pessoas tendo apenas 5 minutos para fazer uma palestra sobre um determinado assunto. Era inevitável correr com os últimos slides. Eu achei tão interessante que decidi que na próxima oportunidade eu iria participar. E então veio o EDTED =) A duração foi de 10 minutos, então o ritmo foi menos frenético.

Mas sobre o que foi falado nas Lightning Talks?

Vamos lá, cada uma delas, pela ordem, com os slides:

1 – Henrique Andrade:

Infelizmente demorei demais no almoço e acabei perdendo a palestra do Henrique. Pedi os slides pra ele na lista do #horaextra, mas até agora não disponibilizou. Assim que o fizer, eu atualizo o post.

2 – Hugo Lopes Tavares:

As diversas vantagens do Git e do sistema de versionamento descentralizado. Esse foi o tema principal da Lightning Talk do Hugo. Além disso, ele falou também falou sobre Social Coding com o Github.

3 – Israel Teixeira:

Quer aprender a programar direito? Então compareça ao Dojo! Como disse o Israel, lá você melhora suas técnicas de programação, conhece novas linguagens, treina conceitos de desenvolvimento ágil e faz novas amizades.

4 – Ramon Bispo:

O Ramon ensinou como diminuir as requisões HTTP e, consequentemente, melhorar a perfomance de um site colocando todos os elementos em uma única imagem e exibir um pedaço dela em cada parte da página. Informação extremamente útil para programadores web.

5 – Rafael Lima:

É possível lançar um produto web ou uma empresa gastando praticamente nada? O Rafael mostrou que sim. Desde a elaboração de uma logo para a empresa até a contratação de um serviço de hospedagem, custo praticamente zero. A apresentação abaixo é da versão completa dessa palestra (para a Lightning Talk ele retirou alguns slides).

6 – Diego Dukão:

Matemática e Física são realmente inúteis na programação? Não. Definitivamente, não são inúteis. Só não são passadas da maneira correta. Eu ainda vou falar muito sobre isso. Tanto aqui no blog quanto fora dele. Então caso tenha se interessado, fique ligado. (Obs: os slides estão horríveis mesmo. Deixei pra fazer em cima da hora ¬¬)

7 – Álvaro Justen:

O Álvaro falou sobre as comunidades de software livre e em como este pode impactar a vida das pessoas. Tanto como atualização profissional quanto rede de amigos e até sobre conseguir emprego através da participação em comunidades. Destaque para as referências ao Guia do Mochileiro das Galáxias.

E essas foram as Lightning Talks apresentadas no 15° EDTED. Agora é só esperar o próximo evento.

Até a próxima.

Como Fazer Jogos pra Xbox 360 com XNA – Introdução

Eu não sei se a melhor maneira de começar a fazer os seus jogos é realmente com XNA. Porém, foi a maneira que eu comecei. E, tirando o fato de ter que usar Windows, foi bem tranquilo. A ideia desse post não é ensinar como se programa usando XNA (talvez em um outro post em um outro dia), mas sim mostrar as suas vantagens e apontar o “caminho das pedras” para quem pretende começar.

xna

Pra quem nunca ouviu falar, XNA é um framework da Microsoft feito para o desenvolvimento de jogos para as plataformas Windows, Xbox 360 e Zune. Ele é direcionado a estudantes, pequenas empresas e desenvolvedores independentes (não, os jogos da EA e das outras grandes empresas não foram feitos em XNA). É gratuito e a sua linguagem é C#. Para começar a brincar com ele basta instalar Visual C# Express Edition e o XNA Game Studio.

Sobre C#, bom, eu achei bem parecido com Java, apesar de não ter trabalhado muito com essa linguagem. Acredito que quem tem conhecimento nela, não terá grandes problemas em aprender C#. Quem não tem, basta pelo menos saber bem sobre orientação a objetos.

Mas além de conhecer a linguagem, para começar a fazer os seus jogos, é preciso saber como o framework funciona. E para isso um ótimo ponto de partida é o Riemer’s XNA Tutorials. Lá tem tutoriais que ensinam desde o mais básico (exibir um triângulo na tela) até coisas complexas (multitexturização, bump mapping). Além disso, existe um fórum onde é possível tirar dúvidas sobre os exercícios. De fato, esse site é obrigatório para quem quer começar a desenvolver usando XNA.

Só com o XNA já é possível fazer bastante coisa. Porém, para agilizar o processo de desenvolvimento, existem as Engines (Motor de Jogo). Em um futuro próximo eu farei um post só sobre Engines, dizendo pra que elas servem e porque são tāo importantes, mas por hora basta dizer que são programas feitos para facilitar a vida do desenvolvedor. Elas possuem uma série de funcionalidades básicas já implementadas, como física, detecção de colisão e suporte a animação. O objetivo é permitir que o programador foque no que realmente interessa no seu jogo, ou seja, as funcionalidades novas, sem se preocupar em implementar a força da gravidade, por exemplo.

Existem diversas Engines pra XNA, tanto proprietárias quanto livres. Porém, a que eu recomendo para quem está começando é a Farseer Physics Engine. Como o próprio nome já sugere, a Farseer é uma Engine desenvolvida para facilitar a simulação de física em um jogo. Só pela detecção de colisão dela, já valeria a pena testá-la, mas tem muito mais coisa. No vídeo abaixo são mostrados os demos que vem com ela. Dá pra ter uma ideia do que ela é capaz.

Deu pra ver que ela é poderosa, né? E o mais importante é que é livre.

xna creators club

Sem dúvida, uma das maiores vantagens em se fazer um jogo em XNA se chama XNA Creator’s Club. Além de ter um fórum onde você pode trocar experiências e tirar dúvidas com outros desenvolvedores, você pode adquirir a Premium Membership. A assinatura de quatro meses custa US$49 e a anual US$99. Com ela é possível fazer algo que até pouco tempo era impensável para desenvolvedores independentes: jogar seu próprio jogo no seu video-game. Pois é, com a assinatura do Creator’s Club, é possível exportar facilmente o seu projeto para o Xbox 360. Preciso dizer o quanto isso é sensacional? É incrível a sensação de ver pela primeira vez seu jogo rodando no console.

Mas não é só pra isso que serve a Premium Membership do XNA Creator’s Club. Uma vez que você tenha finalizado o seu jogo, você pode vendê-lo na Xbox Live Marketplace! Funciona assim: você submete o jogo, os próprio membros do Creator’s Club avaliam e, caso seja aprovado, ele é disponibilizado para compra. Legal, né? Você faz, joga e vende o seu próprio jogo. Funcionamento similar ao da App Store.

Só uma observação: eu ainda não coloquei nenhum jogo a venda na Xbox Live Marketplace, portanto não sei até onde essa facilidade é verdadeira. Parece que funciona assim mesmo, mas sei lá, estamos falando da Microsoft.

Bom, é isso. Espero ter sido útil para alguém. Com certeza ainda vou falar muito sobre XNA, portanto, se gostou do assunto, siga-me.

Até a próxima.