O documento fornece instruções para desenvolvedores desenvolverem aplicativos para iOS em sistemas Linux, sem necessidade de um Mac. Ele descreve como configurar o ambiente, incluindo atualizar o firmware do iPhone, jailbreak, instalar o SDK e toolchain para iPhone. Também mostra como escrever código simples em Objective-C, compilá-lo e testá-lo no aparelho iPhone via SSH.
Boas práticas de programação com Object Calisthenics
Desenvolvendo para iOS em linux
1. Erisvaldo Gadelha Saraiva Júnior
Desenvolvendo para
iOS em Linux
E-mail: erisvaldojunior@gmail.com
Site: http://erisvaldojunior.com
Twitter: http://twitter.com/erisvaldojunior
2. Sobre o palestrante
Analista de Sistemas da Cehap (Companhia Estadual de
Habitação Popular);
Desenvolvedor Mobile e participante do projeto Ginga pelo
Lavid (Laboratório de Tecnologias para o Ensino Virtual e
Estatística), situado na Universidade Federal da Paraíba;
Empreendedor da Yupi Studios (http://yupistudios.com),
startup voltada para a criação de conteúdo criativo para
dispositivos móveis;
Bacharel em Ciência da Computação pela Universidade Federal
da Paraíba e Tecnólogo em Sistemas para Internet pelo
Instituto Federal de Educação, Ciência e Tecnologia.
6. Objetivo
Desenvolver aplicações para a plataforma iOS 3 (iPod Touch,
iPhone 2G, iPhone 3G, iPhone 3GS e iPad) em Linux, através de
Organize with Sections
compilação cruzada com o Toolchain para iPhone.
Não é necessário ter um Mac
OS X e utilizar a IDE Xcode para
desenvolver para iPhone.
Graças ao Toolchain para
iPhone, é possível desenvolver
para iOS em qualquer
distribuição Linux.
7. O que é o iOS?
Sistema operacional desenvolvido pela Apple para dispositivos
móveis (iPhone, iPad e iPod Touch).
O iOS atualmente se encontra na versão 4.x e é baseado no
Mac OS X;
O kit de desenvolvimento para iOS (o iOS SDK) está
disponível apenas para Mac OS X. A linguagem de
Introdução
programação utilizada no desenvolvimento para iOS é o
Objective-C e a IDE, o XCode. Além disso, para testar suas
aplicações no aparelho, é necessário possuir a licença do iOS
Developer Program, ao custo de 99 dólares anuais.
Distribuição de aplicações única e exclusivamente através da
Apple App Store.
8. Desenvolvendo para iOS em Mac OS X
XCode IDE, Interface Builder e iPhone Simulator
Introdução
9. Apple App Store
Loja de aplicativos para iOS gerenciada pela Apple e disponível
através dos próprios aparelhos.
Em julho de 2008 foi lançada a Apple App Store, na qual o
desenvolvedor paga uma anuidade 99 dólares, define o
preço final de suas aplicações e recebe 70% do lucro total;
Motivação
A loja vem sendo um sucesso absoluto. Disponível em 77
países, com mais de 75 mil aplicações e 1,5 bilhão de
downloads realizados, números que crescem a cada dia;
A Apple App Store definiu uma nova era no mercado Mobile,
com vários fabricantes (e agora operadoras) lançando suas
próprias lojas de aplicativos nos meses seguintes.
10. Motivação
Segundo a AdMob, a Apple App Store movimenta incríveis 200
milhões de dólares por mês, somando um total de 2,4 bilhões por
ano.
Organize with Sections
Trism, um jogo casual que foi
lançado no início da Apple App
Store (similar ao Bejeweled),
rendeu ao seu desenvolvedor,
Steve Demeter, U$ 250.000,00
em apenas dois meses.
11. Motivação
A Apple App Store possui o maior mercado de aplicações pagas
e gratuitas entre todas as lojas de aplicativos mobile.
Organize with Sections
12. Motivação
A média de downloads da Apple App Store é superior a do Android
Market, bem como a porcentagem de usuários que compram
aplicações.
Organize with Sections
13. Etapas do Desenvolvimento
Configurar o Escrever o Testar no
ambiente código aparelho
Desenvolvendo para iOS em Linux
14. Configurar o Ambiente
Atualização do Firmware do aparelho;
Jailbreak do aparelho;
Download do iOS SDK;
Instalação do Toolchain.
15. Atualização do Firmware do iPhone
Instalar o iTunes (Mac OS / Windows)
http://www.apple.com/br/itunes/download/
Baixar o Firmware 3.1.3 do iPhone
http://limitededitioniphone.com/where-can-i-get-an-old-
iphone-firmware/
Atualizar o Firmware utilizando o iTunes. Em caso de problema,
utilizar uma versão anterior do iTunes (como a versão 7.2, por
exemplo).
16. Jailbreak do iPhone
Instalar o redsn0w (Mac OS / Windows)
http://www.redsnow.com
Realizar o Jailbreak do iPhone
http://www.connectionworld.org/como-desbloquear-o-iphone-
com-firmware-3-0/
17. Download do iPhone SDK
Baixar o iPhone SDK 3.1.3
http://iphonesdkdev.blogspot.com/2010/04/old-versions-of-
iphone-sdk.html
Link Direto
http://developer.apple.com/ios/download.action?path=/iphone/ip
hone_sdk_3.1.3__final/iphone_sdk_3.1.3_with_xcode_3.2.1__sno
w_leopard__10m2003a.dmg
18. O que é o Toolchain para iPhone?
À grosso modo, o Open Toolchain para iPhone é um conjunto de
ferramentas que permitem a realização de compilação cruzada para
Instalação do Toolchain
iPhone, ou seja, gerar código para a arquitetura ARM a partir da
80x86, permitindo assim a criação de um executável para iOS.
Site do projeto “iphonedevonlinux”
http://code.google.com/p/iphonedevonlinux/
Instruções de instalação
http://code.google.com/p/iphonedevonlinux/wiki/Installation
19. Após instalado…
Será criada uma pasta toolchain/ com a subpasta apps/, onde
ficarão as pastas referentes aos projetos criados.
Instalação do Toolchain
O Toolchain já possui um projeto de exemplo chamado
HelloToolchain, que se encontra em apps/HelloToolchain.
O código-fonte da aplicação fica na subpasta src/ e um
makefile é colocado na raiz da aplicação.
Também é criada uma pasta img/, na qual devem ser
colocados o ícone da aplicação, imagem default (que será
utilizada na Splash Screen) e demais imagens utilizadas pela
aplicação.
21. Sobre a linguagem Objective-C
É uma linguagem de programação reflexiva, orientada a
objetos, que suporta transmissão de mensagens no estilo
SmallTalk para a linguagem C;
Utilizada principalmente no Mac OS X. É a principal linguagem
utilizada no Cocoa (uma das cinco maiores APIs disponíveis
para o Mac OS X e a API disponível para o iOS);
Programas genéricos em Objective-C que não façam uso de
bibliotecas de terceiros também podem ser compilados por
qualquer sistema suportado pelo gcc, que inclui um compilador
Objective-C.
22. Tutoriais de Objective-C
Introdução rápida e objetiva do Objective-C:
http://www.cs.indiana.edu/classes/c304/ObjC.html
Tutorial simples, orientado ao utilizador:
http://www.otierney.net/objective-c.html
Tutorial “Objective-Oriented Programming and The Objective-C
Language”. Disponível em: http://objc.toodarkpark.net/
23. Que IDE utilizar?
Pode-se utilizar qualquer IDE para o desenvolvimento, uma vez
que não será utilizada nenhum tipo de ferramenta visual (no
Escrevendo o Código
caso do desenvolvimento em Mac existe um Construtor de
Interface). Recomenda-se o KDevelop ou qualquer outra IDE
que tenha suporte a linguagem Objective-C.
Site do projeto KDevelop
http://www.kdevelop.org/
24. O código do Hello World
que vem com o Open
Toolchain para iPhone é
composto por dois
arquivos:
HelloToolchain.h e
HelloToolchain.m.
Hello Toolchain! A
applicationDidFinishLaunching()
função
é
chamada assim que a aplicação é
iniciada e deve ser implementada de
forma a exibir as informações
desejadas na tela do aparelho.
25. Em que consiste o HelloToolchain.h?
Da mesma forma que no C/C++, o Objective-C possui arquivos de
cabeçalho (headers).
O header contém, entre as annotations @interface e @end, as
variáveis e funções que serão implementadas pelo arquivo de código,
de extensão .m.
HelloToolchain.h
As bibliotecas são importadas no mesmo estilo de C, trocando-se
#include por #import.
26. Em que consiste o HelloToolchain.m?
O .m contém, além do main(), entre as annotations
@implementation e @end, a implementação das funções
declaradas no arquivo de cabeçalho.
HelloToolchain.m
No main(), aloca-se uma instância de NSAutoReleasePool, uma
fila de objetos que serão automaticamente desalocados pelo
sistema. Logo após, chama-se o UIApplicationMain passando
como parâmetros os argumentos de inicialização do main()
bem como o título da aplicação.
Em applicationDidFinishLaunching(), prepara-se a janela da
aplicação, na qual serão adicionadas as views (componentes de
interface) da aplicação, como textos, botões, etc. Por fim,
torna-se a janela visível.
31. Como testar a aplicação no aparelho?
Uma vez produzido o código da aplicação, deve-se executar o
make preparado pelo Toolchain na pasta raiz. Eventualmente
serão necessárias mudanças no makefile, para compilar novos
arquivos de código, por exemplo.
Testar no iPhone
O make deve ser executado após definir-se duas variáveis: IP
do iPhone (que deve estar na mesma rede que o PC) e PATH
dos binários do toolchain. Além disso, deve acompanhar o
parâmetro deploy para que a aplicação seja enviada para o
iPhone via SSH (usando Wi-fi).
Durante o deploy, pedir-se-á a senha para acessar o iPhone via
SSH. Por padrão, a senha é alpine.
32. Trocando em miúdos…
Na raiz da pasta da aplicação (ex:
toolchain/apps/HelloToolchain/), executa-se:
Para apenas compilar a aplicação:
Testar no iPhone
sudo
PATH=PATH_DO_TOOLCHAIN/pre/bin:$PATH make
Para compilar e enviar a aplicação para o iPhone:
sudo IP=IP_DO_IPHONE
PATH=PATH_DO_TOOLCHAIN/pre/bin:$PATH make deploy