26
Erisvaldo Gadelha Saraiva Júnior Desenvolvendo para iPhone em Linux Contato: [email protected]

Desenvolvendo Para I Phone Em Linux

Embed Size (px)

Citation preview

Page 1: Desenvolvendo Para I Phone Em Linux

Erisvaldo Gadelha Saraiva Júnior

Desenvolvendo para

iPhone em Linux

Contato: [email protected]

Page 2: Desenvolvendo Para I Phone Em Linux

Org

aniz

e w

ith

Se

ctio

ns

Objetivo Desenvolver aplicações para iPod Touch e iPhone (2G, 3G e 3GS) em Linux, através do iPhone Toolchain.

Não é necessário ter um Mac OS X e utilizar o Xcode para desenvolver para iPhone. Graças ao iPhone Toolchain, é possível desenvolver para iPhone em qualquer distribuição Linux.

Page 3: Desenvolvendo Para I Phone Em Linux

Intr

od

uçã

o

O que é o iPhone OS? Sistema operacional desenvolvido pela Apple para iPhone e iPod Touch.

O iPhone OS atualmente se encontra na versão 3.1 e é baseado no Mac OS X; O kit de desenvolvimento para iPhone OS (o iPhone SDK) está disponível apenas para Mac OS X. A linguagem de programação utilizada no desenvolvimento para iPhone OS é o Objective-C e a IDE, o XCode. Distribuição de aplicações única e exclusivamente através da iPhone App Store.

Page 4: Desenvolvendo Para I Phone Em Linux

Mo

tiva

ção

iPhone App Store Loja de aplicativos para iPhone gerenciada pela Apple e disponível através do próprio aparelho.

Em julho de 2008 foi lançada a iPhone App Store, na qual o desenvolvedor paga uma anuidade de U$ 99,00, define o preço final de suas aplicações e recebe 70% do lucro total; 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 iPhone 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.

Page 5: Desenvolvendo Para I Phone Em Linux

Org

aniz

e w

ith

Se

ctio

ns

Motivação Segundo a AdMob, a iPhone App Store movimenta incríveis 200 milhões de dólares por mês, somando um total de 2,4 bilhões por ano.

Trism, um jogo casual que foi lançado no início da iPhone App Store (similar ao Bejeweled), rendeu ao seu desenvolvedor, Steve Demeter, U$ 250.000,00 em apenas dois meses.

Page 6: Desenvolvendo Para I Phone Em Linux

Etapas do Desenvolvimento

Desenvolvendo para iPhone em Linux

Configurar o

ambiente

Escrever o código

Testar no

iPhone

Page 7: Desenvolvendo Para I Phone Em Linux

Configurar o Ambiente

Atualização do Firmware do iPhone; Jailbreak do iPhone;

Download do iPhone SDK; Instalação do Toolchain.

Page 8: Desenvolvendo Para I Phone Em Linux

Atualização do Firmware do iPhone Instalar o iTunes 9 (Mac OS / Windows) http://www.apple.com/br/itunes/download/ Baixar o Firmware 3.0 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).

Page 9: Desenvolvendo Para I Phone Em Linux

Jailbreak do iPhone

Instalar o redsn0w 0.9.2 (Mac OS / Windows) http://www.redsnow.com Realizar o Jailbreak do iPhone http://www.connectionworld.org/como-desbloquear-o-iphone-com-firmware-3-0/

Page 10: Desenvolvendo Para I Phone Em Linux

Download do iPhone SDK

Baixar o iPhone SDK 3.0 (Leopard) http://iphonesdkdev.blogspot.com/2009/06/use-xcode-312-to-build-sdk-30-app-to-30.html Link Direto http://developer.apple.com/iphone/download.action?path=/iphone/iphone_sdk_3.0__final/iphone_sdk_3.0__leopard__9m2736__final.dmg

Page 11: Desenvolvendo Para I Phone Em Linux

Inst

alaç

ão d

o T

oo

lch

ain

O que é o iPhone Toolchain? À grosso modo, um Toolchain é um conjunto de ferramentas de programação que permitem a geração de um outro programa. No caso do iPhone, o toolchain permite a realização de uma compilação cruzada, possibilitando que o código seja compilado em um computador e executado no próprio iPhone. Site do projeto “iphonedevonlinux”

http://code.google.com/p/iphonedevonlinux/ Instruções de instalação http://code.google.com/p/iphonedevonlinux/wiki/Installation

Page 12: Desenvolvendo Para I Phone Em Linux

Inst

alaç

ão d

o T

oo

lch

ain

Após instalado… Será criada uma pasta toolchain/ com a subpasta apps/, onde ficarão as pastas referentes aos projetos criados.

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.

Page 13: Desenvolvendo Para I Phone Em Linux

Escrever o Código

“Hello World” em iPhone OS

Page 14: Desenvolvendo Para I Phone Em Linux

É 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 e é 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 iPhone OS);

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.

Sobre a linguagem Objective-C

Page 15: Desenvolvendo Para I Phone Em Linux

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/

Tutoriais de Objective-C

Page 16: Desenvolvendo Para I Phone Em Linux

Escr

eve

nd

o o

dig

o

Que IDE utilizar? Pode-se utilizar qualquer IDE para o desenvolvimento, uma vez que não será utilizada nenhum tipo de ferramenta visual (no 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/

Page 17: Desenvolvendo Para I Phone Em Linux

O código do Hello World que vem com o Toolchain é composto por dois arquivos: HelloToolchain.h e HelloToolchain.m. A função applicationDidFinishLaunching() é chamada assim que a aplicação é iniciada e deve ser implementada de forma a exibir as informações desejadas na tela do aparelho.

Hello Toolchain!

Page 18: Desenvolvendo Para I Phone Em Linux

He

lloTo

olc

hai

n.h

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. As bibliotecas são importadas no mesmo estilo de C, trocando-se #include por #import.

Page 19: Desenvolvendo Para I Phone Em Linux

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ções declaradas no arquivo de cabeçalho. 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.

Page 20: Desenvolvendo Para I Phone Em Linux

He

lloTo

olc

hai

n.m

Page 21: Desenvolvendo Para I Phone Em Linux

Criando interfaces no iPhone com o UIKit

Porção do UIKit

Page 22: Desenvolvendo Para I Phone Em Linux

Criando interfaces no iPhone com o UIKit

Visão geral do

UIKit

Page 23: Desenvolvendo Para I Phone Em Linux

Testar no iPhone

Como testar sua aplicação no iPhone, usando o Toolchain

Page 24: Desenvolvendo Para I Phone Em Linux

Test

ar n

o iP

ho

ne

Como testar a aplicação no iPhone? 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. 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.

Page 25: Desenvolvendo Para I Phone Em Linux

Test

ar n

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:

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

Page 26: Desenvolvendo Para I Phone Em Linux

What’s Your Message? OBRIGADO!