1. O documento introduz o desenvolvimento de aplicativos para iPhone, cobrindo os requisitos necessários como um Macintosh, registro de desenvolvedor da Apple e o SDK do iPhone.
2. É explicado que o SDK gratuito permite desenvolver e testar aplicativos no simulador, mas não carregá-los no iPhone real ou distribuí-los na App Store.
3. Há algumas diferenças importantes entre desenvolvimento para iPhone e desktop, como apenas um aplicativo pode rodar de cada vez, há apenas uma janela e acesso limitado ao sistema.
Introdução ao desenvolvimento de aplicativos para iPhone
1. 1
e
Capítulo 1
Bem-vindo
à Selva
ntão, você quer escrever os aplicativos do iPhone? Bem, não podemos
dizer que culpamos você. O iPhone pode ser a nova plataforma mais
interessante que já surgiu. Certamente, é a plataforma móvel mais
interessante até o momento, principalmente agora que a Apple
forneceu uma série de ferramentas elegantes e bem documentadas para
o desenvolvimento dos aplicativos do iPhone.
O Que é Este Livro
Este livro é um guia para te ajudar a iniciar o caminho para criar seus
próprios aplicativos do iPhone. Nosso objetivo é te proporcionar a curva
inicial do aprendizado para ajudar a entender o jeito que os aplicativos
do iPhone trabalham e como são construídos. Na medida em que
você vai trabalhando de acordo com o livro, irá criar vários pequenos
aplicativos, cada um designado para destacar dispositivos específicos
do iPhone e mostrar como controlar e interagir com esses recursos. Se
você aliar a base que vai obter do seu jeito seguindo este livro, com a
sua própria criatividade e determinação, então adicione uma extensiva e
bem escrita documentação fornecida pela Apple, você vai ter tudo o que
precisa para construir seus próprios aplicativos profissionais do iPhone.
2. 2 CAPÍTULO 1: Bem-vindo à Selva
O Que Você Precisa Antes de Começar
Antes de começar a escrever um software para o iPhone, você precisará de algumas
coisas. Os iniciantes precisarão de uma base Intel Macintosh rodando Leopard (OS X
10.5.3 ou mais recente). Qualquer computador Macintosh – laptop ou desktop – lançado
até 2006 deve funcionar muito bem.
Você não precisa de um modelo top de linha para começar, então um MacBook ou Mac
Mini servirão muito bem. Quanto mais antigo e mais lento o modelo, entretanto, mais se
beneficiará com um melhoramento RAM.
Você também precisará se cadastrar para se tornar um desenvolvedor registrado
do iPhone. A Apple exige essa etapa antes de permitir o download do kit de
desenvolvimento do software do iPhone (SDK). Para se cadastrar, acesse
http://developer.apple.com/iphone/, no qual te mostrará uma página
semelhante àquela mostrada na Figura 1-1. Em algum lugar da página há um link
com o mais recente e melhor SDK do iPhone. Clique no link, e aparecerá uma
página de cadastro com três opções.
A opção mais simples (e grátis) é clicar no botão em que se lê Downloads the Free SDK
(Baixe o SDK Gratuito). Você será levado para o ID Apple. Use seu ID Apple para logar.
Se você não tem um ID Apple, clique no botão Create Apple ID (Criar um ID Apple), crie
um, e então faça o logon. Uma vez logado, você será levado para a página principal do
iPhone Developer (desenvolvimento do iPhone). Você não só irá encontrar um link para
o download do SDK, como também encontrará links para uma gama de documentação,
vídeos, amostras de código entre outros, todos dedicados para te ensinar os excelentes
pontos do desenvolvimento de aplicativos do iPhone.
Um dos mais importantes elementos inclusos com o SDK do iPhone é o Xcode, meio de
desenvolvimento integrado (IDE) da Apple. O Xcode inclui ferramentas para criar e apurar
erros do código fonte, compilando aplicativos, e ajuste da performance dos aplicativos que
você tiver escrito. Assim que você terminar este livro, você se tornará um aficionado por Xcode!
O SDK grátis também inclui um simulador que lhe permitirá usar a maioria dos
programas do iPhone no seu Mac. Isto é perfeito para aprender como programar seu
iPhone. A opção gratuita não irá, contudo, permitir que você faça o download dos seus
aplicativos para o seu iPhone (ou iPod Touch). Ele também não dá a capacidade de
distribuir seus aplicativos na loja iPhone App da Apple. Para isto, você precisará de uma
das duas outras opções, que não são gratuitas.
NOTA
Osimuladornãosustentarecursosdependentesdehardware,taiscomooacelerômetroeacâmeradoiPhone.Paraestes,
você também vai precisar das opções alternativas. Apenas achamos que você gostaria de saber.
3. 3CAPÍTULO 1: Bem-vindo à Selva
Figura 1-1. Página da web do iPhone da Apple
O programa Standard (Padrão) custa $99. Ele fornece um host de ferramentas e recursos
de desenvolvimento, suporte técnico, distribuição do seu aplicativo via loja App da
Apple, e o mais importante, capacidade para testar e apurar erros do seu código em um
iPhone, de preferência apenas no simulador.
O programa Enterprise (Empresas) custa U$$ 299 e é destinado a empresas de
desenvolvimento de programas ou aplicativos caseiros para o iPhone e iPod Touch
Para mais detalhes destes dois programas, visite http://developer.apple.com/
iphone/program/.
4. 4 CAPÍTULO 1: Bem-vindo à Selva
Devido o iPhone ser um aparelho celular sempre conectado e que usa outra
infra-estrutura wireless da companhia, a Apple colocou muito mais restrições nos
desenvolvedores do iPhone do que nos desenvolvedores do Mac, que são capazes
de escrever e distribuir programas sem absolutamente nenhuma fiscalização ou
aprovação da Apple.
A Apple não colocou restrições para ser mesquinha, mas aos poucos está tentando
minimizar as chances de programas medíocres e maliciosamente escritos serem
distribuídos, o que poderia degradar a performance na rede compartilhada.
Desenvolver para o iPhone pode parecer como uma pista de obstaculos de uma
prova, mas a Apple fez um grande esforço para fazer este processo o mais indolor
possível. Também deve ser notado que $99 é ainda consideravelmente mais barato
do que comprar, por exemplo, Visual Studio, IDE de desenvolvimento de software
da Microsoft.
Isto pode parecer óbvio, mas você também vai precisar de um iPhone. Enquanto muitos
dos seus códigos podem ser testados usando o iPhone Simulator (Simulador de iPhone),
outros realmente devem ser testados em um iPhone antes mesmo de você considerar
seu aplicativo acessível para o público.
NOTA
SevocêvaisecadastrarparaoprogramaStandardouEnterprise,devefazerissoagoramesmo.Oprocessodeaprovação
demoraumpouco,evocêvaiprecisarqueaaprovaçãoestejaprontapararodarseusaplicativosnoiPhoneouiPodTouch.
Não se preocupe, embora todos os programas na maioria dos primeiros capítulos e a maioria dos aplicativos neste livro
vão rodar muito bem no iPhone Simulator.
O Que Você Precisa Saber Antes de Começar
Este livro supõe que você já tenha algum conhecimento de programação. Isto pressupõe
que você entende os fundamentos da programação de orientação de objeto, que você
saiba o que são objetos, loops e variáveis, por exemplo. Também se supõe que você esteja
familiarizado com a linguagem de programação Objective-C. O Cocoa Touch, a parte
do SDK que você irá usar na maior parte deste livro, usa Objective-C 2.0, mas não se
preocupe se você não está familiarizado com inovações mais recentes que a linguagem
Objective-C. Vamos ressaltar certamente qualquer um dos recursos da linguagem 2.0
que der vantagens em explicar como elas funcionam e por que as usamos.
Você também deve estar familiarizado com o próprio iPhone. No momento em que
puder lidar com qualquer plataforma para a qual você precisa escrever um aplicativo,
saber das nuances e das sutilezas do iPhone e estar familiarizado com sua interface e
com o jeito que os programas do iPhone da Apple olham e sentem.
5. 5CAPÍTULO 1: Bem-vindo à Selva
NOVO NO OBJECTIVE-C?
Se você nunca programou em Objective-C antes, aqui estão alguns recursos para te ajudar.
Primeiro, verifique o Learn Objective-C do Mac, uma excelente e acessível introdução ao Objective-C feita pelos gênios de
programação do Mac Mark Dalrymple e Scott Knaster (Apress 2008).
http://www.apress.com/book/view/9781430218159
Depois, acesse o Apple iPhone Dev Center, e faça o download de uma cópia do TheObjective-C2.0ProgrammingLanguage
(Programação de Linguagem Objective-C 2.0), uma descrição detalhada e extensiva da linguagem e um ótimo guia de
referência:
http://developer.apple.com/iphone/libraty/documentation/Cocoa/
Conceptual/ObjectiveC
Observe que vão pedir para você logar antes de pegar o começo deste documento.
O Que É Diferente na Codificação para iPhone?
Se você nunca usou o Cocoa ou seu processador NextSTEP, você deve achar o Cocoa
Touch, a estrutura de aplicativo que você vai usar para escrever os aplicativos do iPhone,
um pouco estranha, há algumas diferenças fundamentais das outras estruturas de
aplicativos, tais como aquelas usadas quando se constrói aplicativos .NET ou Java. Não se
preocupe muito se você se sente um pouco perdido no começo. Apenas fique atento aos
exercícios, e começará a entender depois de um tempo.
Se você tem escrito programas usando o Cocoa ou o NextSTEP, encontrará muita coisa
no SDK do iPhone que é familiar. Muitas classes estão inalteradas das versões que está
acostumado a desenvolver para SO X do Mac OS X, e até aqueles que são diferentes
tendem a seguir os mesmos princípios básicos e usam modelos de design similares àqueles
que você já conhece. Há, contudo, várias diferenças entre o Cocoa e o Cocoa Touch.
Indiferente da sua experiência, você precisa ter em mente algumas diferenças chave
entre o desenvolvimento do iPhone e o desenvolvimento do aplicativo do desktop.
Rodando Um Único Aplicativo
Com a exceção do próprio sistema de operação, apenas um aplicativo pode ser rodado
em qualquer tempo dado em um iPhone. Isto pode mudar no futuro, assim que o iPhone
conseguir mais memória e processadores mais potentes. Por enquanto, seu aplicativo
será o único rodado enquanto seu código é executado. Quando seu aplicativo não for o
único a interagir com o usuário, não será capaz de realizar nada.
6. 6 CAPÍTULO 1: Bem-vindo à Selva
Apenas uma Janela
Diferente dos sistemas operacionais do desktop e do laptop, onde muitos programas
rodando coexistem, onde há capacidade para criar e controlar múltiplas janelas, o iPhone
dá ao seu aplicativo apenas uma“janela”para trabalhar. Toda a interação do aplicativo
com o usuário toma lugar dentro desta única janela, e seu tamanho é determinado no
tamanho da tela do iPhone.
Acesso Limitado
Diferente dos programas em um computador que muitas vezes têm acesso a tudo que
o usuário lança, o iPhone restringe seriamente o que seu aplicativo pode ter. Você pode
apenas ler e escrever arquivos pelo sistema de arquivos do iPhone que foram criados para
o seu aplicativo. Esta área é chamada de sandbox (caixa de areia) do aplicativo, e é onde
o seu aplicativo vai armazenar documentos, preferências, e todos outros tipos de dados
que pode precisar ser armazenado.
O seu aplicativo é também formado de outros modos; você não será habilitado a
acessar portas de rede com número baixo no iPhone, por exemplo, ou fazer alguma
outra coisa que poderia tipicamente requerer acesso administrativo ou o root em um
computador desktop.
Tempo de Resposta Limitado
Por causa do modo que é usado, o iPhone precisa ser inteligente e espera-se o mesmo do
seu aplicativo. Quando o seu programa é lançado, você tem que deixar o seu aplicativo
aberto, preferências e dados carregados e a principal visualização mostrada o mais rápido
possível – não mais que poucos segundos. Em qualquer momento em que seu programa
estiver rodando, pode ter o tapete puxado. Se o usuário apertar o botão home, o iPhone
vai para home, e você tem que salvar rapidamente tudo e sair. Se você gastar mais do que
cinco minutos para salvar e abandonar o comando, o seu processo de aplicativos será
destruído, sem levar em conta se você acabou de salvar.
Conseqüentemente, você tem que cuidar habilmente dos seus aplicativos do iPhone para
ter certeza de que os dados não serão perdidos quando o usuário sair.
Tamanho de Tela Limitado
A tela do iPhone é muito boa. Quando foi introduzida, era a tela com melhor resolução
disponível em um dispositivo. Mas o display do iPhone não é tudo isso, e como resultado,
você tem uma área muito menor para trabalhar que os computadores modernos, apenas
480 X 320 pixels. Para dar um contraste interessante, no momento desta escrita, o iMac
da Apple mais barato, suporta 1680 X 1050 pixels, e o seu computador notebook mais
barato, o MacBook, suporta 1280 X 800 pixels. Por outro lado, o maior monitor da Apple, o
Cinema Display 30-inch oferece uma tela enorme de 2560 X 1600 pixels.
7. 7CAPÍTULO 1: Bem-vindo à Selva
Recursos de Sistema Limitado
Alguns programadores antigos que estão lendo isto estão rindo da idéia de uma máquina
com pelo menos 128MB de RAM e 4GB de armazenamento ter qualquer recurso contido,
mas é verdade. Desenvolver para o iPhone não é, talvez, exatamente a mesma combinação
de como tentar escrever um complexo aplicativo de planilha em uma máquina com 48KB
de memória, mas dando a natureza gráfica do iPhone e todas as coisas que ele é capaz de
fazer, trabalhar fora da memória é muito, muito fácil. Todas as versões atuais do iPhone
disponíveis têm 128MB de RAM física, embora isto vá crescer com o tempo. Algumas
destas memórias são usadas para o buffer da tela e por outros processos do sistema.
Geralmente, cerca da metade desta memória é deixada para o seu aplicativo.
Embora 64MB provavelmente pareçam bem coerentes para tal computadorzinho, há
outro fator a se considerar quando isto vem à memória no iPhone: sistemas de operação
de computadores modernos, como SO X do Mac pegará partes da memória que não
estão sendo usadas e vai escrevê-las fora do disco em um lugar chamado arquivo de
troca, que armazena aplicativos para deixar rodando mesmo quando pedem mais
memória do que realmente tem disponível no computador. O SO do iPhone, entretanto
não vai escrever na memória temporária, dados de aplicativo, fora de um arquivo de
troca. Em conseqüência, a quantidade de memória disponível para o seu aplicativo é
armazenada por uma quantidade de memória física não usada no celular.
O Cocoa Touch tem mecanismos internos para deixar o seu aplicativo saber que a
memória está diminuindo. Quando isso acontece, seu aplicativo deve liberar a memória
desnecessária ou arriscar ser forçado a sair.
Ferramentas Cocoa Perdidas
Se você está vindo ao iPhone com experiência do Cocoa, algumas ferramentas que você
provavelmente estava acostumado a usar não estão disponíveis no iPhone. O SDK do
iPhone não suporta Core Data ou Cocoa Bindings. Nós mencionamos antes que Cocoa
Touch usa Objective-C 2.0, mas um dos novos recursos chave desta linguagem não está
disponível no iPhone: Cocoa Touch não suporta acúmulo de lixo.
Algumas Coisas Novas
Já que nós mencionamos que Cocoa Touch perde algumas coisas que o Cocoa tem, é
justo mencionar que o SDK do iPhone contém algumas novas funções que geralmente
não estão presentes no Cocoa ou, no mínimo, não disponíveis em todo Mac. O SDK do
iPhone fornece um jeito para o seu aplicativo determinar as coordenadas geográficas
comuns do celular usando Core Location. O iPhone também tem uma câmera e uma
biblioteca de fotos interna, e o SDK fornece mecanismos que permitem seu aplicativo
acessar ambos. O iPhone também tem um acelerômetro interno que detecta como você
segura e move seu iPhone.
8. 8 CAPÍTULO 1: Bem-vindo à Selva
Um Acesso Diferente
Duas coisas que o iPhone não tem são: um teclado e um mouse físico, o que quer dizer
que você tem um jeito diferente e fundamental de interagir com o usuário, então faz uma
programação para um computador de finalidade comum. Felizmente, a maioria destas
interações é controlada por você. Se adicionar um campo de texto para o seu aplicativo,
por exemplo, o iPhone sabe mostrar um teclado quando o usuário clicar naquele campo,
sem você precisar escrever nenhum código a mais.
O Que Tem Neste Livro
Aqui está uma breve descrição do que encontrar nos capítulos deste livro.
Capítulo 2
Neste capítulo, aprenderemos como usar o colega de trabalho do Xcode, o Interface
Builder (Construtor de Interface), para criar uma interface simples, colocando alguns
textos na tela do iPhone.
Capítulo 3
No capítulo 3, começaremos interagindo com o usuário, construindo um aplicativo
simples que atualiza de modo dinâmico o texto exibido na base de tempo que o usuário
aperta o botão.
Capítulo 4
O capítulo 4 será baseado no capítulo 3, é introduzindo a você vários outros modelos de
comandos de interface do usuário do iPhone. Nós também veremos como usar alertas
e folhas para induzir os usuários a tomar uma decisão ou informá-los que alguma coisa
estranha está acontecendo.
Capítulo 5
No capítulo 5 veremos a auto-rotação manual, o mecanismo que permite que os
aplicativos do iPhone sejam usados tanto no modo retrato quanto paisagem.
Capítulo 6
Iremos deslocar as mais avançadas interfaces do usuário no capítulo 6 e ver a criação de
interfaces de multi-visualização. Mudaremos cada visualização sendo mostrada ao usuário
no tempo de execução, permitindo que você crie interfaces do usuário mais complexas.
Capítulo 7
Os controles da barra de ferramentas são um dos modelos das interfaces de usuário do
iPhone; no capítulo 7, nós veremos como implementar esses tipos de interface.
9. 9CAPÍTULO 1: Bem-vindo à Selva
Capítulo 8
No capítulo 8 veremos as visualizações de rótulo, o primeiro jeito de fornecer listas de
dados ao usuário e a formação de aplicativos baseados na navegação hierárquica.
Capítulo 9
Uma das interfaces de aplicativos mais comum no iPhone é a lista hierárquica que te
possibilita configurar para ver mais dados e mais detalhes. No capítulo 9, você verá o que
está envolvido na implementação deste tipo de modelo de interface.
Capítulo 10
No capítulo 10, veremos a implementação de configurações de aplicativos, que é o
mecanismo do iPhone para deixar os usuários colocarem as suas preferências de nível de
aplicativos.
Capítulo 11
O capítulo 11 mostra o gerenciamento de dados no iPhone. Falaremos sobre a criação de
objetos para segurar dados do aplicativo e ver como que o dado pode ser continuado no
sistema de arquivo do iPhone, tanto quanto para a base de dados embutida e fornecida
chamada SQLite.
Capítulo 12
Todo mundo adora desenhar, então nós iremos fazer alguns desenhos personalizados no
capítulo 12, usando as funções básicas de desenho em Quartz e OpenGL ES
Capítulo 13
A tela multitouch (multi-toque) pode aceitar uma grande variedade de entradas do
jeito do usuário. No capítulo 13, você aprenderá tudo sobre como detectar movimentos
básicos tais como uma batida leve ou uma pancada. Também veremos o processo de
definição dos novos toques e falar sobre quando os novos toques são apropriados.
Capítulo 14
O iPhone é capaz de determinar sua latitude e longitude graças ao Core Location. Nós
faremos alguns códigos que se usa no Core Location para descobrir em que lugar do
mundo o seu iPhone está e usar esta informação na sua aventura de dominar o mundo.
Capítulo 15
No capítulo 15, nós veremos a conexão com o acelerômetro do iPhone, que é como o
seu iPhone sabe de que jeito será mantido. Nós veremos algumas coisas divertidas que
seu aplicativo pode fazer com esta informação.
10. Capítulo 16
Cada iPhone tem uma câmera e uma biblioteca de imagens, ambos são disponíveis para
a um aplicativo, se você pedir gentilmente! No capítulo 16, nós mostraremos como pedir
gentilmente.
Capítulo 17
O iPhone está atualmente disponível em 70 países. No capítulo 17, mostraremos como
escrever seus aplicativos de tal modo que todas as partes do seu aplicativo podem ser
facilmente traduzidas em outras línguas para expandir o público potencial dos seus
aplicativos.
Capítulo 18
Neste ponto do livro, você terá dominado a base fundamental para criar aplicativos
do iPhone. Mas para onde você vai? No capítulo 18, exploraremos os próximos passos
lógicos para você fazer sua aventura para dominar o SDK do iPhone.
Você Está Pronto?
O iPhone é uma nova incrível plataforma de computação, uma nova fronteira excitante
para o seu prazer de desenvolvimento. Programar seu iPhone será uma nova experiência,
diferente de qualquer plataforma com a qual você já trabalhou. Para tudo que parecer
familiar, haverá alguma coisa diferente, mas enquanto você trabalha de acordo com o
código do livro, os conceitos devem vir todos juntos e começar a fazer sentido.
Você deve ter em mente que os exercícios neste livro não são simplesmente uma
checklist que, quando completada, magicamente te dará um status de desenvolvedor
guru do iPhone. Tenha certeza de que você entendeu o que você fez, e porque, antes
de passar para o próximo projeto. Não tenha medo de fazer mudanças no código;
experimentar e absorver os resultados são um dos melhores caminhos para você
aprender com as complexidades da codificação em um meio como o Cocoa Touch.
É isso, se você tiver o seu SDK de iPhone instalado, vire a página. Se não, vá fazer!
Conseguiu? Ótimo. Então, vamos lá!
10 CAPÍTULO 1: Bem-vindo à Selva