Um dos primeiros desenvolvedores de aplicativos para o iPhone foi Steven Troughton-Smith. Alguns de seus trabalhos são bem conhecidos como o Stack, o Doom não-oficial para iPhone (em parceria com o ZodTTD) e o Lights Off. Além disso, ele foi o responsável por descobrir os Emojis no iPhone e a habilitação do tethering na versão beta do 3.0. Foi ele também que criou polêmica ao ter sido o primeiro desenvolvedor de jailbreak a se declarar contra a pirataria de aplicativos.
É por essas e outras que o Blog do iPhone fez uma entrevista exclusiva com o irlandês, que é muito simpático por sinal. O texto é longo, mas muito interessante para quem quer conhecer como é a vida de um desenvolvedor para a nossa plataforma.
Blog do iPhone – Como você começou a programar para o iPhone?
Steven Troughton-Smith – O iPhone me impressinou muito desde o seu anúncio. Eu já desenvolvia aplicativos para Macs e assim que vi o iPhone eu sabia que queria fazer aplicativos para ele. Eu comecei logo que saiu o primeiro toolchain (conjunto de ferramentas para desenvolvimento) para jailbreak. Na verdade eu rodava uma versão customizada por mim no meu Mac 10.5, antes mesmo do seu lançamento, quando ainda não funcionava neste sistema. Na época eu não tinha um iPhone, apenas desenvolvia os aplicativos e enviava para um amigo em Seattle, que era legal e testava, me mandando screenshots por email.
Você já conhecia as linguagens de programação? Foi muito difícil?
Eu já estava estudando Cocoa (linguagem de programação específica dos Macs/iPhones) por três anos, demorou algum tempo para eu aprender, mas não posso dizer que foi difícil. Tudo em Cocoa é muito bem documentado, uma vez que você aprende, consegue programar para qualquer coisa que use essa linguagem, como o iPhone por exemplo. Apesar de eu nunca ter programado para iPhone antes foi muito parecido com o que fazia para o Mac.
Conte para nós um pouco da história do Lights Off.
Um dia, no meio de julho do ano passado, eu estava conversando com um bom desenvolvedor amigo meu, e ele mencionou que havia conseguido desenvolver uma versão do SameGame, mas que não tinha dado os toques finais nem feito a parte gráfica.
Eu fiquei interessado, pois nunca tinha ouvido falar neste game antes, fiquei pensando como que ele tinha conseguido fazê-lo. Fiz alguns esboços no Photoshop para fazer o jogo ficar com cara de iPhone. Nós trabalhamos por duas semanas juntos, mas ele acabou desistindo por causa do seu trabalho, o que me deixou livre para alterar o código como quisesse. Eu refiz tudo, ganhando muita prática.
Nesse meio tempo, eu comecei a sentir saudades do jogo Lights Off que tinha na época do jailbreak, antes da App Store. Lucas (o desenvolvedor original do jogo) foi contratado pela Apple e ali percebi que era o fim do desenvolvimento. Inspirado no SameGame, vi que poderia adaptar o antigo jogo do jailbreak para a App Store.
Eu algumas horas consegui fazer uma versão de demonstração igual a original, então eu enviei para o Lucas e o Adam Betts (o artista do original) que haviam sido contratados pela Apple. Lucas não se interessou, mas Adam ficou muito feliz e animado em desenvolver a nova versão do jogo. Ele trabalhou comigo por meses criando a parte gráfica, enquanto fui desenvolvendo todo o código.
O Lights Off foi lançado em janeiro passado e foi um sucesso enorme de vendas. Ele me fez aparecer na televisão e nos principais jornais da Irlanda. Isso me ajudou também a montar uma comunidade de desenvolvimento (www.xcake.org) na qual 33 desenvolvedores, incluindo eu, fomos patrocinados a ir para a WWDC 2009.
Você esperava todo esse sucesso?
Eu achava que seria bem sucedido, mas não estava esperando a reação que a mídia trouxe, nem as oportunidades que vieram.
Você se sente limitado pela Apple como desenvolvedor?
Não. A Apple fez uma plataforma fantástica e um grande SDK (ferramenta de desenvolvimento) que permite fazer excelentes aplicativos com ele. Através da App Store ela oferece uma distribuição mundial de suas obras sem cobrar mensalidades e ainda usaram o meu aplicativo Speed em anúncios, o que me deu mais visibilidade. Speed está entre os aplicativos mais vendidos mundialmente na categoria navegação desde seu lançamento.
Você faz jailbreak nos seus aparelhos? O que você pensa a respeito deste método?
Não. Como desenvolvedor eu ganharia muito poucas vantagens com isso. Graças ao SDK oficial, eu posso criar e instalar no meu aparelho qualquer tipo de aplicativo que eu quiser, mesmo sem mandar para a App Store. O jailbreak virou sinônimo de pirataria, a qual, não importam o que digam, afetam as vendas diretamente. O fato é que o público da maioria dos meus aplicativos é um pessoal mais jovem – o mesmo tipo de pessoas que pensa que não estão fazendo nenhum mal com o cracking de aplicativos e esperam receber tudo de graça. É essa fatia do mercado que mais busca o jailbreak, pois uma vez que se faz, instalar aplicativos piratas é muito fácil. Infelizmente há muito pouco a se fazer a respeito disso.
E como foi o desenvolvimento do Stack?
O Stack foi o primeiro real desenvolvimento que fiz para o iPhone, muito antes de existir o SDK. É apenas um acesso fácil para os seus aplicativos mais usados, ele permite ter o mesmo menu de ícones que se tem no dock do Mac (que por sinal chama-se Stack também).
O primeiro aparelho com iPhone OS a ser lançado na Irlanda foi o iPod touch, o qual suportava um Dock semi-transparente com reflexos. Eu sabia que eu gostaria de programar para o iPhone desde seu anúncio, mas foi só depois de ver o aparelho que eu vi o que realmente queria fazer. O dock do iPod era muito parecido com o do Leopard (Mac OS 10.5) e me veio a vontade de implementar a mesma funcionalidade no iPhone. Depois de algum esforço, e aprendendo sobre CoreAnimation e LayerKit ao mesmo tempo, o aplicativo estava pronto. Ele rodava em segundo plano o tempo todo, sobre o SpringBoard (a tela inicial do aparelho). Ele não tinha nenhuma integração com a tela e cobria os ícones abaixo dele.
Stack mais tarde se tornou mais difícil de se manter pois a Apple introduziu a capacidade de reordenar os ícones, me fazendo abandonar temporariamente o projeto.
Quando saiu o iPhone OS 2.0 as cosias se complicaram. Não era mais possível rodar aplicativos em cima do SpringBoard e eu achava que não havia mais jeito da mágica funcionar. Mais tarde, eu descobri um novo truque – code injection (injeção de código). Com isso, eu poderia construir o Stack como uma biblioteca dinâmica que poderia ser injetada diretamente no SpringBoard quando rodasse. Isso permitiu que eu tivesse acesso direto ao código, me permitindo implementar o arrastar e soltar (drag and drop). O Stack estava muito melhor.
Ok, mas você disse que não fez o jailbreak no seu aparelho. Então como consegue rodar o Stack, visto que ele só pode funcionar em aparelhos alterados?
Faço tudo no simulador do iPhone (incluso no SDK), assim como todos os outros programas. Além disso, tenho alguns aparelhos desbloqueados para testes.
Eu estou usando o Stack 3.0 (alpha) por algum tempo e ele parece bem melhor que o anterior, se tornando indispenável no meu dia-a-dia. Qual a razão para você desenvolver essa nova versão?
Quando o iPhone 3.0 saiu, eu tinha que lançar uma versão compatível com ele. Trabalhando na 2.2, eu decidi que seria melhor fazer uma reengenharia completa do aplicativo. Isso me permitiu jogar muita coisa fora, melhorar os recursos e até ter mais de um na mesma tela. Todos que estão usando a nova versão estão notando uma grande melhora de desempenho.
Você tem uma data de lançamento?
Infelizmente não. Mas quem quiser uma cópia da versão alpha eu estou enviando cópias a todos que doarem pelo seu desenvolvimento. Pode-se obter mais informações visitando o meu site (link).
Você está desenvolvendo algum outro aplicativo? Eu ouvi falar do Chalk, e pelos screenshots que vi será bem legal, além de ter suporte a Notificações Instantâneas, você irá lançá-lo?
Sim, meu próximo aplicativo a ser lançado na App Store é o Chalk. É um cliente para o Twitter bem “sexy” que incorpora os melhores aspectos dos clientes para iPhone existentes hoje.
E o que você achou do novo iPhone OS 3.0?
A versão 3.0 adicionou a maioria das coisas que as pessoas estavam pedindo desde o lançamento do primeiro iPhone. Eu acho que vale muito fazer o upgrade. Eu por exemplo estou ajustando meus aplicativos para rodarem apenas nas versões acima da 3.0.
Veja como é o aplicativo Stack no qual Steven está desenvolvendo. Por mexer com ítens do sistema interno, ele não pode ser distribuído pela App Store, apenas pelo jailbreak.
Ele generosamente nos reservou alguns presentinhos aos nossos leitores, mas distribuiremos apenas quando a migração de servidor tiver sido completada. :)
Thanks, Steven!