10
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.

Beginning Iphone

  • View
    225

  • Download
    3

Embed Size (px)

DESCRIPTION

Mobile Marketing , Mobile Programming, Google, Google Android, iOS, Mac Os, Apple, Windows Phone, Cocoa Touch, Objective C

Citation preview

Page 1: Beginning Iphone

1

e

Capítulo 1Bem-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 LivroEste 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.

Page 2: Beginning Iphone

2 CAPÍTULO 1: Bem-vindo à Selva

O Que Você Precisa Antes de ComeçarAntes 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.

NOTAO simulador não sustenta recursos dependentes de hardware, tais como o acelerômetro e a câmera do iPhone. Para estes, você também vai precisar das opções alternativas. Apenas achamos que você gostaria de saber.

Page 3: Beginning Iphone

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/.

Page 4: Beginning Iphone

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.

NOTASe você vai se cadastrar para o programa Standard ou Enterprise, deve fazer isso agora mesmo. O processo de aprovação demora um pouco, e você vai precisar que a aprovação esteja pronta para rodar seus aplicativos no iPhone ou iPod Touch. 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çarEste 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.

Page 5: Beginning Iphone

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 The Objective-C2. 0 Programming Language (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.

Page 6: Beginning Iphone

6 CAPÍTULO 1: Bem-vindo à Selva

Apenas uma JanelaDiferente 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 LimitadoDiferente 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 LimitadoPor 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 LimitadoA 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.

Page 7: Beginning Iphone

7CAPÍTULO 1: Bem-vindo à Selva

Recursos de Sistema LimitadoAlguns 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 PerdidasSe 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 NovasJá 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.

Page 8: Beginning Iphone

8 CAPÍTULO 1: Bem-vindo à Selva

Um Acesso DiferenteDuas 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 LivroAqui está uma breve descrição do que encontrar nos capítulos deste livro.

Capítulo 2Neste 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 3No 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 4O 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 5No 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 6Iremos 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 7Os 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.

Page 9: Beginning Iphone

9CAPÍTULO 1: Bem-vindo à Selva

Capítulo 8No 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 9Uma 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 10No 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 11O 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 13A 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 14O 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 15No 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.

Page 10: Beginning Iphone

Capítulo 16Cada 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 17O 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 18Neste 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