Desenvolvendo para iOS em linux

33
Erisvaldo Gadelha Saraiva Júnior Desenvolvendo para iOS em Linux E-mail: [email protected] Site: http://erisvaldojunior.com Twitter: http://twitter.com/erisvaldojunior

description

Apresentação sobre como configurar um ambiente de desenvolvimento para iOS (iPod, iPhone, iPad) em Linux.

Transcript of Desenvolvendo para iOS em linux

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

Sobre a Yupi Studios

www.yupistudios.com

Games (MinerMan)

Aplicativos (Pump Me Up!)

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.

Intr

od

uçã

oDesenvolvendo para iOS em Mac OS XXCode IDE, Interface Builder e iPhone Simulator

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.

Escrever o Código

“Hello World” em iOS

É 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

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.

He

lloTo

olc

hai

n.m

Criando interfaces no iPhone com o UIKit

Porção do UIKit

Criando interfaces no iPhone com o UIKit

Visão geraldo

UIKit

Testar no aparelho

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

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

What’s Your Message?OBRIGADO!