Introdução ao Desenvolvimento para iPhoneIsrael S. Paixão Jr.2
ResumoParte I: Por que desenvolver para iPhone?Parte II: Receita para uma aplicação iPhone.Parte III: Hello World.3
Parte I: Por que desenvolver para iPhone?4
Por que desenvolver para iPhone?MERCADO	Steve Jobs anunciou recentemente que foram vendidos 50 milhões de iPhone e 35 milhões de iPodTouch.5
Por que desenvolver para iPhone?HÁBITOS DE CONSUMO	A AppStore fará 2 anos em julho de 2010 e já possui mais de 180 mil aplicações disponíveis.	Segundo a Apple já foram vendidas mais de 4 bilhões de aplicações.	As pessoas já aprenderam como utilizar a AppStore, e para grande parte delas, isto já se tornou um hábito. 6
Por que desenvolver para iPhone?VERSATILIDADE	Seja qual for sua idéia para uma aplicação, ela poderá ser bem implementada no iPhone, desde que seja apropriada para dispositivos móveis.	Jogos, aplicativos de referência, aplicativos promocionais, clientes alternativos para aplicações web, aplicações corporativas para vendedores e/ou coleta de dados, etc.7
Por que desenvolver para iPhone?UNIFORMIDADE	A ausência de diversos fabricantes acaba garantindo uma plataforma uniforme e estável, além de muito rica em documentação e com uma ampla comunidade de desenvolvedores. 8
Por que desenvolver para iPhone?FUTURO	A Apple não fica parada. O iPhone OS 4.0 vem aí e oferece uma série de recursos que tornarão o desenvolvimento para a plataforma ainda mais interessante. 	Desenvolver para iPhone deixa você mais próximo das novidades da Apple. Como exemplo, o iPad, lançado em abril de 2010, compartilha a maior parte das ferramentas e paradigma de desenvolvimento do iPhone. 9
Parte II - Receita para uma Aplicação iPhone10
IngredientesComputador Macintosh Intel (modelos de 2006 em diante)Sistema Operacional Leopard ou SnowLeopard (Mac OS X 10.5 ou mais recente)Um iPhone (ou iPodTouch)Uma conta no iPhone Dev Center11
Tipos de Contas no iPhoneDev CenterGratuita: habilita o acesso às ferramentas de desenvolvimento (iPhone SDK, Xcode, etc.). Não permite a execução da aplicação no iPhone, apenas no simulador;Standard $99: habilita testes e debug no iPhone, permite publicar suas aplicações na AppStore;Empresa $299: Mais adequada para desenvolvimento de aplicações a serem distribuídas internamente. O cadastro nesta modalidade envolve certa burocracia e pode demorar.Ver diferenças entre os tipos de contas12
Modo de Preparo (em sete passos)Familiarize-se com o iPhoneInstale as ferramentas de desenvolvimentoEstude Objective-CEscolha frameworks e engines apropriadosConstrua sua aplicaçãoPrepare sua aplicação para a venda na AppStorePromova sua aplicação13
Passo 1: Familiarize-se com o iPhoneFormas de interação bastante peculiares, diferentes de outros dispositivosSomente depois de utilizar o iPhone por um tempo, você terá idéia do que funciona bem em matéria de usabilidadeExplore as aplicações disponíveis na AppStore, confira se sua idéia ainda não foi implementada14
Passo 2: Instale as Ferramentas de Desenvolvimento	Após instalar o iPhone SDK você  terá em seu Mac OS as seguintes ferramentas:XCodeInterface BuilderInstrumentsiPhone Simulator15
Passo 2: Instale as Ferramentas de DesenvolvimentoXCode16
Passo 2: Instale as Ferramentas de DesenvolvimentoInterface Builder17
Passo 2: Instale as Ferramentas de DesenvolvimentoInstruments18
Passo 2: Instale as Ferramentas de DesenvolvimentoiPhone Simulator19
Passo 3: Estude Objective-CCaracterísticas da linguagem Objective-C:Estende a linguagem C (detalhes)
É orientada a objetos
Invocação de métodos através de mensagens
Dinâmica (typing, binding, loading)
Gerenciamento de memória baseado em contador de referência (ver regras)
Pode ser misturada com C++ (ver exemplo)20
Passo 3: Estude Objective-CFontes para EstudoAulas sobre Desenvolvimento para Iphone da Universidade de Stanford– Os vídeos das aulas estão disponíveis no iTunes U.Introduction to The Objective-C Programming Language – Manual de Referênciada Apple21
Passo 4: Escolha os Frameworks/Engines ApropriadosCamadas do iPhone OS22
Passo 4: Escolha os Frameworks/Engines ApropriadosCamadas do iPhone OSConjunto de frameworks de alto nível em Objective-C. ( Foundation, UIKit )Conjunto de interfaces para acesso aos recursos de áudio e vídeo. ( OpenGL ES, Core Audio, Core Animation )Conjunto de interfaces fundamentais acessíveis via linguagem C.( Core Foundation, CFNetwork, SQLite )23
Passo 4: Escolha os Frameworks/Engines ApropriadosCamadas do iPhone OSÉ recomendável que sua aplicação acesse  as camadas inferiores, apenas quando a funcionalidade desejada não está disponível nas camadas superiores. Grande parte das aplicações acessa apenas a CocoaTouch. É comum, entretanto, jogos acessarem as camadas inferiores.24
Passo 4: Escolha os Frameworks/Engines ApropriadosCocoaTouch25
Passo 4: Escolha os Frameworks/Engines ApropriadosCocoaTouch	O CocoaTouch coloca em prática muitos dos  padrões de projeto do famoso livro Padrões de Projeto - SoluçõesReutilizáveis de Software Orientado a Objetos.  Caso sua aplicação precise utilizar amplamente o UIKit, é recomendável que você leia a documentação  sobre como estes padrões foram adaptados no CocoaTouch.26
Passo 4: Escolha os Frameworks/Engines ApropriadosCocoaTouch - UIKit27
Passo 4: Escolha os Frameworks/Engines ApropriadosCocos2D Iphone	Game engine paraconstrução de jogos 2D utilizando Objective-Chttp://www.cocos2d-iphone.org/28
Passo 4: Escolha os Frameworks/Engines ApropriadosOolongengine	Game engine em C++ para contrução de jogos 2D e 3Dhttp://code.google.com/p/oolongengine/29
Passo 4: Escolha os Frameworks/Engines ApropriadosUnity3D iPhonehttp://unity3d.com/30
Passo 5: Construa sua aplicaçãoLembre-se das peculiaridades da plataforma:Sua aplicação terá apenas uma janela, a qual ocupará toda a tela do iPhone
Apenas uma aplicação em execução
Acesso limitado ao iPhone
Tempo de resposta limitado
Tela pequena: 480x320 pixels
Recursos limitados (128~256MB RAM)31
Passo 5: Construa sua aplicação	Planeje sua aplicação, comece pela interface. Se você planeja utilizar o UIKit é fortemente recomendada a leitura do guia de usabilidade da Apple:Human Interface Principles: Creating a Great User Interface32
Passo 5: Construa sua aplicaçãoTenha o hábito de testar sua aplicação no iPhone durante o desenvolvimento.  Alguns processos que são instantâneos no simulador podem ser lentos demais no dispositivo real.Sempre que possível peça a pessoas que não estejam envolvidas com o desenvolvimento da aplicação para testá-la. Assim, você pode verificar se sua abordagem para a interface funciona, pode obter sugestões de melhorias e encontrar bugs precocemente.33

Introdução Ao Desenvolvimento Para Iphone

  • 2.
    Introdução ao Desenvolvimentopara iPhoneIsrael S. Paixão Jr.2
  • 3.
    ResumoParte I: Porque desenvolver para iPhone?Parte II: Receita para uma aplicação iPhone.Parte III: Hello World.3
  • 4.
    Parte I: Porque desenvolver para iPhone?4
  • 5.
    Por que desenvolverpara iPhone?MERCADO Steve Jobs anunciou recentemente que foram vendidos 50 milhões de iPhone e 35 milhões de iPodTouch.5
  • 6.
    Por que desenvolverpara iPhone?HÁBITOS DE CONSUMO A AppStore fará 2 anos em julho de 2010 e já possui mais de 180 mil aplicações disponíveis. Segundo a Apple já foram vendidas mais de 4 bilhões de aplicações. As pessoas já aprenderam como utilizar a AppStore, e para grande parte delas, isto já se tornou um hábito. 6
  • 7.
    Por que desenvolverpara iPhone?VERSATILIDADE Seja qual for sua idéia para uma aplicação, ela poderá ser bem implementada no iPhone, desde que seja apropriada para dispositivos móveis. Jogos, aplicativos de referência, aplicativos promocionais, clientes alternativos para aplicações web, aplicações corporativas para vendedores e/ou coleta de dados, etc.7
  • 8.
    Por que desenvolverpara iPhone?UNIFORMIDADE A ausência de diversos fabricantes acaba garantindo uma plataforma uniforme e estável, além de muito rica em documentação e com uma ampla comunidade de desenvolvedores. 8
  • 9.
    Por que desenvolverpara iPhone?FUTURO A Apple não fica parada. O iPhone OS 4.0 vem aí e oferece uma série de recursos que tornarão o desenvolvimento para a plataforma ainda mais interessante. Desenvolver para iPhone deixa você mais próximo das novidades da Apple. Como exemplo, o iPad, lançado em abril de 2010, compartilha a maior parte das ferramentas e paradigma de desenvolvimento do iPhone. 9
  • 10.
    Parte II -Receita para uma Aplicação iPhone10
  • 11.
    IngredientesComputador Macintosh Intel(modelos de 2006 em diante)Sistema Operacional Leopard ou SnowLeopard (Mac OS X 10.5 ou mais recente)Um iPhone (ou iPodTouch)Uma conta no iPhone Dev Center11
  • 12.
    Tipos de Contasno iPhoneDev CenterGratuita: habilita o acesso às ferramentas de desenvolvimento (iPhone SDK, Xcode, etc.). Não permite a execução da aplicação no iPhone, apenas no simulador;Standard $99: habilita testes e debug no iPhone, permite publicar suas aplicações na AppStore;Empresa $299: Mais adequada para desenvolvimento de aplicações a serem distribuídas internamente. O cadastro nesta modalidade envolve certa burocracia e pode demorar.Ver diferenças entre os tipos de contas12
  • 13.
    Modo de Preparo(em sete passos)Familiarize-se com o iPhoneInstale as ferramentas de desenvolvimentoEstude Objective-CEscolha frameworks e engines apropriadosConstrua sua aplicaçãoPrepare sua aplicação para a venda na AppStorePromova sua aplicação13
  • 14.
    Passo 1: Familiarize-secom o iPhoneFormas de interação bastante peculiares, diferentes de outros dispositivosSomente depois de utilizar o iPhone por um tempo, você terá idéia do que funciona bem em matéria de usabilidadeExplore as aplicações disponíveis na AppStore, confira se sua idéia ainda não foi implementada14
  • 15.
    Passo 2: Instaleas Ferramentas de Desenvolvimento Após instalar o iPhone SDK você terá em seu Mac OS as seguintes ferramentas:XCodeInterface BuilderInstrumentsiPhone Simulator15
  • 16.
    Passo 2: Instaleas Ferramentas de DesenvolvimentoXCode16
  • 17.
    Passo 2: Instaleas Ferramentas de DesenvolvimentoInterface Builder17
  • 18.
    Passo 2: Instaleas Ferramentas de DesenvolvimentoInstruments18
  • 19.
    Passo 2: Instaleas Ferramentas de DesenvolvimentoiPhone Simulator19
  • 20.
    Passo 3: EstudeObjective-CCaracterísticas da linguagem Objective-C:Estende a linguagem C (detalhes)
  • 21.
  • 22.
    Invocação de métodosatravés de mensagens
  • 23.
  • 24.
    Gerenciamento de memóriabaseado em contador de referência (ver regras)
  • 25.
    Pode ser misturadacom C++ (ver exemplo)20
  • 26.
    Passo 3: EstudeObjective-CFontes para EstudoAulas sobre Desenvolvimento para Iphone da Universidade de Stanford– Os vídeos das aulas estão disponíveis no iTunes U.Introduction to The Objective-C Programming Language – Manual de Referênciada Apple21
  • 27.
    Passo 4: Escolhaos Frameworks/Engines ApropriadosCamadas do iPhone OS22
  • 28.
    Passo 4: Escolhaos Frameworks/Engines ApropriadosCamadas do iPhone OSConjunto de frameworks de alto nível em Objective-C. ( Foundation, UIKit )Conjunto de interfaces para acesso aos recursos de áudio e vídeo. ( OpenGL ES, Core Audio, Core Animation )Conjunto de interfaces fundamentais acessíveis via linguagem C.( Core Foundation, CFNetwork, SQLite )23
  • 29.
    Passo 4: Escolhaos Frameworks/Engines ApropriadosCamadas do iPhone OSÉ recomendável que sua aplicação acesse as camadas inferiores, apenas quando a funcionalidade desejada não está disponível nas camadas superiores. Grande parte das aplicações acessa apenas a CocoaTouch. É comum, entretanto, jogos acessarem as camadas inferiores.24
  • 30.
    Passo 4: Escolhaos Frameworks/Engines ApropriadosCocoaTouch25
  • 31.
    Passo 4: Escolhaos Frameworks/Engines ApropriadosCocoaTouch O CocoaTouch coloca em prática muitos dos padrões de projeto do famoso livro Padrões de Projeto - SoluçõesReutilizáveis de Software Orientado a Objetos. Caso sua aplicação precise utilizar amplamente o UIKit, é recomendável que você leia a documentação sobre como estes padrões foram adaptados no CocoaTouch.26
  • 32.
    Passo 4: Escolhaos Frameworks/Engines ApropriadosCocoaTouch - UIKit27
  • 33.
    Passo 4: Escolhaos Frameworks/Engines ApropriadosCocos2D Iphone Game engine paraconstrução de jogos 2D utilizando Objective-Chttp://www.cocos2d-iphone.org/28
  • 34.
    Passo 4: Escolhaos Frameworks/Engines ApropriadosOolongengine Game engine em C++ para contrução de jogos 2D e 3Dhttp://code.google.com/p/oolongengine/29
  • 35.
    Passo 4: Escolhaos Frameworks/Engines ApropriadosUnity3D iPhonehttp://unity3d.com/30
  • 36.
    Passo 5: Construasua aplicaçãoLembre-se das peculiaridades da plataforma:Sua aplicação terá apenas uma janela, a qual ocupará toda a tela do iPhone
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
    Passo 5: Construasua aplicação Planeje sua aplicação, comece pela interface. Se você planeja utilizar o UIKit é fortemente recomendada a leitura do guia de usabilidade da Apple:Human Interface Principles: Creating a Great User Interface32
  • 43.
    Passo 5: Construasua aplicaçãoTenha o hábito de testar sua aplicação no iPhone durante o desenvolvimento. Alguns processos que são instantâneos no simulador podem ser lentos demais no dispositivo real.Sempre que possível peça a pessoas que não estejam envolvidas com o desenvolvimento da aplicação para testá-la. Assim, você pode verificar se sua abordagem para a interface funciona, pode obter sugestões de melhorias e encontrar bugs precocemente.33