SlideShare una empresa de Scribd logo
1 de 15
Descargar para leer sin conexión
André Milani
Novatec
Programando para
iPhone e iPad
Aprenda a construir aplicativos para o iOS
Copyright © 2012 da Novatec Editora Ltda.
Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a
reprodução desta obra, mesmo parcial, por qualquer processo, sem prévia autorização,
por escrito, do autor e da Editora.
Editor: Rubens Prates
Revisão gramatical: Giacomo Leone Neto
Editoração eletrônica: Carolina Kuwabata
Capa: Victor Bittow
ISBN: 978-85-7522-318-5
Histórico de impressões:
Julho/2012	 Primeira edição
Novatec Editora Ltda.
Rua Luís Antônio dos Santos 110
02460-000 – São Paulo, SP – Brasil
Tel.: +55 11 2959-6529
Fax: +55 11 2950-8869
E-mail: novatec@novatec.com.br
Site: www.novatec.com.br
Twitter: twitter.com/novateceditora
Facebook: facebook.com/novatec
LinkedIn: linkedin.com/in/novatec
Dados Internacionais de Catalogação na Publicação (CIP)
(Câmara Brasileira do Livro, SP, Brasil)
Milani, André
Programando para iPhone e iPad : aprenda a
construir aplicativos para o iOS / André
Milani. -- São Paulo : Novatec Editora, 2012.
ISBN 978-85-7522-318-5
1. Aplicação de programas - Desenvolvimento
2. Computação móvel 3. iOS (Plataforma) 4. iPad
5. iPhone 6. Sistemas operacionais (Computador)
I. Título.
12-07809 CDD-005.26
Índices para catálogo sistemático:
1. Sistema operacional iOS : Plataforma de
desenvolvimento de aplicativos para
dispositivos móveis da Apple : Programa de
computador 005.26
14
capítulo 1
Introdução ao Desenvolvimento iOS
Olá, seja bem-vindo(a) a este livro, que irá lhe ensinar a como programar aplicações
para iPhone,iPad e outros dispositivos móveis da Apple que rodam sob a plataforma
iOS. Meu nome é André Milani e irei auxiliar você, leitor(a), nesta jornada de apren-
dizado a como programar para esse ambiente.Neste primeiro capítulo,será abordada
a introdução ao iOS, que é o sistema operacional (plataforma) que os dispositivos
móveis da Apple utilizam, além de uma introdução ao mundo de desenvolvimento
de aplicativos para esse sistema.
1.1IntroduçãoaoiOS
Neste tópico, vamos realizar uma introdução ao iOS, que é o sistema operacional
dos dispositivos móveis da Apple.Inicialmente o iOS foi desenvolvido para o iPhone,
mas logo se tornou também um sistema operacional voltado não apenas para esse
dispositivo, mas sim para todos os dispositivos móveis que a Apple estava lançando,
entre eles os iPods, iPads e mais recentemente a Apple TV.
O iOS foi desenvolvido pela Apple e sua execução é restrita aos hardwares cons-
truídos por ela. Portanto, somente os dispositivos da própria autora é que executam
com sucesso o iOS. Algumas características específicas desse sistema operacional
serão abordadas nos próximos tópicos, ainda neste capítulo.
As versões mais atuais do iOS já possuem suporte para os novos hardwares
embutidos nos mais recentes dispositivos móveis da Apple, entre eles, suporte para
acelerômetro, giroscópio, câmera e GPS, entre outros recursos.
O mercado de aplicações para os dispositivos móveis está em altíssimo crescimento,
sendo o mercado daApple um dos principais mercados deste ramo.Diversas empresas
querem estar disponíveis nestes dispositivos e para isso necessitam de desenvolvedores.
Ainda, existem desenvolvedores que querem criar aplicações úteis, ou simplesmente
de entretenimento para seus usuários e comercializá-las, ou disponibilizá-las grátis.
15Capítulo 1 ■ Introdução ao Desenvolvimento iOS
O mercado é muito grande e segue com uma taxa muito alta de crescimento. O que
falta no mercado são profissionais qualificados, que saibam o que estão fazendo.
1.1.1ArquiteturadoiOS
A arquitetura do iOS é formada por quatro camadas, como é possível visualizar na
figura 1.1.
Figura1.1– Arquitetura do iOS.
A primeira delas, e de mais alto nível, ao qual o desenvolvedor interage, é a Cocoa
Touch, que é uma API que permite ao desenvolvedor o controle de certos recursos
como multitoque, interface gráfica, comunicação com arquivos e comandos de inte-
ração com usuário, entre outros recursos.
Abaixo da camada de CocoaTouch está a camada Media,responsável pelo geren-
ciamento de animações, áudio, vídeo, e tecnologias como a OpenGL ES e a Quartz,
ambas utilizadas para a criação de aplicações gráficas como jogos.
A terceira camada que forma o iOS é a Core Services, que disponibiliza alguns
dos principais serviços do sistema operacional para o programador, como o de ma-
nipulação de arquivos e o de acesso ao SQLite, entre outros.
Por último,a camada de mais baixo nível,que é o Core OS,considerado o núcleo do
sistema operacional.Esta camada é responsável por gerenciar os sockets,certificados
e energia, entre outros dos principais recursos do iOS. Basicamente, é a camada que
gerencia a parte de segurança e da comunicação do sistema com o mundo externo.
1.1.2CaracterísticasdoiOS
O iOS é um sistema operacional diferente do padrão,focado no mercado de dispositi-
vos móveis,e por isso possui algumas características próprias.A primeira delas é que
apenas uma aplicação pode estar ativa de cada vez no dispositivo.Não é possível abrir
várias aplicações e interagir com elas ao mesmo tempo, mas sim, uma de cada vez.
Programando para iPhone e iPad16
Ainda, as aplicações para iOS têm algumas restrições que devem ser levadas em
conta, como, por exemplo, as considerações apresentadas a seguir:
Limite de processamento
Cabe ao desenvolvedor conhecer os dispositivos e seus recursos para poder utilizar
o bom-senso e saber se a sua aplicação poderá executar bem nos dispositivos em
questão. Em alguns casos, é possível bloquear para que a aplicação não possa ser
executada em aparelhos mais antigos,cujo processador não seja suficiente,restrin-
gindo a versão do iOS que poderá executar a sua aplicação.Vale a pena citar que
as versões mais recentes do iOS podem ou não ser compatíveis com os hardwares
mais antigos dos dispositivos da Apple, servindo como um guia inicial para saber
qual versão do sistema operacional é suportada por cada hardware.
Tempo de resposta
Item diretamente ligado ao abordado nas páginas anteriores. Se a sua aplicação
demorar mais do que 5 segundos para responder em determinadas ocasiões, o
iOS poderá considerá-la como em estado de ausência de resposta e abortar a sua
execução.É mais um procedimento implementado pelaApple para evitar que uma
aplicação possa travar o dispositivo por completo.
Tamanho de memória
Outro item que varia de dispositivo para dispositivo, e mesmo assim são valores
bem menores que os habituais computadores de mesa, que podem facilmente
chegar a 8 GB de memória, é o tamanho de memória dos dispositivos móveis. Os
dispositivos mais atuais da Apple possuem geralmente de 256 a 512 megabytes de
memória RAM. Considerando que parte dessa memória é utilizada pelo próprio
aparelho e pelo iOS, podemos considerar que menos da metade desta memória é
o que fica realmente livre e disponível para nossas aplicações.
Resolução gráfica
Outro detalhe a ser levado em conta é que os dispositivos possuem diversos tama-
nhos de tela,variando de 320x480 a 2560x1440 nos maiores monitores Macintosh.
Para se ter uma ideia de comparação,a resolução gráfica do iPhone 4 é de 640x960,
enquanto a do novo iPad (terceira geração) é de 2048x1536. Esses valores devem
ser levados em consideração durante o desenvolvimento de suas aplicações, para
interfaces gráficas de alto padrão que apresentem imagens.
Apenas para salientar, o iOS é um sistema operacional multitoque, não tendo um
teclado ou mouse físico para utilização durante sua execução.Quando necessário,um
teclado virtual pode ser exibido na tela para permitir a entrada de dados por parte
do usuário.Veremos com detalhes a implementação e utilização deste teclado virtual
mais adiante, no capítulo referente a componentes de formulários.
17Capítulo 1 ■ Introdução ao Desenvolvimento iOS
1.1.3Novidadesnaversão5
Para quem já programava no ambiente iOS 4, é importante conhecer algumas novi-
dades apresentadas por esta nova versão, principalmente no que diz respeito ao uso
de comandos de gerenciamento e liberação de memória.
Até a versão 4 do iOS era necessário executar comandos release nos mais variados
objetos que a sua aplicação utilizasse e,em vários momentos,para quando os mesmos
não fossem mais utilizados, fossem liberados da memória para poupar recursos do
hardware do dispositivo.A partir da versão 5,isso não é mais necessário,uma vez que
essa versão incorporou um recurso chamadoARC (Automatic Reference Couting),que
pode ser utilizado em seus projetos e garante ao compilador um total entendimento
sobre os seus objetos, sabendo a hora de liberá-los ou não da memória.
A versão 5 do iOS trouxe muitas outras novidades para os usuários de iPhone e
outros dispositivos da Apple: novos programas e novas funcionalidades, contudo,
do ponto de vista de programação, a existência do ARC é a novidade mais relevan-
te. Caso você tenha interesse, como utilizador de produtos da Apple, em conhecer
quais são as últimas novidades apresentadas pelas versões mais recentes do sistema
operacional em questão, acesse:
http://www.apple.com/ios/features.html
1.2Licençasdedesenvolvimento
Basicamente existem três modos de interagir com as aplicações e licenças de desenvol-
vimento da Apple.A primeira delas, e a mais simples, é a não utilização de nenhuma
licença comercial.Nesse caso,você estará habilitado a utilizar o Xcode,a desenvolver
suas aplicações e a utilizar somente o iOS Simulator, fornecido junto com o Xcode,
para testá-las. Observe que neste caso não é possível nem mesmo baixar as suas
aplicações para o seu iPhone pessoal caso você tenha um. Portanto, aplicações que
dependam de hardware como acelerômetro, giroscópio, câmera ou outros mecanis-
mos desse porte, não poderão ser testadas adequadamente sem que o desenvolvedor
adquira alguma das licenças comerciais pagas a fim de poder executar a aplicação
em seu dispositivo real.
Ainda,neste modo de desenvolvimento (uso de licença não comercial),além de não
poder instalar as aplicações em seus dispositivos físicos reais,também não é permitido
publicá-las na AppStore.Essa licença é recomendada somente para os primeiros dias
de aprendizado do desenvolvedor, enquanto os passos iniciais estão sendo dados.
Programando para iPhone e iPad18
Vale a pena recomendar ao desenvolvedor a já pesquisar sobre uma licença co-
mercial, pois dificilmente alguém que queira aprender a programar para o iOS vai
querer ficar sem acesso para publicar material na AppStore.
1.2.1LicençaStandard(US$99)
A primeira licença comercial disponibilizada pela Apple é a Standard, ao custo de
US$ 99 anuais. Por meio da licença Standard, é possível instalar seus aplicativos em
seu dispositivo móvel real, como também publicar as suas aplicações na AppStore,
mediante o processo de aprovação e das regras da Apple.Essa licença é recomendada
para desenvolvedores free lancers pois o custo relacionado com a licença é individual,
mais barato, liberando um único acesso.
1.2.2LicençaEnterprise(US$299)
Existe também a licença Enterprise,ao custo de US$ 299 anuais,que possui os mesmos
benefícios da licença Standard, com a diferença de que esta permite habilitar mais
de um desenvolvedor a fim de utilizá-la. Neste caso, é mais barato para empresas que
tenham mais de um desenvolvedor para iOS comprar uma licença Enterprise,do que
diversas licenças individuais para seus desenvolvedores.
O processo de aquisição das licenças é simples e realizado todo no site iOS De-
veloper Center, cujo link é apresentado na seção de links interessantes no fim deste
capítulo. O processo todo pode levar até alguns dias, pois, a alguns países como o
Brasil,pode ser necessário o envio de informações,via fax,a análise manual por parte
da Apple, dependendo do caso.
1.3Ambientededesenvolvimento(Xcode)
Neste tópico, serão abordadas algumas informações e características do Xcode, que
é a principal ferramenta de desenvolvimento de aplicações para o iOS.
O Xcode é uma IDE desenvolvida pela Apple que permite o desenvolvimento de
projetos para seus dispositivos móveis.IDE é a sigla de Integrated Development Envi-
ronment,que em outras palavras quer dizerAmbiente Integrado de Desenvolvimento.
Essa IDE suporta aAPI CocoaTouch,as linguagens Objective-C eApple Script,entre
outros recursos necessários para o desenvolvimento de aplicativos.
Aboa notícia a respeito da IDE daApple para desenvolvimento de aplicações para
o iOS é que a mesma pode ser obtida gratuitamente,a qualquer momento.Apesar de
seu uso ser gratuito, somente está disponível para o sistema operacional Macintosh.
19Capítulo 1 ■ Introdução ao Desenvolvimento iOS
Portanto, usuários de Windows ou Linux não conseguem de forma simples e legal
instalar essa IDE em seus computadores,restringindo o mercado de desenvolvedores
para usuários que possuam um computador da Apple.
Entre as ferramentas que compõem o Xcode, acompanha em sua IDE um emula-
dor de iPhone e um emulador de iPad,chamado de iOS Simulator.Esses emuladores
permitem que diversos testes sejam realizados diretamente nesse programa, sem a
necessidade da presença física real desses dispositivos.Isso quer dizer que,dependendo
do caso, é possível criar e testar aplicações para iPhone, por exemplo, sem necessaria-
mente o desenvolvedor possuir um aparelho desses.Contudo,nem todos os recursos
do dispositivo estão disponíveis no emulador,por exemplo,recursos dependentes de
hardware, como o acelerômetro e o giroscópio, que medem o movimento e a posição
dos aparelhos, bem como demais recursos como câmera, GPS e outros.
Não há nenhum custo no processo para obter o Xcode e criar aplicações, assu-
mindo que você possua um computador Mac que execute adequadamente o Xcode.
Contudo, para publicar aplicações na AppStore, é necessário possuir uma licença de
desenvolvedor da Apple, pagando uma licença anual de uso, conforme abordado no
tópico 1.2. Para instalar o Xcode, basta procurá-lo dentro da loja de aplicativos da
Apple, pesquisando pelo aplicativo “Xcode”, e solicitar que o mesmo seja baixado e
configurado para você.Todo esse processo é automatizado pelos mecanismos de do-
wnload e instalação existentes no ambiente Mac,sendo muito simples de ser realizado.
1.3.1Criandoumnovoprojeto
O Xcode será a IDE utilizada em todos os capítulos deste livro e, por este motivo,
convido você a conhecer um pouco mais sobre essa ferramenta, iniciando pelo pro-
cedimento de criação de um novo projeto. Para criar um novo aplicativo para o iOS,
utilize a seguinte opção de menu disponível no Xcode:
File → New → Project...
Ao utilizar a opção de criação de um novo projeto no Xcode,surgirá uma caixa de
diálogo para que seja escolhido o tipo de projeto a ser criado, como mostra a figura
1.2. Praticamente todos os projetos abordados neste livro serão do tipo SingleView Appli-
cation, que disponibiliza ao desenvolvedor a estrutura inicial básica para a construção
de um aplicativo para iOS já contendo uma tela inicial e um view controller, recurso
utilizado para comunicar a lógica do projeto com a interface gráfica.
Programando para iPhone e iPad20
Figura1.2 – Modelos de projetos.
Assim que o desenvolvedor seleciona o tipo de projeto que será construído (es-
colha SingleView Application), o Xcode exibe uma segunda caixa de diálogo solicitando o
nome do projeto, como mostra a figura 1.3. O nome do projeto deve ser informado
no campo Product Name.
Ainda na tela de definição do nome do seu projeto,é possível definir se o aplicativo
está sendo desenvolvido para iPhone, iPad ou ambos, por meio do campo DeviceFamily.
Por enquanto, vamos utilizar a opção iPhone, mas não se preocupe, pois um projeto
pode ser alterado posteriormente para atender a mais de um dispositivo da Apple.
Ainda, certifique-se sempre de que as opções Use Storyboards e Use Automatic Reference Counting
estejam selecionadas, pois esses são os recursos mais atuais da Apple para a criação
das interfaces gráficas e gerenciamento de memória de seus projetos.
Crie inicialmente um projeto chamado BookFirstProject apenas para acompanhar
na prática os detalhes que serão abordados a seguir neste capítulo. A última tela do
procedimento de criação de um projeto no Xcode solicita ao desenvolvedor o cami-
nho de um diretório válido para que o projeto seja criado e tenha os seus arquivos
armazenados, como mostra a figura 1.4.
21Capítulo 1 ■ Introdução ao Desenvolvimento iOS
Figura1.3 – Nome do projeto.
Figura1.4 – Localização do projeto.
Programando para iPhone e iPad22
Escolha um diretório de sua preferência e pronto! A partir deste momento, o seu
projeto será criado e disponibilizado para que você possa começar a manipular os
arquivos e a construir o seu primeiro aplicativo.
1.3.2Estruturainicialdeumprojeto
Assim que um projeto do tipo Single View Application é criado, uma estrutura básica de
projeto é oferecida pelo Xcode e possível de ser consultada na guia Projectnavigator (⌘1),
como mostra a figura 1.5.
Figura1.5 – Project navigator.
Caso a guia Project navigator não esteja visível em seu Xcode (lado esquerdo), você
poderá acessá-la a qualquer momento por meio da seguinte opção de menu:
View → Navigators → Show Project Navigator
A guia Projectnavigator é responsável por apresentar a listagem dos arquivos existentes
dentro do seu projeto no Xcode, permitindo acessá-los para edição de forma simples
e prática, e organizando os mesmos por meio de diretórios que podem ser criados
em sua guia. Alguns dos principais recursos dessa guia serão apresentados a seguir.
AppDelegate
A guia Project navigator inicialmente apresenta uma classe chamada AppDelegate formada
pelos arquivos .h e .m. A classe AppDelegate é responsável por receber algumas notifi-
cações do sistema (iOS), tais como abertura e fechamento do aplicativo, permitindo
realizar determinados tratamentos nestas situações. Por enquanto, não utilizaremos
customizações nessa classe, e a deixaremos como o Xcode criou.
23Capítulo 1 ■ Introdução ao Desenvolvimento iOS
Sobre arquivos .h e .m,eles são utilizados para definir as assinaturas e características
da classe (.h, também conhecido como arquivo header, de cabeçalho), enquanto a
implementação dos métodos da classe devem ser realizadas no arquivo .m,conhecido
como arquivo de implementação.
MainStoryboard
O arquivo MainStoryboard.storyboard é responsável pela edição da interface gráfica do
projeto que está sendo criado.Por meio desse arquivo,é possível arrastar componentes
de formulários e outros recursos para a tela do seu aplicativo e posteriormente conectá-
-los a recursos chamados outlets e actions, que serão vistos mais adiante e permitem
a interação da camada de interface gráfica com a lógica de negócio do seu projeto.
Um mesmo arquivo storyboard pode ser utilizado para definir as interfaces grá-
ficas nas versões iPhone e iPad de um aplicativo, mas nesse caso, ao abrir a interface
preparada inicialmente para iPhone em um iPad, não serão aproveitadas de forma
adequada as dimensões desse dispositivo com tela maior.Para aplicações que deverão
executar tanto no iPhone quanto no iPad, é recomendado construir um arquivo do
tipo storyboard para cada um desses dispositivos.Veremos como realizar esse proce-
dimento no capítulo que apresenta considerações de desenvolvimento para o iPad,
pois além do tamanho da tela,outros itens devem ser levados em conta quando uma
aplicação é criada para cada um dos dispositivos da Apple.
ViewController
Um recurso do tipo ViewController é disponibilizado inicialmente para o seu projeto e
utilizado para realizar a comunicação do código-fonte do seu projeto com a interface
gráfica,por meio de recursos chamados outlets e actions mencionados neste capítulo.
Inicialmente a classe ViewController oferece alguns métodos para o desenvolvedor
customizá-los, caso haja essa necessidade. O método viewDidLoad, por exemplo, é in-
vocado assim que o seu objeto ViewController é carregado na memória, geralmente
quando a aplicação é recém-inicializada. Em alguns projetos deste livro, iremos cus-
tomizar esse método para inicializarmos os componentes do aplicativo que estiver
sendo desenvolvido. Os demais métodos serão abordados nos respectivos capítulos
que fazem uso dos mesmos.
Pasta Supporting Files
Apasta SupportingFiles armazena alguns arquivos de propriedades gerais do seu aplicativo.
Por meio de alguns desses arquivos é possível editar o nome do projeto, o ícone de
visualização nos dispositivos da Apple e alguns detalhes de tradução (internaciona-
lização), entre outros recursos.
Programando para iPhone e iPad24
Pasta BookFirstProjectTests
Os arquivos apresentados na pasta <nomeDoProjeto>Tests podem ser utilizados para gerar
seções de testes de código.
Pasta Frameworks
Por questões de organização,é recomendado utilizar a pasta Frameworks para alocar todas
as bibliotecas que o seu projeto importar para utilização.Algumas bibliotecas já são
importadas automaticamente pelo Xcode para o seu projeto do tipo SingleViewApplication,
mas outras poderão ser necessárias quando recursos como GPS ou acelerômetro
forem utilizados. Por enquanto, não importaremos novas bibliotecas, e utilizaremos
somente as disponibilizadas pelo Xcode para esse tipo de projeto.
Pasta Products
Finalmente, a pasta Products armazena arquivos relacionados à preparação final do seu
aplicativo antes do envio do mesmo para a AppStore.
1.3.3Principaisguias
Figura1.6 – Principais guias.
25Capítulo 1 ■ Introdução ao Desenvolvimento iOS
A figura 1.6 apresenta as principais guias do Xcode. Sempre que for necessário con-
sultar onde acessar determinada guia no Xcode durante a leitura deste livro, você
pode utilizar esta figura como referência. Ainda, esta figura ficará disponível para
download no site oficial deste livro, para quem desejar imprimir e ficar com ela em
mãos na mesa de trabalho.
1.4Linksinteressantes
Alguns links interessantes de acesso para você que está começando a programar para
o mundo do iOS são:
Portal iOS Developer Center
Por meio do portal do desenvolvedor para iOS, é possível criar as suas licenças
de desenvolvedor da Apple, ganhando acesso para programar e poder publicar
seus projetos na AppStore e acessar fóruns de discussão e outras funcionalidades
a respeito de desenvolvimento.
http://developer.apple.com/devcenter/ios
Documentação do iOS
Para consultar a documentação das classes, dos objetos e de outros detalhes re-
ferentes à programação para iOS, é possível acessar diretamente a documentação
oficial sobre esses recursos, por meio do seguinte endereço:
http://developer.apple.com/library/ios/navigation
Site da Apple
No site oficial da Apple, é possível acompanhar as principais novidades ligadas
à marca, como, por exemplo, lançamento de novos dispositivos, novas versões do
iOS, notícias e muito mais:
http://www.apple.com
Site do Xcode
Para obter o Xcode, que é a IDE utilizada no desenvolvimento de aplicações para
o iOS, acesse as informações dessa ferramenta na AppStore, ou, se desejar, direta-
mente o site da ferramenta.
http://developer.apple.com/xcode
Site da Softblue
Caso tenha interesse em conhecer a minha empresa de cursos e treinamentos, ou
acessar o nosso blog de tecnologia, acesse o site da Softblue:
http://www.softblue.com.br
Programando para iPhone e iPad26
Site deste livro
Você encontra atualizações sobre este livro e os arquivos utilizados no decorrer
desta publicação para download no site oficial desta obra:
http://www.programandoparaiphone.com.br

Más contenido relacionado

La actualidad más candente

Seminário sistemas operacionais móveis
Seminário sistemas operacionais móveisSeminário sistemas operacionais móveis
Seminário sistemas operacionais móveisArthur Azevedo
 
Desenvolvendo para iOS em linux
Desenvolvendo para iOS em linuxDesenvolvendo para iOS em linux
Desenvolvendo para iOS em linuxErisvaldo Junior
 
Música 2.0 e Aplicativos Mobile
Música 2.0 e Aplicativos MobileMúsica 2.0 e Aplicativos Mobile
Música 2.0 e Aplicativos MobileWebCarioca
 
Apresentação dev ios
Apresentação dev iosApresentação dev ios
Apresentação dev iosFlavio Rabelo
 
Apresentação - Sistemas Operacionais para Smartphones
Apresentação - Sistemas Operacionais para SmartphonesApresentação - Sistemas Operacionais para Smartphones
Apresentação - Sistemas Operacionais para SmartphonesTiago Carmo
 
Arquitetura de dispositivos móveis
Arquitetura de dispositivos móveis Arquitetura de dispositivos móveis
Arquitetura de dispositivos móveis Italo Andrade
 
Arquitetura dos dispositivos móveis
Arquitetura dos dispositivos móveisArquitetura dos dispositivos móveis
Arquitetura dos dispositivos móveisAlexsander Fontes
 
Sistemas operacionais mobile
Sistemas operacionais mobileSistemas operacionais mobile
Sistemas operacionais mobileDaniel Brandão
 
Plataforma móvel ou aplicacoes moveis
Plataforma móvel ou aplicacoes moveisPlataforma móvel ou aplicacoes moveis
Plataforma móvel ou aplicacoes moveisrick nataniel walker
 
Desenvolvimento de Apps e Games para iOS - Parte 2
Desenvolvimento de Apps e Games para iOS - Parte 2Desenvolvimento de Apps e Games para iOS - Parte 2
Desenvolvimento de Apps e Games para iOS - Parte 2Erisvaldo Junior
 
Trabalho de arquitetura de computadores
Trabalho de arquitetura de computadoresTrabalho de arquitetura de computadores
Trabalho de arquitetura de computadoresWellersonBomfim1
 
Programando symbian aula_1
Programando symbian aula_1Programando symbian aula_1
Programando symbian aula_1Talita Carvalho
 
Desenvolvimento de Apps e Games para Android - Parte 1
Desenvolvimento de Apps e Games para Android - Parte 1Desenvolvimento de Apps e Games para Android - Parte 1
Desenvolvimento de Apps e Games para Android - Parte 1Erisvaldo Junior
 

La actualidad más candente (20)

Seminário sistemas operacionais móveis
Seminário sistemas operacionais móveisSeminário sistemas operacionais móveis
Seminário sistemas operacionais móveis
 
Introdução Ao Desenvolvimento Para Iphone
Introdução Ao Desenvolvimento Para IphoneIntrodução Ao Desenvolvimento Para Iphone
Introdução Ao Desenvolvimento Para Iphone
 
Desenvolvendo para iOS em linux
Desenvolvendo para iOS em linuxDesenvolvendo para iOS em linux
Desenvolvendo para iOS em linux
 
Música 2.0 e Aplicativos Mobile
Música 2.0 e Aplicativos MobileMúsica 2.0 e Aplicativos Mobile
Música 2.0 e Aplicativos Mobile
 
Apresentação dev ios
Apresentação dev iosApresentação dev ios
Apresentação dev ios
 
Apresentação - Sistemas Operacionais para Smartphones
Apresentação - Sistemas Operacionais para SmartphonesApresentação - Sistemas Operacionais para Smartphones
Apresentação - Sistemas Operacionais para Smartphones
 
Arquitetura de dispositivos móveis
Arquitetura de dispositivos móveis Arquitetura de dispositivos móveis
Arquitetura de dispositivos móveis
 
Arquitetura dos dispositivos móveis
Arquitetura dos dispositivos móveisArquitetura dos dispositivos móveis
Arquitetura dos dispositivos móveis
 
Sistemas operacionais mobile
Sistemas operacionais mobileSistemas operacionais mobile
Sistemas operacionais mobile
 
Android x iOS
Android x iOSAndroid x iOS
Android x iOS
 
Smart talks ubuntutouch
Smart talks  ubuntutouchSmart talks  ubuntutouch
Smart talks ubuntutouch
 
Plataforma móvel ou aplicacoes moveis
Plataforma móvel ou aplicacoes moveisPlataforma móvel ou aplicacoes moveis
Plataforma móvel ou aplicacoes moveis
 
09 windows ce - jefferson
09   windows ce - jefferson09   windows ce - jefferson
09 windows ce - jefferson
 
Desenvolvimento de Apps e Games para iOS - Parte 2
Desenvolvimento de Apps e Games para iOS - Parte 2Desenvolvimento de Apps e Games para iOS - Parte 2
Desenvolvimento de Apps e Games para iOS - Parte 2
 
Android Aula 1
Android Aula 1Android Aula 1
Android Aula 1
 
Trabalho de arquitetura de computadores
Trabalho de arquitetura de computadoresTrabalho de arquitetura de computadores
Trabalho de arquitetura de computadores
 
Programando symbian aula_1
Programando symbian aula_1Programando symbian aula_1
Programando symbian aula_1
 
Sistemas operacionais I - trabalho software movel
Sistemas  operacionais I - trabalho software movelSistemas  operacionais I - trabalho software movel
Sistemas operacionais I - trabalho software movel
 
Windows 10 Developer Readiness - Brasil
Windows 10 Developer Readiness - BrasilWindows 10 Developer Readiness - Brasil
Windows 10 Developer Readiness - Brasil
 
Desenvolvimento de Apps e Games para Android - Parte 1
Desenvolvimento de Apps e Games para Android - Parte 1Desenvolvimento de Apps e Games para Android - Parte 1
Desenvolvimento de Apps e Games para Android - Parte 1
 

Similar a Programando para Iphone e Ipad

Apresentação Semi-Final
Apresentação Semi-FinalApresentação Semi-Final
Apresentação Semi-FinalJordan Claussen
 
Resumo Desenvolvimento Mobile
Resumo Desenvolvimento MobileResumo Desenvolvimento Mobile
Resumo Desenvolvimento MobileCícero Moura
 
Sistema Operacional Móvel iOS
Sistema Operacional Móvel iOSSistema Operacional Móvel iOS
Sistema Operacional Móvel iOSDj Black
 
Desenvolvendo Para I Phone Em Linux
Desenvolvendo Para I Phone Em LinuxDesenvolvendo Para I Phone Em Linux
Desenvolvendo Para I Phone Em LinuxErisvaldo Junior
 
Mac os x vs windows 8
Mac os x vs windows 8Mac os x vs windows 8
Mac os x vs windows 8David Pereira
 
Sistemas Operacionais e Windows 7
Sistemas Operacionais e Windows 7Sistemas Operacionais e Windows 7
Sistemas Operacionais e Windows 7TntNitro
 
Desenvolver aplicações C# para o iPhone
Desenvolver aplicações C# para o iPhoneDesenvolver aplicações C# para o iPhone
Desenvolver aplicações C# para o iPhoneBruno Pires
 
Seminfo 2012 (Urutaí-GO): Desenvolvimento para dispositivos móveis
Seminfo 2012 (Urutaí-GO): Desenvolvimento para dispositivos móveisSeminfo 2012 (Urutaí-GO): Desenvolvimento para dispositivos móveis
Seminfo 2012 (Urutaí-GO): Desenvolvimento para dispositivos móveisRogério Moraes de Carvalho
 
A história dos sistemas operacionais
A história dos sistemas operacionaisA história dos sistemas operacionais
A história dos sistemas operacionaisCarlos Marques
 

Similar a Programando para Iphone e Ipad (20)

Apresentação do 1º questionario
Apresentação do 1º questionarioApresentação do 1º questionario
Apresentação do 1º questionario
 
Sistema Operacional iOS
Sistema Operacional iOSSistema Operacional iOS
Sistema Operacional iOS
 
Revista programar 25
Revista programar 25Revista programar 25
Revista programar 25
 
Ciclo de palestras da JFRJ - Aplicativos Móveis
Ciclo de palestras da JFRJ - Aplicativos MóveisCiclo de palestras da JFRJ - Aplicativos Móveis
Ciclo de palestras da JFRJ - Aplicativos Móveis
 
Restaurante
RestauranteRestaurante
Restaurante
 
Sistemas operacionais
Sistemas operacionaisSistemas operacionais
Sistemas operacionais
 
Apresentação Semi-Final
Apresentação Semi-FinalApresentação Semi-Final
Apresentação Semi-Final
 
Trabalho iOS e Android
Trabalho iOS e AndroidTrabalho iOS e Android
Trabalho iOS e Android
 
Resumo Desenvolvimento Mobile
Resumo Desenvolvimento MobileResumo Desenvolvimento Mobile
Resumo Desenvolvimento Mobile
 
APPLE
APPLEAPPLE
APPLE
 
Sistema Operacional Móvel iOS
Sistema Operacional Móvel iOSSistema Operacional Móvel iOS
Sistema Operacional Móvel iOS
 
Desenvolvendo Para I Phone Em Linux
Desenvolvendo Para I Phone Em LinuxDesenvolvendo Para I Phone Em Linux
Desenvolvendo Para I Phone Em Linux
 
Mac os x vs windows 8
Mac os x vs windows 8Mac os x vs windows 8
Mac os x vs windows 8
 
Sistemas Operacionais e Windows 7
Sistemas Operacionais e Windows 7Sistemas Operacionais e Windows 7
Sistemas Operacionais e Windows 7
 
Desenvolver aplicações C# para o iPhone
Desenvolver aplicações C# para o iPhoneDesenvolver aplicações C# para o iPhone
Desenvolver aplicações C# para o iPhone
 
Seminfo 2012 (Urutaí-GO): Desenvolvimento para dispositivos móveis
Seminfo 2012 (Urutaí-GO): Desenvolvimento para dispositivos móveisSeminfo 2012 (Urutaí-GO): Desenvolvimento para dispositivos móveis
Seminfo 2012 (Urutaí-GO): Desenvolvimento para dispositivos móveis
 
I os x android
I os x androidI os x android
I os x android
 
Android SestInfo 2010
Android SestInfo 2010Android SestInfo 2010
Android SestInfo 2010
 
Bada OS
Bada OSBada OS
Bada OS
 
A história dos sistemas operacionais
A história dos sistemas operacionaisA história dos sistemas operacionais
A história dos sistemas operacionais
 

Más de MikeNandes

Guia Rápido Da Linguagem Pascal
Guia Rápido Da Linguagem PascalGuia Rápido Da Linguagem Pascal
Guia Rápido Da Linguagem PascalMikeNandes
 
Curso basico matlab
Curso basico matlabCurso basico matlab
Curso basico matlabMikeNandes
 
Livro Mini-Curso de Haskell
Livro Mini-Curso de HaskellLivro Mini-Curso de Haskell
Livro Mini-Curso de HaskellMikeNandes
 
Desenvolvimento de jogos 3 D
Desenvolvimento de jogos 3 DDesenvolvimento de jogos 3 D
Desenvolvimento de jogos 3 DMikeNandes
 
Curso De Programação Em DelPhi
Curso De Programação Em DelPhiCurso De Programação Em DelPhi
Curso De Programação Em DelPhiMikeNandes
 
Assembly para pc-25paginas
Assembly para pc-25paginasAssembly para pc-25paginas
Assembly para pc-25paginasMikeNandes
 
Asp dot net e learning
Asp dot net e learningAsp dot net e learning
Asp dot net e learningMikeNandes
 

Más de MikeNandes (7)

Guia Rápido Da Linguagem Pascal
Guia Rápido Da Linguagem PascalGuia Rápido Da Linguagem Pascal
Guia Rápido Da Linguagem Pascal
 
Curso basico matlab
Curso basico matlabCurso basico matlab
Curso basico matlab
 
Livro Mini-Curso de Haskell
Livro Mini-Curso de HaskellLivro Mini-Curso de Haskell
Livro Mini-Curso de Haskell
 
Desenvolvimento de jogos 3 D
Desenvolvimento de jogos 3 DDesenvolvimento de jogos 3 D
Desenvolvimento de jogos 3 D
 
Curso De Programação Em DelPhi
Curso De Programação Em DelPhiCurso De Programação Em DelPhi
Curso De Programação Em DelPhi
 
Assembly para pc-25paginas
Assembly para pc-25paginasAssembly para pc-25paginas
Assembly para pc-25paginas
 
Asp dot net e learning
Asp dot net e learningAsp dot net e learning
Asp dot net e learning
 

Programando para Iphone e Ipad

  • 1. André Milani Novatec Programando para iPhone e iPad Aprenda a construir aplicativos para o iOS
  • 2. Copyright © 2012 da Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo parcial, por qualquer processo, sem prévia autorização, por escrito, do autor e da Editora. Editor: Rubens Prates Revisão gramatical: Giacomo Leone Neto Editoração eletrônica: Carolina Kuwabata Capa: Victor Bittow ISBN: 978-85-7522-318-5 Histórico de impressões: Julho/2012 Primeira edição Novatec Editora Ltda. Rua Luís Antônio dos Santos 110 02460-000 – São Paulo, SP – Brasil Tel.: +55 11 2959-6529 Fax: +55 11 2950-8869 E-mail: novatec@novatec.com.br Site: www.novatec.com.br Twitter: twitter.com/novateceditora Facebook: facebook.com/novatec LinkedIn: linkedin.com/in/novatec Dados Internacionais de Catalogação na Publicação (CIP) (Câmara Brasileira do Livro, SP, Brasil) Milani, André Programando para iPhone e iPad : aprenda a construir aplicativos para o iOS / André Milani. -- São Paulo : Novatec Editora, 2012. ISBN 978-85-7522-318-5 1. Aplicação de programas - Desenvolvimento 2. Computação móvel 3. iOS (Plataforma) 4. iPad 5. iPhone 6. Sistemas operacionais (Computador) I. Título. 12-07809 CDD-005.26 Índices para catálogo sistemático: 1. Sistema operacional iOS : Plataforma de desenvolvimento de aplicativos para dispositivos móveis da Apple : Programa de computador 005.26
  • 3. 14 capítulo 1 Introdução ao Desenvolvimento iOS Olá, seja bem-vindo(a) a este livro, que irá lhe ensinar a como programar aplicações para iPhone,iPad e outros dispositivos móveis da Apple que rodam sob a plataforma iOS. Meu nome é André Milani e irei auxiliar você, leitor(a), nesta jornada de apren- dizado a como programar para esse ambiente.Neste primeiro capítulo,será abordada a introdução ao iOS, que é o sistema operacional (plataforma) que os dispositivos móveis da Apple utilizam, além de uma introdução ao mundo de desenvolvimento de aplicativos para esse sistema. 1.1IntroduçãoaoiOS Neste tópico, vamos realizar uma introdução ao iOS, que é o sistema operacional dos dispositivos móveis da Apple.Inicialmente o iOS foi desenvolvido para o iPhone, mas logo se tornou também um sistema operacional voltado não apenas para esse dispositivo, mas sim para todos os dispositivos móveis que a Apple estava lançando, entre eles os iPods, iPads e mais recentemente a Apple TV. O iOS foi desenvolvido pela Apple e sua execução é restrita aos hardwares cons- truídos por ela. Portanto, somente os dispositivos da própria autora é que executam com sucesso o iOS. Algumas características específicas desse sistema operacional serão abordadas nos próximos tópicos, ainda neste capítulo. As versões mais atuais do iOS já possuem suporte para os novos hardwares embutidos nos mais recentes dispositivos móveis da Apple, entre eles, suporte para acelerômetro, giroscópio, câmera e GPS, entre outros recursos. O mercado de aplicações para os dispositivos móveis está em altíssimo crescimento, sendo o mercado daApple um dos principais mercados deste ramo.Diversas empresas querem estar disponíveis nestes dispositivos e para isso necessitam de desenvolvedores. Ainda, existem desenvolvedores que querem criar aplicações úteis, ou simplesmente de entretenimento para seus usuários e comercializá-las, ou disponibilizá-las grátis.
  • 4. 15Capítulo 1 ■ Introdução ao Desenvolvimento iOS O mercado é muito grande e segue com uma taxa muito alta de crescimento. O que falta no mercado são profissionais qualificados, que saibam o que estão fazendo. 1.1.1ArquiteturadoiOS A arquitetura do iOS é formada por quatro camadas, como é possível visualizar na figura 1.1. Figura1.1– Arquitetura do iOS. A primeira delas, e de mais alto nível, ao qual o desenvolvedor interage, é a Cocoa Touch, que é uma API que permite ao desenvolvedor o controle de certos recursos como multitoque, interface gráfica, comunicação com arquivos e comandos de inte- ração com usuário, entre outros recursos. Abaixo da camada de CocoaTouch está a camada Media,responsável pelo geren- ciamento de animações, áudio, vídeo, e tecnologias como a OpenGL ES e a Quartz, ambas utilizadas para a criação de aplicações gráficas como jogos. A terceira camada que forma o iOS é a Core Services, que disponibiliza alguns dos principais serviços do sistema operacional para o programador, como o de ma- nipulação de arquivos e o de acesso ao SQLite, entre outros. Por último,a camada de mais baixo nível,que é o Core OS,considerado o núcleo do sistema operacional.Esta camada é responsável por gerenciar os sockets,certificados e energia, entre outros dos principais recursos do iOS. Basicamente, é a camada que gerencia a parte de segurança e da comunicação do sistema com o mundo externo. 1.1.2CaracterísticasdoiOS O iOS é um sistema operacional diferente do padrão,focado no mercado de dispositi- vos móveis,e por isso possui algumas características próprias.A primeira delas é que apenas uma aplicação pode estar ativa de cada vez no dispositivo.Não é possível abrir várias aplicações e interagir com elas ao mesmo tempo, mas sim, uma de cada vez.
  • 5. Programando para iPhone e iPad16 Ainda, as aplicações para iOS têm algumas restrições que devem ser levadas em conta, como, por exemplo, as considerações apresentadas a seguir: Limite de processamento Cabe ao desenvolvedor conhecer os dispositivos e seus recursos para poder utilizar o bom-senso e saber se a sua aplicação poderá executar bem nos dispositivos em questão. Em alguns casos, é possível bloquear para que a aplicação não possa ser executada em aparelhos mais antigos,cujo processador não seja suficiente,restrin- gindo a versão do iOS que poderá executar a sua aplicação.Vale a pena citar que as versões mais recentes do iOS podem ou não ser compatíveis com os hardwares mais antigos dos dispositivos da Apple, servindo como um guia inicial para saber qual versão do sistema operacional é suportada por cada hardware. Tempo de resposta Item diretamente ligado ao abordado nas páginas anteriores. Se a sua aplicação demorar mais do que 5 segundos para responder em determinadas ocasiões, o iOS poderá considerá-la como em estado de ausência de resposta e abortar a sua execução.É mais um procedimento implementado pelaApple para evitar que uma aplicação possa travar o dispositivo por completo. Tamanho de memória Outro item que varia de dispositivo para dispositivo, e mesmo assim são valores bem menores que os habituais computadores de mesa, que podem facilmente chegar a 8 GB de memória, é o tamanho de memória dos dispositivos móveis. Os dispositivos mais atuais da Apple possuem geralmente de 256 a 512 megabytes de memória RAM. Considerando que parte dessa memória é utilizada pelo próprio aparelho e pelo iOS, podemos considerar que menos da metade desta memória é o que fica realmente livre e disponível para nossas aplicações. Resolução gráfica Outro detalhe a ser levado em conta é que os dispositivos possuem diversos tama- nhos de tela,variando de 320x480 a 2560x1440 nos maiores monitores Macintosh. Para se ter uma ideia de comparação,a resolução gráfica do iPhone 4 é de 640x960, enquanto a do novo iPad (terceira geração) é de 2048x1536. Esses valores devem ser levados em consideração durante o desenvolvimento de suas aplicações, para interfaces gráficas de alto padrão que apresentem imagens. Apenas para salientar, o iOS é um sistema operacional multitoque, não tendo um teclado ou mouse físico para utilização durante sua execução.Quando necessário,um teclado virtual pode ser exibido na tela para permitir a entrada de dados por parte do usuário.Veremos com detalhes a implementação e utilização deste teclado virtual mais adiante, no capítulo referente a componentes de formulários.
  • 6. 17Capítulo 1 ■ Introdução ao Desenvolvimento iOS 1.1.3Novidadesnaversão5 Para quem já programava no ambiente iOS 4, é importante conhecer algumas novi- dades apresentadas por esta nova versão, principalmente no que diz respeito ao uso de comandos de gerenciamento e liberação de memória. Até a versão 4 do iOS era necessário executar comandos release nos mais variados objetos que a sua aplicação utilizasse e,em vários momentos,para quando os mesmos não fossem mais utilizados, fossem liberados da memória para poupar recursos do hardware do dispositivo.A partir da versão 5,isso não é mais necessário,uma vez que essa versão incorporou um recurso chamadoARC (Automatic Reference Couting),que pode ser utilizado em seus projetos e garante ao compilador um total entendimento sobre os seus objetos, sabendo a hora de liberá-los ou não da memória. A versão 5 do iOS trouxe muitas outras novidades para os usuários de iPhone e outros dispositivos da Apple: novos programas e novas funcionalidades, contudo, do ponto de vista de programação, a existência do ARC é a novidade mais relevan- te. Caso você tenha interesse, como utilizador de produtos da Apple, em conhecer quais são as últimas novidades apresentadas pelas versões mais recentes do sistema operacional em questão, acesse: http://www.apple.com/ios/features.html 1.2Licençasdedesenvolvimento Basicamente existem três modos de interagir com as aplicações e licenças de desenvol- vimento da Apple.A primeira delas, e a mais simples, é a não utilização de nenhuma licença comercial.Nesse caso,você estará habilitado a utilizar o Xcode,a desenvolver suas aplicações e a utilizar somente o iOS Simulator, fornecido junto com o Xcode, para testá-las. Observe que neste caso não é possível nem mesmo baixar as suas aplicações para o seu iPhone pessoal caso você tenha um. Portanto, aplicações que dependam de hardware como acelerômetro, giroscópio, câmera ou outros mecanis- mos desse porte, não poderão ser testadas adequadamente sem que o desenvolvedor adquira alguma das licenças comerciais pagas a fim de poder executar a aplicação em seu dispositivo real. Ainda,neste modo de desenvolvimento (uso de licença não comercial),além de não poder instalar as aplicações em seus dispositivos físicos reais,também não é permitido publicá-las na AppStore.Essa licença é recomendada somente para os primeiros dias de aprendizado do desenvolvedor, enquanto os passos iniciais estão sendo dados.
  • 7. Programando para iPhone e iPad18 Vale a pena recomendar ao desenvolvedor a já pesquisar sobre uma licença co- mercial, pois dificilmente alguém que queira aprender a programar para o iOS vai querer ficar sem acesso para publicar material na AppStore. 1.2.1LicençaStandard(US$99) A primeira licença comercial disponibilizada pela Apple é a Standard, ao custo de US$ 99 anuais. Por meio da licença Standard, é possível instalar seus aplicativos em seu dispositivo móvel real, como também publicar as suas aplicações na AppStore, mediante o processo de aprovação e das regras da Apple.Essa licença é recomendada para desenvolvedores free lancers pois o custo relacionado com a licença é individual, mais barato, liberando um único acesso. 1.2.2LicençaEnterprise(US$299) Existe também a licença Enterprise,ao custo de US$ 299 anuais,que possui os mesmos benefícios da licença Standard, com a diferença de que esta permite habilitar mais de um desenvolvedor a fim de utilizá-la. Neste caso, é mais barato para empresas que tenham mais de um desenvolvedor para iOS comprar uma licença Enterprise,do que diversas licenças individuais para seus desenvolvedores. O processo de aquisição das licenças é simples e realizado todo no site iOS De- veloper Center, cujo link é apresentado na seção de links interessantes no fim deste capítulo. O processo todo pode levar até alguns dias, pois, a alguns países como o Brasil,pode ser necessário o envio de informações,via fax,a análise manual por parte da Apple, dependendo do caso. 1.3Ambientededesenvolvimento(Xcode) Neste tópico, serão abordadas algumas informações e características do Xcode, que é a principal ferramenta de desenvolvimento de aplicações para o iOS. O Xcode é uma IDE desenvolvida pela Apple que permite o desenvolvimento de projetos para seus dispositivos móveis.IDE é a sigla de Integrated Development Envi- ronment,que em outras palavras quer dizerAmbiente Integrado de Desenvolvimento. Essa IDE suporta aAPI CocoaTouch,as linguagens Objective-C eApple Script,entre outros recursos necessários para o desenvolvimento de aplicativos. Aboa notícia a respeito da IDE daApple para desenvolvimento de aplicações para o iOS é que a mesma pode ser obtida gratuitamente,a qualquer momento.Apesar de seu uso ser gratuito, somente está disponível para o sistema operacional Macintosh.
  • 8. 19Capítulo 1 ■ Introdução ao Desenvolvimento iOS Portanto, usuários de Windows ou Linux não conseguem de forma simples e legal instalar essa IDE em seus computadores,restringindo o mercado de desenvolvedores para usuários que possuam um computador da Apple. Entre as ferramentas que compõem o Xcode, acompanha em sua IDE um emula- dor de iPhone e um emulador de iPad,chamado de iOS Simulator.Esses emuladores permitem que diversos testes sejam realizados diretamente nesse programa, sem a necessidade da presença física real desses dispositivos.Isso quer dizer que,dependendo do caso, é possível criar e testar aplicações para iPhone, por exemplo, sem necessaria- mente o desenvolvedor possuir um aparelho desses.Contudo,nem todos os recursos do dispositivo estão disponíveis no emulador,por exemplo,recursos dependentes de hardware, como o acelerômetro e o giroscópio, que medem o movimento e a posição dos aparelhos, bem como demais recursos como câmera, GPS e outros. Não há nenhum custo no processo para obter o Xcode e criar aplicações, assu- mindo que você possua um computador Mac que execute adequadamente o Xcode. Contudo, para publicar aplicações na AppStore, é necessário possuir uma licença de desenvolvedor da Apple, pagando uma licença anual de uso, conforme abordado no tópico 1.2. Para instalar o Xcode, basta procurá-lo dentro da loja de aplicativos da Apple, pesquisando pelo aplicativo “Xcode”, e solicitar que o mesmo seja baixado e configurado para você.Todo esse processo é automatizado pelos mecanismos de do- wnload e instalação existentes no ambiente Mac,sendo muito simples de ser realizado. 1.3.1Criandoumnovoprojeto O Xcode será a IDE utilizada em todos os capítulos deste livro e, por este motivo, convido você a conhecer um pouco mais sobre essa ferramenta, iniciando pelo pro- cedimento de criação de um novo projeto. Para criar um novo aplicativo para o iOS, utilize a seguinte opção de menu disponível no Xcode: File → New → Project... Ao utilizar a opção de criação de um novo projeto no Xcode,surgirá uma caixa de diálogo para que seja escolhido o tipo de projeto a ser criado, como mostra a figura 1.2. Praticamente todos os projetos abordados neste livro serão do tipo SingleView Appli- cation, que disponibiliza ao desenvolvedor a estrutura inicial básica para a construção de um aplicativo para iOS já contendo uma tela inicial e um view controller, recurso utilizado para comunicar a lógica do projeto com a interface gráfica.
  • 9. Programando para iPhone e iPad20 Figura1.2 – Modelos de projetos. Assim que o desenvolvedor seleciona o tipo de projeto que será construído (es- colha SingleView Application), o Xcode exibe uma segunda caixa de diálogo solicitando o nome do projeto, como mostra a figura 1.3. O nome do projeto deve ser informado no campo Product Name. Ainda na tela de definição do nome do seu projeto,é possível definir se o aplicativo está sendo desenvolvido para iPhone, iPad ou ambos, por meio do campo DeviceFamily. Por enquanto, vamos utilizar a opção iPhone, mas não se preocupe, pois um projeto pode ser alterado posteriormente para atender a mais de um dispositivo da Apple. Ainda, certifique-se sempre de que as opções Use Storyboards e Use Automatic Reference Counting estejam selecionadas, pois esses são os recursos mais atuais da Apple para a criação das interfaces gráficas e gerenciamento de memória de seus projetos. Crie inicialmente um projeto chamado BookFirstProject apenas para acompanhar na prática os detalhes que serão abordados a seguir neste capítulo. A última tela do procedimento de criação de um projeto no Xcode solicita ao desenvolvedor o cami- nho de um diretório válido para que o projeto seja criado e tenha os seus arquivos armazenados, como mostra a figura 1.4.
  • 10. 21Capítulo 1 ■ Introdução ao Desenvolvimento iOS Figura1.3 – Nome do projeto. Figura1.4 – Localização do projeto.
  • 11. Programando para iPhone e iPad22 Escolha um diretório de sua preferência e pronto! A partir deste momento, o seu projeto será criado e disponibilizado para que você possa começar a manipular os arquivos e a construir o seu primeiro aplicativo. 1.3.2Estruturainicialdeumprojeto Assim que um projeto do tipo Single View Application é criado, uma estrutura básica de projeto é oferecida pelo Xcode e possível de ser consultada na guia Projectnavigator (⌘1), como mostra a figura 1.5. Figura1.5 – Project navigator. Caso a guia Project navigator não esteja visível em seu Xcode (lado esquerdo), você poderá acessá-la a qualquer momento por meio da seguinte opção de menu: View → Navigators → Show Project Navigator A guia Projectnavigator é responsável por apresentar a listagem dos arquivos existentes dentro do seu projeto no Xcode, permitindo acessá-los para edição de forma simples e prática, e organizando os mesmos por meio de diretórios que podem ser criados em sua guia. Alguns dos principais recursos dessa guia serão apresentados a seguir. AppDelegate A guia Project navigator inicialmente apresenta uma classe chamada AppDelegate formada pelos arquivos .h e .m. A classe AppDelegate é responsável por receber algumas notifi- cações do sistema (iOS), tais como abertura e fechamento do aplicativo, permitindo realizar determinados tratamentos nestas situações. Por enquanto, não utilizaremos customizações nessa classe, e a deixaremos como o Xcode criou.
  • 12. 23Capítulo 1 ■ Introdução ao Desenvolvimento iOS Sobre arquivos .h e .m,eles são utilizados para definir as assinaturas e características da classe (.h, também conhecido como arquivo header, de cabeçalho), enquanto a implementação dos métodos da classe devem ser realizadas no arquivo .m,conhecido como arquivo de implementação. MainStoryboard O arquivo MainStoryboard.storyboard é responsável pela edição da interface gráfica do projeto que está sendo criado.Por meio desse arquivo,é possível arrastar componentes de formulários e outros recursos para a tela do seu aplicativo e posteriormente conectá- -los a recursos chamados outlets e actions, que serão vistos mais adiante e permitem a interação da camada de interface gráfica com a lógica de negócio do seu projeto. Um mesmo arquivo storyboard pode ser utilizado para definir as interfaces grá- ficas nas versões iPhone e iPad de um aplicativo, mas nesse caso, ao abrir a interface preparada inicialmente para iPhone em um iPad, não serão aproveitadas de forma adequada as dimensões desse dispositivo com tela maior.Para aplicações que deverão executar tanto no iPhone quanto no iPad, é recomendado construir um arquivo do tipo storyboard para cada um desses dispositivos.Veremos como realizar esse proce- dimento no capítulo que apresenta considerações de desenvolvimento para o iPad, pois além do tamanho da tela,outros itens devem ser levados em conta quando uma aplicação é criada para cada um dos dispositivos da Apple. ViewController Um recurso do tipo ViewController é disponibilizado inicialmente para o seu projeto e utilizado para realizar a comunicação do código-fonte do seu projeto com a interface gráfica,por meio de recursos chamados outlets e actions mencionados neste capítulo. Inicialmente a classe ViewController oferece alguns métodos para o desenvolvedor customizá-los, caso haja essa necessidade. O método viewDidLoad, por exemplo, é in- vocado assim que o seu objeto ViewController é carregado na memória, geralmente quando a aplicação é recém-inicializada. Em alguns projetos deste livro, iremos cus- tomizar esse método para inicializarmos os componentes do aplicativo que estiver sendo desenvolvido. Os demais métodos serão abordados nos respectivos capítulos que fazem uso dos mesmos. Pasta Supporting Files Apasta SupportingFiles armazena alguns arquivos de propriedades gerais do seu aplicativo. Por meio de alguns desses arquivos é possível editar o nome do projeto, o ícone de visualização nos dispositivos da Apple e alguns detalhes de tradução (internaciona- lização), entre outros recursos.
  • 13. Programando para iPhone e iPad24 Pasta BookFirstProjectTests Os arquivos apresentados na pasta <nomeDoProjeto>Tests podem ser utilizados para gerar seções de testes de código. Pasta Frameworks Por questões de organização,é recomendado utilizar a pasta Frameworks para alocar todas as bibliotecas que o seu projeto importar para utilização.Algumas bibliotecas já são importadas automaticamente pelo Xcode para o seu projeto do tipo SingleViewApplication, mas outras poderão ser necessárias quando recursos como GPS ou acelerômetro forem utilizados. Por enquanto, não importaremos novas bibliotecas, e utilizaremos somente as disponibilizadas pelo Xcode para esse tipo de projeto. Pasta Products Finalmente, a pasta Products armazena arquivos relacionados à preparação final do seu aplicativo antes do envio do mesmo para a AppStore. 1.3.3Principaisguias Figura1.6 – Principais guias.
  • 14. 25Capítulo 1 ■ Introdução ao Desenvolvimento iOS A figura 1.6 apresenta as principais guias do Xcode. Sempre que for necessário con- sultar onde acessar determinada guia no Xcode durante a leitura deste livro, você pode utilizar esta figura como referência. Ainda, esta figura ficará disponível para download no site oficial deste livro, para quem desejar imprimir e ficar com ela em mãos na mesa de trabalho. 1.4Linksinteressantes Alguns links interessantes de acesso para você que está começando a programar para o mundo do iOS são: Portal iOS Developer Center Por meio do portal do desenvolvedor para iOS, é possível criar as suas licenças de desenvolvedor da Apple, ganhando acesso para programar e poder publicar seus projetos na AppStore e acessar fóruns de discussão e outras funcionalidades a respeito de desenvolvimento. http://developer.apple.com/devcenter/ios Documentação do iOS Para consultar a documentação das classes, dos objetos e de outros detalhes re- ferentes à programação para iOS, é possível acessar diretamente a documentação oficial sobre esses recursos, por meio do seguinte endereço: http://developer.apple.com/library/ios/navigation Site da Apple No site oficial da Apple, é possível acompanhar as principais novidades ligadas à marca, como, por exemplo, lançamento de novos dispositivos, novas versões do iOS, notícias e muito mais: http://www.apple.com Site do Xcode Para obter o Xcode, que é a IDE utilizada no desenvolvimento de aplicações para o iOS, acesse as informações dessa ferramenta na AppStore, ou, se desejar, direta- mente o site da ferramenta. http://developer.apple.com/xcode Site da Softblue Caso tenha interesse em conhecer a minha empresa de cursos e treinamentos, ou acessar o nosso blog de tecnologia, acesse o site da Softblue: http://www.softblue.com.br
  • 15. Programando para iPhone e iPad26 Site deste livro Você encontra atualizações sobre este livro e os arquivos utilizados no decorrer desta publicação para download no site oficial desta obra: http://www.programandoparaiphone.com.br