Acelerando o emulador de Android no Mac e no Windows

Executar o emulador de Android no Mac em qualquer sistema operacional é terrível.

Você abre o programa, espera, espera, espera, espera, espera, espera, espera, espera, espera, espera, espera, espera, …….(parece que vai abrir)……, espera, espera, espera, espera e ele abre. Aí manda ligar, espera, espera, espera, espera, espera, espera, espera, espera,… Bom você já sabe, né?

Procurando uma solução para isso, encontrei esse post aqui, que fala como resolver o problema para o 4.0.3, mas funcionou para mim também com o 4.2.2.

Os passos a seguir são para o Mac, mas funcionam também para o Windows com algumas mudanças.

Passo 1

Abra o Android SDK Manager e procure por “Intel Atom x86 System Image” dentro de Android 4.X.X.
Obs.: Também tem um dentro de 2.3.3 se você quiser testar no Gingerbread também.

Passo 2

Faça o download do “Intel Atom x86 System Image” e espere terminar de instalar.

Passo 3

Vá para a pasta /extras/intel/Hardware_Acceleration_Execution_Manager/ e abra o arquivo haxm-macosx_r02.dmg (IntelHaxm.exe no Windows). Dentro dele há um IntelHAXM_1.0.1.mpkg. Execute o programa.

No Windows, se o programa reclamar que a virtualização não está ativada. Você vai ter que ativá-la na BIOS do seu computador (Procure no Google como ativar para a sua BIOS).

Passo 4

Siga os passos do instalador e escolha a quantidade de RAM que você deseja reservar para o emulador. Para mudar isso depois, basta executar esse instalador novamente. Não abuse desse valor para não deixar seu Mac lento enquanto estiver usando o emulador.

Passo 5

Feche o Android SDK Manager e abra-o novamente. Isso não tem no tutorial original, mas comigo só funcionou depois de fazer isso.

Passo 6

Abra o AVD Manager e crie um novo Device.
Escolha “Android 4.X.X – API Level XX” (onde XX corresponde à sua versão instalada).
Na parte de CPU/ABI, escolha “Intel Atom (x86)”
Marque o checkbox “Use Host GPU”
Deixe desmarcado os “Snapshots”. (Ou você usa Snapshots ou a GPU).

Passo 6

Use o emulador e seja feliz.

Passo 7

Use o tempo livre que você acaba de ganhar para fazer algo de útil ou ajudar alguém. 🙂

Portando para o Python 3

Em 2008 foi lançada a versão 3 da linguagem Python com diversas funcionalidades novas, mas parcialmente incompatível com os programas feitos para Python 2. Nestes 5 anos, a adoção ainda não é grande exatamente por causa deste fator e porque normalmente as pessoas não querem ter que aprender os detalhes que são necessários para essa mudança.

Hoje em dia existem diversas ferramentas que permitem desenvolver software que seja compatível com as duas versões, mas para isso é preciso entender o que mudou e adaptar. Este é será um guia rápido com dicas para migrar para Python 3 e aproveitar as melhorias que essa nova versão traz.

Parte I – Quando migrar

Por causa da incompatibilidade que existe, muitos desenvolvedores não podem começar a migração pois dependem de diversas bibliotecas que ainda não fizeram sua parte. Hoje em dia, grande parte das bibliotecas mais importantes da linguagem já são compatíveis com Python 3, o que torna bem mais plausível converter seu código.

Para computação númerica NumPy, SciPy, Matplotlib, IPython e Pandas são as ferramentas mais importantes e todas já foram portadas. Em desenvolvimento web, os frameworks mais importantes – Pyramid e Django – também funcionam perfeitamente em Python 3. Para criar GUI’s, PyQT4 e Tkinter podem ser utilizados sem problemas.

– O que falta então?

Normalmente são as pequenas bibliotecas que fazem trabalhos específicos e que já não são atualizadas há anos. Inclusive, este é um bom momento para se livrar delas. Procure no PyPI por algo semelhante que resolva seu problema e que seja compatível com Python 3.

– E se eu não quiser migrar?

Aproximadamente em 2017, o suporte para Python 2 vai terminar e este já não recebe novas funcionalidades desde 2010, com o lançamento do Python 2.7. Atualmente, só atualizações de segurança e outros bugs sérios são lançadas. Além disso, em breve o Python 3 será instalado por padrão na maioria das distribuições Linux, como já o é no Arch Linux e será no Ubuntu 13.04 ou 13.10.

– Mas mexer em código antigo que já funciona há anos é difícil…

Sim, isso é um grande impedimento. O ideal é começar a aprender com código novo e, quando surgir a oportunidade (ou necessidade) modificar os códigos antigos. A dica é, comece pelas suas bibliotecas para depois partir para as aplicações.

– Por onde eu começo?

O meu texto preferido sobre o tema é Dive into Python 3 que traz todos os detalhes sobre a linguagem e mostra o caso de migração de um software real. Aqui só faço uma introdução sobre o tema.

Independente de querer migrar ou não o seu código, é interessante conhecer o Python 3 e passar suportá-lo em código novo. Mesmo que você esteja escrevendo código com bibliotecas obsoletas, existem boas práticas que deixam permitem desenvolver já pensando no futuro.

Continuar lendo Portando para o Python 3

iTunes Store Brasileira, jogos e os desenvolvedores: um texto que você precisa ler.

Ontem, como publicamos neste Blog, a Apple liberou a venda de jogos na iTunes Store brasileira. Escrevo um texto longo, mas acho que vale a pena ler.

O Brasil, por incompetência já conhecida do governo federal, era dos últimos países que não permitia a venda de jogos na loja da Apple.

É uma coisa a ser comemorada, todos ficamos felizes pelos consumidores; no entanto muitos desenvolvedores, eu me incluo entre eles, tinham um certo receio do que poderia acontecer com as suas vendas quando isto ocorresse. Eu pretendo analisar esta questão e deixar alguns conselhos.

Até ontem, um brasileiro que quisesse comprar um jogo, Angry Birds por exemplo, precisaria criar uma conta na iTunes Store Americana e comprar gift cards. O fato é que nem todos sabiam ou conseguiam operar desta maneira. Uma consequência, pelo menos muitos percebíamos assim, era que colocar um jogo entre os Top25 da iTunes App Store brasileira não era algo difícil. Muitos desenvolvedores locais estavam tendo boas receitas vendendo seus produtos aqui no Brasil.

A coisa funcionava como uma reserva de mercado, para os que são muito jovens para lembrar desta época da história recente do brasil deixo este link. Por falta de competição de alta qualidade, muitos de nós conseguíamos vender ou ter muitos downloads de jogos inferiores aos que os americanos, ingleses, japoneses e até argentinos compravam.

Agora, penso que todos os que fazemos jogos estamos com um certo receio: o que vão ser das minhas vendas e dos meus downloads? Será que vou perder muito dinheiro?

Sem fazer um exercício de adivinhação não consigo escrever uma resposta, ainda não tenho dados reais para sustentar uma análise precisa. Mas vamos ver alguns cenários, se você tiver paciência de seguir lendo.

É de se esperar que alguma perda financeira irá acontecer nos primeiros dias. Haverá, já está acontecendo agora enquanto escrevo, uma avalanche de pessoas comprando Angry Birds, Where is my Water, PvZ, etc. Isto significa que estas pessoas ficarão ocupadas com estes jogos e não irão baixar o SEU jogo: Boliche Medieval, Desafio das Bolinhas, etc.

Por outro lado, é de se esperar um aumento de tráfego na App Store brasileira. Muita gente que comprava via gift cards na loja americana vai parar de fazer isso e preferir comprar com seu cartão de crédito na loja brasileira. Alguns que faziam jailbreak para piratear jogos de 0,99 centavos vão ver que não compensa o trabalho e irão pagar .99 para ter o jogo de maneira mais confortável. Outros que compravam Apps mais esporádicamente serão mais assíduos frequentadores da App Store para adquirir os games best sellers e consequentemente podem comprar outros jogos e produtos.

Outro fato positivo: os desenvolvedores brasileiros não precisarão colocar seus jogos na categoria Entretenimento e por conseguinte terão uma maior exposição fora do Brasil.

Há desafios e oportunidades. É possível ter mais sucesso, mas é preciso mudar a estratégia. No início dos anos 90, quando o ex-presidente Collor acabou com a reserva de mercado em informática houve empresas que se reinventaram e prosperaram outras continuaram como estavam e morreram.

E que conselhos você daria para os desenvolvedores brasileiros? Confesso que venho pensando neste cenário há muitos meses, mas ainda não tenho uma resposta definitiva; não é fácil fazer uma boa análise sem dados reais. Posso oferecer algumas sugestões de bom senso e no futuro, espero que seja breve, quando tiver uma estratégia mais concreta, escrever outro texto.

  1. Melhore a qualidade do seu jogo: é um conselho obvio, mas que não é tão fácil de implementar. “Adapt or die” – ou você faz algo que as pessoas queiram jogar por algum tempo ou você será engolido pela avalanche de títulos de jogos que serão ofertados por aqui.
  2. Pense em aplicativos fora da categoria jogos: o mercado não jogos é bem menor e exige muito mais suor para crescer, mas não é desprezível. Você diversificando pode conseguir compensar em outra categoria o que perdeu com jogos. Posso dizer que há alguns meses conseguimos subir nossa fatia de vendas de aplicativos não jogos de 15% para 30%.
  3. Estude formas de comer parte do mercado que você tinha menos acesso antes. O mercado de Apps no Brasil é 20 vezes menos que o dos EUA, metade da Austrália, 5 vezes menor que a Inglaterra, oito vezes menor que o Japão, um terço do mercado chinês, metade do mercado coreano, etc. Antes você estava confinado na categoria entretenimento, lance uma nova versão e mude-se para a categoria jogos. Traduza seu jogo em outras línguas: há serviços em conta para fazer isto.

Não poderia deixar de mencionar a importância, já aqui comentada, de pressionar o governo. Os últimos dez anos com Lula e Dilma trouxeram um grande atraso tecnológico para o Brasil. Os danos que o enfraquecimento das agências reguladoras (em especial a Anatel) trouxe sentiremos e estamos percebendo. A falta de infra-estrutura, os impostos achacantes, a dependência de um estado paquidérmico e ineficiente, juros elevadas, praticamente inexistência de capital de risco sendo investido, a falta de mão de obra qualificada, as leis de trabalho da época Vargas; tudo isto faz com que seja mais difícil ser competitivo no novo cenário. No entanto, esta é uma variável sobre a qual temos pouco poder e só de quatro em quatro anos.

Não é um momento de pessimismo, mas sim de reflexão para buscar tirar uma oportunidade de um cenário difícil que os desenvolvedores teremos pela frente com esta abertura.

Computação é a mais masculina das profissões

As senhoras que leem este blog, por favor, não se chateiem. Não é nada pessoal, mas sim uma constatação e uma questão.

Existem pilotas de avião, jogadoras de futebol, engenheiras civis e até urologistas. No entanto é raro, muito raro encontrar uma programadora.

Já tinha pensado nisso, mas nunca tinha chegado a uma explicação. Não tenho também uma estimativa estatística sobre o assunto, mas o fato é que a profissão onde tenho visto menos mulheres é a computação.

Na faculdade conheci uma programadora boa, que até onde sei continua exercendo a profissão com competência. Depois nunca mais vi uma programadora competente e que gostasse de computação.

Será que os interesses profissionais de homens e mulheres são tão distintos que as mulheres não se interessam por algoritmos, ponteiros, classes, métodos? Será que é o ambiente ogro dos desenvolvedores? Será uma questão cultural.

Você leitor, e sobretudo você leitora, dê uma luz para nós nos comentários.

Francis Allen da IBM trabalhou e trabalha com otimização para compiladores
Francis Allen da IBM trabalhou e trabalha com otimização para compiladores
Jeri Ellsworth fabrica máquinas de Pinball
Jeri Ellsworth fabrica máquinas de Pinball

CHUPA DEVELOPER – Não é o que você está pensando

Não é a primeira empresa que escolhe um nome infeliz para seu produto, mas esta foi bastante azarada na escolha e no envio de convites.

A empresa chama-se Chupa Mobile (sic) e vende bibliotecas e exemplos para auxiliar a criação de aplicativos móveis. Não satisfeitos com o nome da empresa, lançaram o concurso Chupa Developer e me convidaram, quer dizer convidaram a empresa em que trabalho, a participar.

O concurso distribui US$ 10.000,00 em prêmios, mas dado o nome do mesmo estou em dúvida…

Se você quiser participar, boa sorte…: http://www.chupamobile.com/competition/

Borland: nunca mais se fez uma IDE igual

Nos anos 90 surgiu o Delphi, uma versão do Pascal com Objetos que na minha opinião foi a melhor IDE já feita na história. Poucos anos depois vendo o drama dos desenvolvedores C++ a Borland lançou o Borland C++ Builder.

20111208-062245.jpg

Quem usou estas ferramentas sabe que nunca mais se fez nada tão fácil como elas e a pergunta que me atormenta desde então é: qual a explicação?

Tanto o Visual Studio 2010 como o XCode 4.2 são ferramentas maduras e bastante modernas, o Visual Studio ainda é o melhor da atualidade, mas nenhum deles conseguiu gerênciar a parte de desenvolvimento de interfaces como fazia o Delphi.

E o Eclipse e Netbeans? Bom, estes são uma piada de mau gosto… Pesados, fracos e com um gerenciamento de plugins insano.

Mas meu foco é nas ferramentas da Microsoft e Apple, as duas mais importantes empresas de software do mundo: porque elas não conseguiram algo similar ao Delphi?

O que você acha?

Entrevista: “O Android é a pior plataforma para desenvolver”

Amanhã começaremos uma série entrevistando Mr. C, considerando um dos mais experientes desenvolvedores mobile do mundo que numa entrevista exclusiva compara o desenvolvimento iOS,Android,Blackberry e Windows Phone 7.

Algumas frases

  • Objective-C melhor que parece
  • Visual Studio é a melhor IDE do Mercado
  • Há coisas no Android que precisariam ser totalmente refeitas para serem usáveis.
  • Não creio que o Blackberry esteja morrendo

Imperdível!

 

Roadmap para a plataforma Symbian atualizado

Alguns dias atrás, enquanto o profético Javsmo pregrava o “Nokia WinMo”, eu defendia o Symbian como sistema operacional, tentando deixar claro que se a interface gráfica pode não agradar mais a maioria, o kernel é bastante interessante. Chamei a atenção também para o fato de que uma nova interface só iria surgir no Symbian^4.

Pois bem, na semana passada, a Symbian atualizou o roadmap do sistema. Principais pontos, traduzidos e resumidos por mim:

  • A versão Symbian^2 está completa, estável e fechada. Não devemos ver produtos com ela.
  • A versão Symbian^3 (N8, E7, C6, C7), como todos viram, está disponível e já temos aparelhos chegando ao mercado este semestre.
  • A versão Symbian^4, que promete uma nova interface de usuário, estará disponível ainda este semestre, com Qt como ferramenta nativa de desenvolvimento e aparelhos e kits de desenvolvimento chegando no próximo ano.

Alguns destaques do Symbian^4 (veja uma lista completa de requisitos neste link):

  • Novo layout de tela  e experiência de usuário mais simples e fluídica (Orbit UI).
  • Reprojeto e reorganização das principais aplicações do sistema.
  • Efeitos e transições mais refinados com o ScreenPlay (usado já no Symbian^3).
  • Integração transparente com redes sociais e serviços web importantes através da nova “Social Mobile Integration”.

Especificamente falando da plataforma de desenvolvimento, o ganho foi enorme. O Qt é muito produtivo e os custos de desenvolvimento podem cair bastante ao gerar um código que sirva tanto para Meego e Symbian (e até para o destop), com poucas mudanças. Sem falar que WRT, Java, Python, Flashlight e Silverlight estão disponíveis também. Tem para todos os gostos.

Para os curiosos, recomendo baixar o Nokia Qt SDK e avaliar o QtCreator. Tenho gostado bastante dele e fico pensando que precisamos gerar um curso de Qt, de preferência com o “selo” Forum Nokia, nhein ? Interessados ?



Porque os desenvolvedores Android estão perdendo dinheiro

Faço aqui uma tradução e adaptação do texto:

http://royal.pingdom.com/2010/08/16/why-android-developers-are-losing-money/

Google tem feito grandes progressos com o Android, e muitos desenvolvedores se animaram com o crescimento da plataforma móvel. No entanto, nem tudo é cor de rosa.

Uma grande preocupação entre os desenvolvedores é que os níveis de pirataria são muito elevados na plataforma.

Google não é, obviamente, alheio a isso e, recentemente, anunciou planos para combater a pirataria com DRM, que os desenvolvedores de aplicativos podem incluir em suas aplicações. Mas há um problema que é, sem dúvida, muito mais problemático para os desenvolvedores Android: receber bufunfa pelos seus aplicativos. E  isto não está recebendo tanta atenção quanto achamos que deveria.

Google está falando sobre combate à pirataria, mas, talvez ,a primeira coisa em que deve se concentrar realmente, é fazer o possível para que os usuários comprem apps. Todos os usuários. Soa um pouco lógico, não é? Então do que estamos falando? O problema reside no Android Market.

Você só pode pagar por aplicativos em 13 dos 46 países, mais ou menos, onde os telefones Android estão disponíveis. Para aqueles de vocês que gostam de estatísticas, 13 em 46 é menos de 30%. Compare isso com a App Store da Apple, que suporta aplicativos pagos em 90 países . Esta é uma enorme vantagem que desenvolvedores de iPhone têm atualmente a mais que os desenvolvedores Android.

Isto é, em nossa opinião, uma das principais razões pelas quais a pirataria é desenfreada na plataforma Android. Se uma grande parcela de usuários do Android do mundo não pode, mesmo que queira, pagar por aplicativos, é compreensível que alguns deles apelem para a pirataria?

Em outras palavras, a pirataria não é a raiz do problema, a incapacidade de pagar é.

Esta é, naturalmente, uma péssima notícia para os desenvolvedores Android porque:

  • Há menos aplicações sendo vendidas (óbvio, não?).
  • Também habitua aos clientes a não pagar por aplicações.

Vamos expandir esse segundo ponto, porque é importante.

Nós todos gostamos de coisas grátis, certo? Mas a realidade é que isso pode ser uma má notícia para os desenvolvedores, se essa mentalidade vai longe demais.

Se o Google não fizer rapidamente o necessário para que os usuários, na maior parte dos países, possa pagar por aplicativos, a empresa vai criar um problema a longo prazo. As pessoas desses países simplesmente se acostumarão com a pirataria em seus celulares. Eles vão se acostumar com o fato de todos os aplicativos do Android serem “grátis”.

Então, o que acontece quando esses usuários finalmente tiverem acesso adequado a aplicações pagas? Alguns deles, claro, vão pagar, até porque é mais conveniente; mas há o risco de que uma parcela significativa de usuários não goste da idéia: de repente, pagar por algo que até então não tinha tido nenhum custo. O Google vai efetivamente criar “piratas” em pessoas que poderiam não ter ido por esse caminho.

Dizer que isso prejudicará gravemente aos desenvolvedores do Android de ganhar a vida é um eufemismo.

Como dizia minha avó: cachorro que come ovelha só matando… (esta frase é minha)

Genius revisitado e uma meditação sobre Objective-C

Mais um aplicativo que publicamos na AppStore chamado SigaCor que é uma versão moderna do Genius. É o primeiro Genius completo e grátis da AppStore (AFAIK). Vale a pena baixar: http://itunes.apple.com/br/app/sigacor/id377891433?mt=8

Este aplicativo foi desenvolvido totalmente na linguagem Objective-C o que me leva a fazer uma pequena meditação sobre o assunto.

O que você espera de uma linguagem que se chama Objective-C: que seja parecida com C. É a resposta mais obvia. Acontece que, como diria o capitão Nascimento, não é assim que a banda toca em Cupertino, sede da Apple. Portanto o nome Objective-C acho que é um dos maiores desastres de marketing para programador.

Você abre o exemplo pensando encontrar isto:

1
2
3
void MudaCor (char * colorname) {
        cordefundo = GetColor(colorname);
}

e se depara com:

1
2
3
- MudaCor (NSString * colorname) {
   [myColor changeColorToName:colorname];
}

Isto e outras mudanças sintáticas importantes causam uma frustação no programador que foge e tenta outro caminho para desenvolver para o IPhone.

O problema é que se a linguagem se chamasse Objective-Apple e você não esperasse uma sintaxe como C provavelmente você não fugiria dela e rapidamente estaria usando um framework muito amigável.

Fizemos 13 aplicações com o Phonegap e esta é a primeira com Objective-C. Posso dizer que uma vez vencida a barreira do medo ao Objective-C você acaba gostando dele.

Um breve comentário sobre o post de ontem e um agradecimento

Sobre o post de ontem uns breves comentários:

1) Chegamos a segundo geral agora de manhã o que quer dizer quase 4000 downloads no Brasil. Muito Obrigado aos leitores do Zeletron.

2) O pessoal que tem Android pediu um port da app para o Android. Vamos ver se fazemos a Zeletron Store com estes ports até o pessoal do Google se mancar. 😉

Bom dia a todos e espero que possamos amanhã fazer um post igual em primeiro lugar!

Analisando as Apps na ITunes Store

Eu havia prometido um post que analisasse se valia a pena desenvolver para IPhone ou não.

Acontece que à semelhança do programa AdSense, a App Store não vê com bons olhos que você divulgue suas vendas dia a dia.

Para cumprir esta promessa vou fazer três declarações:

1) Vale a pena desenvolver para a App Store do IPhone
2) Ainda não vale a pena desenvolver para a Android Market nem para a Blackberry App World
3) A Ovi Store e a Palm App Store estão fora de cogitação no momento. A primeira por ser uma plataforma confusa, não suportar Python na loja e ter uma política de suporte ao WRT nos celulares ainda não uniforme. A outra porque a Palm morreu e não sabemos o que a HP fará com ela.

Há três estudos interessantes sobre receitas na ITunes App Store que coloco a seguir.
http://joelcomm.com/app-store-ranktosales-revealed.html
http://www.iappphone.com/stats/
http://www.markj.net/sales-stats-tools-for-iphone-apps/

Lembre-se: a corrida do ouro está começando