desenvolvendo para ios em linux
DESCRIPTION
Apresentação sobre como configurar um ambiente de desenvolvimento para iOS (iPod, iPhone, iPad) em Linux.TRANSCRIPT
Erisvaldo Gadelha Saraiva Júnior
Desenvolvendo para
iOS em Linux
E-mail: [email protected]: http://erisvaldojunior.com
Twitter: http://twitter.com/erisvaldojunior
Analista de Sistemas da Cehap (Companhia Estadual deHabitação Popular);
Desenvolvedor Mobile e participante do projeto Ginga peloLavid (Laboratório de Tecnologias para o Ensino Virtual eEstatí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 paradispositivos móveis;
Bacharel em Ciência da Computação pela Universidade Federalda Paraíba e Tecnólogo em Sistemas para Internet peloInstituto Federal de Educação, Ciência e Tecnologia.
Sobre o palestrante
Org
aniz
e w
ith
Se
ctio
ns
ObjetivoDesenvolver aplicações para a plataforma iOS 3 (iPod Touch,iPhone 2G, iPhone 3G, iPhone 3GS e iPad) em Linux, através decompilação cruzada com o Toolchain para iPhone.
Não é necessário ter um MacOS X e utilizar a IDE Xcode paradesenvolver para iPhone.Graças ao Toolchain paraiPhone, é possível desenvolverpara iOS em qualquerdistribuição Linux.
Intr
od
uçã
oO que é o iOS?Sistema operacional desenvolvido pela Apple para dispositivosmóveis (iPhone, iPad e iPod Touch).
O iOS atualmente se encontra na versão 4.x e é baseado noMac OS X;
O kit de desenvolvimento para iOS (o iOS SDK) estádisponível apenas para Mac OS X. A linguagem deprogramação utilizada no desenvolvimento para iOS é oObjective-C e a IDE, o XCode. Além disso, para testar suasaplicações no aparelho, é necessário possuir a licença do iOSDeveloper Program, ao custo de 99 dólares anuais.
Distribuição de aplicações única e exclusivamente através daApple App Store.
Mo
tiva
ção
Apple App StoreLoja de aplicativos para iOS gerenciada pela Apple e disponívelatravés dos próprios aparelhos.
Em julho de 2008 foi lançada a Apple App Store, na qual odesenvolvedor paga uma anuidade 99 dólares, define opreço final de suas aplicações e recebe 70% do lucro total;
A loja vem sendo um sucesso absoluto. Disponível em 77países, com mais de 75 mil aplicações e 1,5 bilhão dedownloads 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 suaspróprias lojas de aplicativos nos meses seguintes.
Org
aniz
e w
ith
Se
ctio
ns
MotivaçãoSegundo a AdMob, a Apple App Store movimenta incríveis 200milhões de dólares por mês, somando um total de 2,4 bilhões porano.
Trism, um jogo casual que foilançado no início da Apple AppStore (similar ao Bejeweled),rendeu ao seu desenvolvedor,Steve Demeter, U$ 250.000,00em apenas dois meses.
Org
aniz
e w
ith
Se
ctio
ns
MotivaçãoA Apple App Store possui o maior mercado de aplicações pagase gratuitas entre todas as lojas de aplicativos mobile.
Org
aniz
e w
ith
Se
ctio
ns
MotivaçãoA média de downloads da Apple App Store é superior a do AndroidMarket, bem como a porcentagem de usuários que compramaplicações.
Etapas do Desenvolvimento
Desenvolvendo para iOS em Linux
Configurar o ambiente
Escrever o código
Testar no aparelho
Configurar o Ambiente
Atualização do Firmware do aparelho;Jailbreak do aparelho;Download do iOS SDK;
Instalação do Toolchain.
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 iPhonehttp://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, porexemplo).
Jailbreak do iPhone
Instalar o redsn0w (Mac OS / Windows)http://www.redsnow.com
Realizar o Jailbreak do iPhonehttp://www.connectionworld.org/como-desbloquear-o-iphone-com-firmware-3-0/
Download do iPhone SDK
Baixar o iPhone SDK 3.1.3http://iphonesdkdev.blogspot.com/2010/04/old-versions-of-iphone-sdk.html
Link Direto
http://developer.apple.com/ios/download.action?path=/iphone/iphone_sdk_3.1.3__final/iphone_sdk_3.1.3_with_xcode_3.2.1__snow_leopard__10m2003a.dmg
Inst
alaç
ãod
o T
oo
lch
ain
O que é o Toolchain para iPhone?À grosso modo, o Open Toolchain para iPhone é um conjunto deferramentas que permitem a realização de compilação cruzada paraiPhone, ou seja, gerar código para a arquitetura ARM a partir da80x86, 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çãohttp://code.google.com/p/iphonedevonlinux/wiki/Installation
Inst
alaç
ãod
o T
oo
lch
ain
Após instalado…Será criada uma pasta toolchain/ com a subpasta apps/, ondeficarão as pastas referentes aos projetos criados.
O Toolchain já possui um projeto de exemplo chamadoHelloToolchain, que se encontra em apps/HelloToolchain.
O código-fonte da aplicação fica na subpasta src/ e ummakefile é colocado na raiz da aplicação.
Também é criada uma pasta img/, na qual devem sercolocados o ícone da aplicação, imagem default (que seráutilizada na Splash Screen) e demais imagens utilizadas pelaaplicação.
É uma linguagem de programação reflexiva, orientada aobjetos, que suporta transmissão de mensagens no estiloSmallTalk para a linguagem C;
Utilizada principalmente no Mac OS X. É a principal linguagemutilizada no Cocoa (uma das cinco maiores APIs disponíveispara o Mac OS X e a API disponível para o iOS);
Programas genéricos em Objective-C que não façam uso debibliotecas de terceiros também podem ser compilados porqualquer sistema suportado pelo gcc, que inclui um compiladorObjective-C.
Sobre a linguagem 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-CLanguage”. Disponível em: http://objc.toodarkpark.net/
Tutoriais de Objective-C
Escr
eve
nd
oo
Có
dig
oQue IDE utilizar?
Pode-se utilizar qualquer IDE para o desenvolvimento, uma vezque não será utilizada nenhum tipo de ferramenta visual (nocaso do desenvolvimento em Mac existe um Construtor deInterface). Recomenda-se o KDevelop ou qualquer outra IDEque tenha suporte a linguagem Objective-C.
Site do projeto KDevelophttp://www.kdevelop.org/
O código do Hello Worldque vem com o OpenToolchain para iPhone écomposto por doisarquivos:HelloToolchain.h eHelloToolchain.m.
A funçãoapplicationDidFinishLaunching() échamada assim que a aplicação éiniciada e deve ser implementada deforma a exibir as informaçõesdesejadas na tela do aparelho.
Hello Toolchain!
He
lloTo
olc
hai
n.h
Em que consiste o HelloToolchain.h?Da mesma forma que no C/C++, o Objective-C possui arquivos decabeçalho (headers).
O header contém, entre as annotations @interface e @end, asvariáveis e funções que serão implementadas pelo arquivo de código,de extensão .m.
As bibliotecas são importadas no mesmo estilo de C, trocando-se#include por #import.
He
lloTo
olc
hai
n.m
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çõesdeclaradas no arquivo de cabeçalho.
No main(), aloca-se uma instância de NSAutoReleasePool, umafila de objetos que serão automaticamente desalocados pelosistema. Logo após, chama-se o UIApplicationMain passandocomo parâmetros os argumentos de inicialização do main()bem como o título da aplicação.
Em applicationDidFinishLaunching(), prepara-se a janela daaplicação, na qual serão adicionadas as views (componentes deinterface) da aplicação, como textos, botões, etc. Por fim,torna-se a janela visível.
Test
arn
o iP
ho
ne
Como testar a aplicação no aparelho?
Uma vez produzido o código da aplicação, deve-se executar omake preparado pelo Toolchain na pasta raiz. Eventualmenteserão necessárias mudanças no makefile, para compilar novosarquivos de código, por exemplo.
O make deve ser executado após definir-se duas variáveis: IPdo iPhone (que deve estar na mesma rede que o PC) e PATHdos binários do toolchain. Além disso, deve acompanhar oparâmetro deploy para que a aplicação seja enviada para oiPhone via SSH (usando Wi-fi).
Durante o deploy, pedir-se-á a senha para acessar o iPhone viaSSH. Por padrão, a senha é alpine.
Test
arn
o iP
ho
ne
Trocando em miúdos…Na raiz da pasta da aplicação (ex:toolchain/apps/HelloToolchain/), executa-se:
Para apenas compilar a aplicação:
sudoPATH=PATH_DO_TOOLCHAIN/pre/bin:$PATH make
Para compilar e enviar a aplicação para o iPhone:
sudo IP=IP_DO_IPHONEPATH=PATH_DO_TOOLCHAIN/pre/bin:$PATH make deploy