1 para começar
Tornando-se móvel
Eu só não entendo o porquê de toda
essa onda de iPhone. Meu telefone
funciona direitinho...
O iPhone mudou tudo. É uma plataforma de jogos, um organizador pessoal, um
navegador web completo, e, claro, é um telefone também. O iPhone é um dos mais excitantes
dispositivos que apareceu, e com a abertura da App Store é uma oportunidade para
desenvolvedores independentes competir mundialmente com grandes companhias de software.
Tudo que você precisa para lançar seu próprio aplicativo é de algumas ferramentas de software,
algum conhecimento e entusiasmo. A Apple fornece o software e nós iremos ajudar você com o
conhecimento; temos certeza de que você vai fornecer o entusiasmo.
este é um novo capítulo
1
todo mundo quer aplicativos para iphone
Há muitos negócios e muito dinheiro lá na
App Store...
A App S
so
s
e
c
u
s
E
M
R
O
tore é um EN
!
nviado
dores têm e
e
lv
o
v
n
e
s
e
D
tore da
ara a App S
p
s
o
v
ti
a
lic
ap
od Touch
iPhone e iP
ra
a
p
le
p
p
A
onseguido
recorde, e c
ro
e
m
ú
n
m
e
de
nte retorno
um significa
.
investimento
A App Store d
a Apple celebr
a seu primeiro
aniversário
A Apple lan
çou sua acl
amada App
desde entã
Store um a
o, se tornou
no atrás e,
foco de ten
e muito, m
dências, co
uito dinheir
n
trovérsia
o
.
Enquanto m
à venda são
uitos aplica
de graça, m
tivos
u
itos não são
aplicativos
para iPhon
e o preço d
e continua
o
s
a subir.
Desenvolve
dores têm a
lavancado a
iPhone de
s capacidad
maneira in
es
esperadas p
utilidades a
ara levar div do
o aparelho
e
rsão e
que você co
mpra na lo
Mesmo usu
ja
.
ários do iPo
d Touch po
de aplicativ
dem fazer o
os para seu
download
s aparelhos.
Muitas pess
oas testam
diversos no
e você pod
vos aplicati
e instalar su
vos por dia
ficientes ap
para enche
,
licativos no
r diversas te
seu telefon
las...
e
2
Capítulo 1
para começar
Aplicativos móveis não são apenas
aplicativos de desktop portados
Há um bilhão de boas razões para entrar na App Store, e
agora é hora de você entrar. Para chegar lá a partir daqui,
você vai aprender sobre projetar e implementar um aplicativo
para iPhone, mas isso não é o mesmo que desenvolver para
desktops, ou escrever um aplicativo para web.
É importante pensar num aplicativo para iPhone desde o
início. Você precisa se perguntar constantemente: “O que é
que o usuário está tentando fazer?” E se livrar de tudo o mais,
minimizar a entrada que eles fornecem e manter-se focado.
Isto NÃO
é o mesmo
que isto
Exercício
Verifique os fatores que você precisa considerar quando estiver trabalhando
em um aplicativo móvel, em geral.
…… Memória
…… Preço de uso
…… Capacidades do display
…… Velocidade do aplicativo
…… Acesso à internet
…… Ferramentas de entrada
de dados (teclado,
mouse, display, etc.)
Quais desses fatores são diferentes para o iPhone?
você está aqui

3
se tornando móvel
Exercício
Solução
Verifique os fatores que você precisa considerar quando estiver
trabalhando em um aplicativo móvel, em geral.
Enviar textos ou acessar
a Internet custa dinheiro
para alguns usuários de
dispositivos móveis.
Dispositivos móveis típicos
têm tamanhos e resoluções
de tela diferentes, e você
precisa planejar para isso...
…… Memória
…… Preço de uso
…… Capacidades da tela
…… Velocidade do aplicativo
…… Acesso à internet
…… Ferramentas de entrada
de dados (teclado,
mouse, display, etc.)
Dispositivos móveis têm memória
limitada e muito dela já está
alocada.
Usuários de dispositivos mó
veis
não têm muito tempo, en
tã
aplicativos precisam carr o os
funcionar de forma rápidegar e
a.
A Internet não está sempre
disponível para o usuário
de dispositivos móveis – e é
tipicamente lenta.
Alguns dispositivos móveis
usam setas, alguns têm botões
extras, e outros têm telas
de toque.
Para o iPhone, textos e dados ilimitados
são típicos, e há apenas um tamanho de tela com que se preocupar. E, apesar de
haver um teclado disponível, é tudo tela de toque!
Quais desses fatores são diferentes para o iPhone?
Aplicativos para iPhone não são aplicativos para desktop menores
Tem havido muita conversa sobre como o iPhone é um computador pequeno que
as pessoas carregam com elas. Isto definitivamente é verdade, mas não significa
que os aplicativos para iPhone são apenas aplicativos pequenos para desktop.
Algumas das mais importantes questões que você vai encontrar ao projetar um
aplicativo para o iPhone:
iPhones têm uma tela pequena e são focados-na-tarefa
Mesmo com a fantástica tela do iPhone, ela continua relativamente pequena
(320x480). Você realmente precisa pensar muito em cada tela e manter-se
focado na tarefa específica que o usuário está realizando.
iPhones têm memória e CPU limitados
E, acima disso, não há memória virtual, e cada bit de CPU que você
usa significa mais uso da bateria. O sistema operacional do iPhone
monitora o sistema atentamente e se você pirar no uso de memória ele irá
simplesmente matar seu aplicativo. E ninguém quer isso.
Apenas um aplicativo pode rodar por vez
Se é seu aplicativo que está rodando, por que você deveria se importar?
Porque se alguma outra coisa acontecer, como o telefone tocar, uma
mensagem de texto aparecer, o usuário clicar num link, etc., seu aplicativo
é desativado e o usuário vai para outra aplicação. Você precisa ser capaz
de encerrar graciosamente a qualquer momento e ser capaz de colocar o
usuários de volta num ponto razoável quando retornarem.
4
Capítulo 1
para começar
Anatomia de um aplicativo para iPhone
Antes de mergulharmos na criação do nossos primeiro aplicativo, vamos dar
uma olhada no que se compõe um típico aplicativo para iPhone.
Primeiro nós temos uma ou mais views...
Aplicativos para iPhone são feitos de uma ou mais
views – em um aplicativo normal, estas views têm
componentes GUI nelas, tais como campos de texto,
botões, rótulos, etc. Jogos possuem views também,
mas normalmente não usam os componentes
normais de GUI. Os jogos geralmente requerem
suas próprias interfaces customizadas que são
criadas com coisas do tipo OpenGL ou Quartz.
...então o código que faz as views
funcionarem...
Aplicativos para iPhone possuem uma clara separação
entre a GUI (a view) e o código real que fornece
a lógica da aplicação. Em geral, cada view tem um
View Controller (Controlador da View) por trás que
reage a pressão no botão, seleção de linha numa
tabela, o toque do telefone, etc. Este código é quase
sempre escrito em Objective-C utilizando a IDE
(integrated development enviroment – ambiente de
desenvolvimento integrado) da Apple, Xcode.
ser
Views podeams utilizando
construíd aficamente
código, gr o Interface
utilizando u alguma
Builder, o o de ambos.
combinaçã utiliza uma
A maioria
mistura.
E para
O Xcode é a ID
os para
at
escrever aplic cluiiv um
iPhone. Ele in elos de
número de mod ajudar
aplicação para .
você a começar
...e quaisquer outros recursos, todos
empacotados em sua aplicação.
Se você é novato no desenvolvimento para o OS X
você pode ficar surpreso ao descobrir que aplicações
(para iPhones e para desktops) na verdade são
apenas diretórios. Qualquer diretório de aplicativo
contém o binário executável de verdade, alguns
Imagens
metadados sobre a aplicação (o autor, o nome
de arquivo do ícone, assinaturas de código, etc.)
e quaisquer outros recursos da aplicação como
imagens, dados do aplicativo, arquivos de ajuda, etc.
Os aplicativos para iPhone se comportam da mesma
maneira, então quando você diz ao Xcode sobre
outros recursos que sua aplicação precisa, ele vai
juntá-los para você quando você construir a aplicação.
Dados
para
Cada aplicativalo guns
iPhone possui ados
recursos associ o, sua
a ele. No mínimer um
aplicação vai t e, um
arquivo de ícontem
info.plist que bre
informações so si, e
a aplicação emros
o binário. Out s são
recursos comunterface,
arquivos de in .
chamados nibs
Agora vamos iniciar seu primeiro aplicativo para iPhone...
você está aqui

5
ajude Mike a tomar uma decisão
Mike não consegue tomar uma decisão
O Mike é um cara legal, mas ele nunca sabe o que ele quer
fazer. Ajude-o a economizar tempo na indecisão sobre o que
fazer, e lhe dê uma resposta direta.
O jeito que eu vejo isso é: eu já tomei a decisão
de comprar um iPhone... eu não deveria ter que
pensar de novo!
Bem, escreva um aplicativo para o Mike.
Mike possui um iPhone, então vamos escrever
um aplicativo para ele que necessite de uma
simples pressão num botão para lhe dizer o que
fazer quando ele precisar tomar uma decisão.
Mike
6
Capítulo 1
para começar
Dê uma boa primeira impressão boa
Quando os usuários inicializam sua aplicação, a primeira coisa que
eles veem é sua aparência. Ela precisa ser usável e focada naquilo que
sua aplicação deveria fazer. Ao longo de todo este livro, sempre que
iniciarmos um novo aplicativo, nós vamos usar um tempinho para fazer
um rascunho de como nós vamos querer que ele se pareça.
Nosso primeiro aplicativo é bastante direto: ele vai ser uma view simples
com um botão que o Mike possa pressionar para tomar uma decisão.
Para manter as coisas simples, nós vamos mudar o rótulo do botão para
mostrar o que ele deve fazer após pressioná-lo.
Esta é a barr
de status – suaa
aplicação pode
escolher escondêla, mas a menos
que você esteja
escrevendo um
você provavelmenjogo,
deveria deixá-la te
.
e
Pressione o bottão
o
o texto do ró uldizer
vai mudar para ele
ao Mike o que.
deveria fazer
iDecide
Vamos chamálo de iDecide
Este é o simul
or de iPhone –
ele deixa você ad
ro
sua aplicação sem dar e testar
telefone real. Vam usar um
sobre ele mais tar os falar mais
de.
Isto é um botão
What should
I do?
é de
A tela do iPhonexels.
320 x 480 pi
rascunho
m
u
r
e
z
a
sf
da
Nós vamaos GUIs para caconstruir.
de noss ivo antes de os mas das
aplicat papel são algu que você
Lápis & s ferramentas mock-ups.
melhore ar para fazer
pode us
Agora que nós sabemos o que
construir, vamos ver as ferramentas
você está aqui

7
faça o download do SDK
Tudo começa com o SDK do iPhone
Está na hora de arranjar algumas ferramentas. Vá para http://developer.
apple.com/iphone. Você pode fazer o download de graça do SDK (e de alguns
outros recursos úteis de desenvolvimento da Apple) com um registro básico,
mas para distribuir um aplicativo na App Store ou instalar seu aplicativo no
iPhone para testar, você precisa se tornar um Standard Developer ou um
Enterprise Developer pagos. O SDK vem com um simulador para testar
diretamente em seu Mac, então um registro de graça é tudo o que você
precisa por agora.
O SDK vem com Xcode, Instruments, Interface Builder e o iPhone Simulator.
O código para o iPhone é escrito no Xcode utilizando Objective-C. O
Interface Builder é utilizado para editar graficamente a GUI, o Instruments
ajuda você a estimar o uso de memória e a performance do seu aplicativo, e o
Simulator é utilizado para testar.

Registre-se como
desenvolvedor em http://
developer.apple.com/
iphone.

Faça o download do mais
recente SDK; este livro é
baseado no SDK. Procure
pelo botão Download no
topo da página.

Instale o SDK. Uma vez
que a instalação esteja
completa, você pode
encontrar o Xcode.
app em /Developer/
Applications. Dê
um duplo clique para
iniciá-lo.
Você pro
querer arvravelmente vai
seu Dock astá-lo para
utilizá-lo – nós vamos
muito.
8
Capítulo 1
para começar
o iPhone 3GS possui um processador encorajamos você a pelo menos testálas antes de abandoná-las.
mais rápido e uma placa de vídeo
P:
Quais são as coisas mais
importantes a serem consideradas ao se melhor do que os modelos anteriores
do iPhone. Se você se aproveitar de
alguma característica que pode não
estar presente em todos os aparelhos
Há dois pontos-chave que
você deve se certificar que seu código
devem ser mantidos em mente ao se
possa lidar com a não disponibilidade
desenvolver uma aplicação móvel.
daquela característica. A Apple vai
Primeiro, o dispositivo possui recursos
testar isso (por exemplo, tentar usar a
limitados: memória, CPU, espaço
câmera em um iPod Touch da primeira
para armazenamento, velocidade de
geração) e rejeitar sua aplicação se
acessos à Iinternet (isso se houver
ela não atender apropriadamente o
um acesso à rede), etc. Segundo, os
aparelho.
padrões de utilização são diferentes
para aplicações móveis. Aplicativos
Que linguagem o iPhone usa?
móveis são geralmente aplicações de
conveniência – os usuários querem
Os aplicativos para iPhone são
iniciar sua aplicação, rapidamente
alcançar o objetivo, e voltar ao que eles geralmente escritos em Objective-C,
uma linguagem orientada a objetos
estavam fazendo no mundo real.
que também é utilizada para
Eu já desenvolvi para plataformas desenvolvimento para Mac. Entretanto,
você pode usar C e mesmo C++ no
móveis anteriormente, e era uma
confusão. Nada funcionava da mesma iPhone. Uma vez que as bibliotecas
forma entre aparelhos diferentes, você para a GUI e o Core Framework são
escritas em Objective-C, a maioria
não podia contar com o tamanho da
tela, eles nem mesmo tinham o mesmo dos desenvolvedores usa Objective-C
para suas aplicações; entretanto, não
número de botões em aparelhos
é incomum encontrar bibliotecas de
diferentes! O iPhone é melhor?
suporte escritas em C.
desenvolver um aplicativo móvel?
R:
P:
R:
P:
R:
P:
SIM! Para a maior parte,
Eu tenho que usar uma IDE? Eu
desenvolver para iPhone evita estes
problemas. Todos os iPhones possuem sou mais do tipo de desenvolvedor por
telas de 320 x 480, um acelerômetro, linha de comando.
um único botão home, etc. Entretanto...
Tecnicamente falando, não, você
não
precisa
usar a IDE Xcode para
Há diversos modelos de iPhone
desenvolvimento
direto. Entretanto,
por aí. Eles são todos os mesmos? E o
a
IDE
torna
o
desenvolvimento
iPod Touch?
para iPhone tão mais fácil que você
realmente deveria se perguntar se
Nem todos os aparelhos iPhone
você tem uma boa razão para evitar
e iPod Touch são os mesmos. Por
seu uso, especialmente uma vez
exemplo, nem todos os aparelhos
que para pô-la em um iPhone de
tem câmera ou GPS. A velocidade de
verdade, ou no simulador para testar,
acesso à Internet varia por aparelho,
é mandatório o uso da IDE. Este livro
assim como depende de como você
usa a IDE Xcode, assim como outras
está conectado, seja por EDGE, 3G ou
ferramentas de desenvolvimento da
WiFi. Para complicar um pouco mais,
Apple como o Interface Builder, e nós
P:
R:
R:
P:
Eu posso dar as aplicações que
eu escrevo para meus amigos?
R:
Sim e não. Primeiro, se você
quiser por uma aplicação num aparelho
de qualquer pessoa (incluindo no seu
próprio) você precisa se tornar um
Apple iPhone Developer registrado.
Uma vez que você faça isso, você
pode registrar um aparelho e instalar
sua aplicação nele. Entretanto, essa
não é realmente uma boa maneira de
colocar sua aplicação no ar, e a Apple
limita quantos aparelhos você pode
registrar dessa maneira. É ótimo para
testar sua aplicação, mas não para sair
espalhando o aplicativo.
Uma maneira melhor é enviar sua
aplicação para o iTunes App Store.
Você pode escolher distribuir sua
aplicação de graça ou cobrar por ela,
mas ao distribuir através do iTunes
App Store, você torna sua aplicação
disponível para o mundo (e talvez até
consiga algum dinheiro também!).
Nós vamos falar mais sobre distribuir
aplicativos mais tarde neste livro.
P:
Eu posso desenvolver um
aplicativo para o iPhone e então
recompilá-lo para outros telefones
como o Windows Mobile, Android ou
Blackberries?
R:
Em uma palavra, não. Quando
você desenvolve para o iPhone, você
usa os frameworks para iPhone da
Apple como o Cocoa Touch, assim
como o Objective-C. Nenhum deles
está disponível para outros aparelhos.
Agora vamos começar.
Inicie o Xcode...
você está aqui

9
iniciando com templates
O Xcode inclui templates de aplicativos
para ajudar você a começar
Quando você inicia o Xcode, você verá uma tela de boas-vindas
onde você pode selecionar Create a New Project (Criar um
Novo Projeto). Você verá esta caixa de diálogo:
Este é o mesmo
Xcode que você
usaria para
desenvolver para
o Mac. Uma vez
que nós estamos
trabalhando
com o iPhone,
certifique-se
de que o iPhone
OS é o que está
selecionado.
Estes são os
templates
básicos de
aplicativos.
Baseado na
sua seleção,
diferentes
códigos e
arquivos são
criados e
preenchidos
para você.
Se você clicar em cada tipo deajudar
projeto, a descrição aqui irá alhes.
a inteirar você de alguns det
Ao prosseguirmos neste livro, nós iremos usar diferentes tipos de projetos e
discutir por que você usaria um em vez de outro para cada aplicativo. Para o
iDecide, nós temos uma tela (ou view) que não iremos virar nem nada, então
comece o View-based Application (Aplicação Baseada em View) e chame-a de
iDecide.
O template do Xcode inclui mais do que
apenas código-fonte.
10
Capítulo 1
para começar
Arquivos
Resources (recursos)
Arquivos de cabeçalho
(header) descrevem a
interface das classes
projeto que você selecno
ionou.
Arquivos .m contêm
os arquivos básicos
de implementação
para o tipo de
aplicativo que você
selecionou.
Bancos de dados, pli
outros tipos de dadosts ssãe
armazenados aqui para o o
seu aplicativo.
Root View
Este é o diretório onde
você irá armazenar o
ícone para seu aplicativo e
quaisquer outras imagens
que você precisar.
Frameworks
Frameworks são biblio
desenvolvimento – depetendcas de
sua aplicação faz, você vaendo do que
frameworks diferentes. i precisar de
existem um framework paPor exemplo,
framework para Core Da ra MapKit, um
ta, etc.
O Xcode irá gerar pelo
menos uma view para seu
template, e que será um
arquivo *.xib.
Os frameworks que seu
tipo de template precisa
já estão incluídos.
você está aqui

11
tudo acontece no xcode
Xcode é o centro do seu projeto para iPhone...
Quando o Xcode abrir seu novo projeto baseado em view, ele será preenchido
com todos os arquivos que você vê abaixo. Nós utilizaremos algumas das outras
ferramentas que vieram com o SDK (especialmente o Interface Builder e o
Simulator), mas todos eles trabalharão com os arquivos que estão incluídos aqui.
Os arquivos e frameworks mostrados foram criados com base na nossa seleção
de uma View-based application (aplicação baseada em view). Na medida em que
prosseguirmos, vamos utilizar diferentes tipos de aplicativos, e isso resultará em
diferentes padrões.
Arquivos de
classe são
os arquivos
Objective-C que
seu aplicativo
utilizará – a
maioria do
código será
escrito aqui.
O Other Sources
(outras fontes)
inclui sua função
principal (main) e
informações précompiladas.
O Resources
(recursos) contém
todos os seus
arquivos do
Interface Builder
(.xib), imagens,
dados e outras
coisas que seu
aplicativo venha
a precisar para
rodar.
O Frameworks mostra
uma lista de bibliotecas
que você está utilizando.
Os Agrupamentos em
diretórios no Xcode não
são os locais onde estão
os arquivos.
12
Capítulo 1
r,
Aqui é onde você pode configo ura
tiv
ica
apl
seu
para construir
para o simulador, ou para ums com
aparelho real. Nós ficaremo o.
o simulador ao longo do livr
i
ramentas incalukpoints,
er
f
e
d
a
r
r
a
b
A
nfigurar bre
opções para rcoodar sua aplicação e
construir e os usar mais o Build
mais. Nós irem
and Debug.
A Detail View mostra uma lista dos
arquivos selecionados. O que estiver
selecionado será mostrado aqui.
Você não prec
arquivos destaisma agrupar seus
é o padrão do t aneira, mas este
agrupamento funcemplate. Este
nós, então nós o iona direito para
deixaremos em pa
z.
)
O Editor Pane (painel de edição
tor
edi
o
mostra seu arquivo com mite a
apropriado carregado e per com o
você trabalhar diretamente .
código, plist, e o que mais for
para começar
...e desempenha um papel em cada parte do
desenvolvimento do seu aplicativo
O Xcode é muito mais do que apenas um editor de texto. Como você já viu,
o Xcode inclui os templates para iniciar você no desenvolvimento de uma
aplicação. Dependendo da sua aplicação, você pode usar todo um template
ou apenas partes dele, mas você quase sempre irá começará com um deles.
Uma vez que você tenha posto seu template básico do aplicativo no lugar,
você vai começar a usar o Xcode para muito mais:
Manter seus recursos do projeto.
O Xcode criará um novo diretório para seu projeto e distribuirá os vários
arquivos em subdiretórios. Você não tem que permanecer com o layout
padrão, mas, se você decidir reorganizar, faça isso dentro do Xcode. O
Xcode tem suporte interno para ferramentas de controle de versão como
o Subversion e pode ser usado para fazer o checkout ou o commit de suas
mudanças no projeto.
Editar seu código e seus recursos.
Você usará o Xcode para editar o código da sua aplicação, e ele suporta
uma variedade de linguagens além do Objective-C. O Xcode também
possui uma quantidade de editores internos para arquivos de recursos
como plists (nós falaremos mais sobre elas mais tarde). Para recursos que
o Xcode não manipula nativamente, como os arquivos de definição de
interface do usuário (.xib), um clique duplo em um desses arquivos no
Xcode iniciará o editor apropriado, neste caso o Interface Builder. Alguns
tipos de arquivos o Xcode pode apenas visualizar, tais como figuras, ou ele
simplesmente lista, tais como arquivos de som.
Construir e testar sua aplicação.
O Xcode vem com todos os compiladores necessários para construir seu
código e gerar uma aplicação funcional. Uma vez que sua aplicação esteja
compilada, o Xcode pode instalá-la no iPhone Simulator ou num aparelho
real. O Xcode inclui um debugger top de linha tanto com interface
gráfica, quanto por linha de comando, para lhe permitir debugar sua
aplicação. Você pode iniciar ferramentas para geração de perfil de
aplicação (profiling), tais como o Instruments para verificar questões de
memória e performance.
Preparar sua aplicação para a venda.
Uma vez que você tenha testado de forma abrangente sua aplicação
e esteja pronto para vendê-la, o Xcode gerencia seu perfil de
provisionamento e certificados de assinatura de código que permitem que
você ponha sua aplicação em aparelhos reais ou faça o upload dela para o
iTunes App Store para vendê-la.
OK, já falamos o suficiente sobre o Xcode: dê um
duplo clique no iDecideViewController.xib e vamos
começar com a view.
você está aqui

13
conhecendo seu construtor de GUI
Construa sua interface usando... Interface Builder
Quando você abre qualquer arquivo *.xib no Interface Builder, ele irá
automaticamente mostrar a janela principal, sua view e uma biblioteca de
elementos de interface do usuário (UI). O Interface Builder permite que você
arraste e solte quaisquer dos elementos básicos da sua biblioteca na sua view, os
edite e trabalhe com as conexões entre o código e estes elementos. Todos estes
elementos vêm do framework Cocoa Touch, um framework de UI customizado
para o iPhone e o iPod Touch.
Esta é a janela Main. Ela mostra os objetos e
views que foram recentemente criados para esta
nib em particular. Os File’s Owner e o First
Responder existem para cada nib, os demais irão
variar. Mais tarde falaremos sobre ambos com
mais detalhes.
Isto
ação é uma view. lic
lic
ap
a
su
em
la
ivo
te
Cada
parecerá no ap at
ew
vi
a
su
a
o
m
co
a
r
se
mostr
dos que tenham de
(menos quaisquer dapode construir views
carregados). Você e/ou arrastando e soltando
utilizando códigondo o Interface Builder.
controles utiliza o Interface Builder para o
Nós utilizaremos
iDecide.
14
Capítulo 1
A biblioteca
mostra todos
os elementos
à sua escolha
para arrastar
para sua view.
Se você rolar
para baixo,
verá que há
muitas opções.
para começar
Um construtor de GUI realmente soa fácil.
Aposto que ele apenas joga código Objective-C
dentro dos meus arquivos.
Não – O Interface Builder cria nibs.
Nibs (que possuem a extensão .xib) são documentos XML
que são carregados pelo framework quando o aplicativo
inicia. Nós falaremos muito mais sobre isso no próximo
capítulo, mas, por agora, o importante é entender que o
Interface Builder não está criando código Objective-C. Ele
está criando uma descrição em XML da GUI que você está
construindo, e o framework Cocoa Touch usa isso para
realmente criar os botões e o resto para sua aplicação em
tempo de execução (runtime). Tudo que nós fazemos no
Interface Builder poderia ser feito em código Objective-C,
mas, como você verá, há algumas coisas que são realmente
mais fáceis de preparar com um construtor de GUI.
iDecideViewController.xib
o ao
k Cocoa Touch intequrnivo
or
ew
am
fr
o
o
tã
en
...
a descrição no ar
nosso aplicativo usaverdadeiros objetos Cocoa
.xib para criar osew.
Touch na nossa vi
What
should I
do?
Nós criamos a
descrição XML
utilizando o Interface
Builder...
E esta view é o que
usuário vê quando eleo
roda o aplicativo.
views para aplicativos para iPhone são
chamadas nibs, e têm a extensão .xib.
você está aqui

15
arraste e solte elementos de UI
Adicione o botão à sua view
Para adicionar elementos à sua view, tudo que você precisa fazer é
arrastar e soltar os elementos que você quiser na sua view. Para nossos
aplicativo, nós apenas precisamos de um botão com um rótulo nele.
1
2
Arraste o botão retangular para
dentro da view.
O tamanho inicial do botão será pequeno,
então redimensione-o para ficar um
pouco maior. Simplesmente pegue o
canto do botão e puxe.
Arraste o rótulo (Label) para cima do botão.
Edite o novo rótulo do botão para dizer “What
should I do?” dando um clique duplo no “label” e
digitando o novo texto, depois mova o texto de
forma a centralizá-lo no botão.
Test Drive
Agora, salve no Interface Builder e retorne ao Xcode e clique no botão Build and
Run, seja pelo menu Build ou pelo botão na janela principal do Xcode. Isso irá
iniciar o Simulator.
16
Capítulo 1
para começar
O iPhone Simulator deixa você testar seu
aplicativo em seu Mac
O Simulator é uma ótima ferramenta para testar seus aplicativos
rapidamente e de graça. Ele não vem com todas as aplicações com que
um telefone de verdade vem, mas em grande parte ele se comporta da
mesma maneira. Quando você iniciar pela primeira vez o simulador,
você verá o Springboard, da mesma forma que em um iPhone real,
com o iDecide instalado (e um ícone padrão que você pode mudar
depois), o Xcode então abre o aplicativo e seu código está rodando.
Há algumas diferenças entre usar o Simulator e seu iPhone. Para os
novatos, mexer e girar seu Mac não vai fazer diferença. Para uma
aproximação da rotação e para verificar as views em portrait (retrato)
e landscape (paisagem), há alguns comandos no menu Hardware.
O Simulator tem limitações
Memória, performance, câmera, GPS e outras características não
podem ser testadas com confiança utilizando o Simulator. Nós
vamos falar mais sobre isso mais tarde, mas utilização de memória e
performance são difíceis de testar no simulador simplesmente porque
seu Mac tem muito mais recursos do que um iPhone. Para testar
estas coisas, você precisa de um iPhone de verdade (o que significa juntar-se a
um dos programas pagos de desenvolvimento).
Não existem
Perguntas Idiotas
P:
Existem outras coisas que não
funcionam no Simulator?
R:
O Simulator pode apenas
funcionar com alguns gestos,
acesso à rede e posicionamento no
núcleo são limitados e ele não tem
um acelerômetro ou uma câmera.
Para mais informação, acesse a
documentação da iPhone OS 3.0
Library da Apple através do menu
Help no Simulator.
O Simulator é ótimo para iniciar
você com sua aplicação, mas em
algum ponto você vai ter que mover
para um aparelho de verdade. Além
disso, fique ciente que iPod Touch e
iPhone são dois aparelhos diferentes
com capacidades diferentes. Você
realmente deveria testar em ambos, o
que significa que você vai precisar se
juntar a um dos programas pagos.
as pessoas ainda se referem a eles
como nibs. Você verá mais sobre a
herança do NeXTStep nos nomes
de classes das bibliotecas também
– quase tudo começa com “NS”, de
NeXTStep.
P:
Qual é a dessa coisa “nibs tem a
extensão xib”?
P: Por que nada aconteceu quando
eu apertei o botão no Simulator?
R: É um estranho artefato
mostrando as raízes do OS X. Nibs R: É tentador esperar que o botão
vêm desde a época do NeXTStep,
funcione logo assim de cara, dado o
antes que a NeXT fosse adquirida
pela Apple. No OS X Leopard, a
Apple lançou um novo formato para
arquivos nib baseado em um XML
Schema e mudou a extensão para
xib. Então, mesmo que o formato seja
XML e eles tenham a extensão .xib,
quanto o Xcode já configurou para
você. Entretanto, se você pensar
sobre o que fez, algum XML foi
criado para carregar um framework e
desenhar um botão, mas nós ainda
não dissemos a ele o que fazer com
aquele botão...
você está aqui

17
ações acontecem no código
OK, então o Interface Builder criou o XML, mas
nós ainda precisamos escrever o código para
implementar a ativação do botão, certo?
Comportamento UI é implementado em
Objective-C
O Interface Builder cria seu botão, mas para que este
botão realmente faça alguma coisa você vai precisar
codificar o que ele deve fazer.
Controles disparam eventos em Objective-C quando
coisas acontecem com eles, como quando o botão é
pressionado ou o texto é mudado em um campo de
texto. Para eventos como pressão em um botão, o
Interface Builder tem que conectar os controles da
view com o código em sua classe de controle para
métodos de ação, marcados com IBAction (de
Interface Builder Action). Nós falaremos mais sobre
a sintaxe do Objective-C mais tarde, mas, por agora,
você vai precisar declarar um método no seu arquivo
de cabeçalho (.h) e a implementação no .m
.xib
O arquivo .xib
descreve o botão
como você o
configurou no .
Interface Builder
ra um método
Esta linha declanP
ressed que o
chamado butto er irá reconhecer
Interface Buildel callback.
como um possív
-(IBAction)
buttonPressed:(id)
sender;
iDecideViewController.xib
Botão
-(IBAction)
buttonPressed:(id)
sender
iDecideViewController.h
método que o botão
chama
Você fornece a
implementação do
método no arquivo
.m. Aqui é onde
você codifica o que
realmente deve
acontecer quando o .
botão for pressionado
{
}
iDecideViewController.m
18
Capítulo 1
para começar
Abaixo está o código para quando o botão for acionado. Adicione o código
em negrito aos arquivos iDecideViewController.h e iDecideViewController.m.
Nós precisaremos
mudar o texto do
fornecer
@interface iDecideViewController : UIViewController { rótulo para
a resposta ao Mike,
IBOutlet UILabel *decisionText;
então devemos ser
}
capazes de chegar ao e
lo qu
@property (retain, nonatomic) UILabel *decisionText;controle de rótu
o framework criará
para nosso nib.
-(IBAction)buttonPressed:(id)sender;
@end
Nós falaremos mais sobre
propriedades mais tarde, neste livro.
#import <UIKit/UIKit.h>
rá
Aqui está a ação que se
tã
chamada quando o bo o
for pressionado.
#import “iDecideViewController.h”
@implementation iDecideViewController
@synthesize decisionText;
-(IBAction)buttonPressed:(id)sender
{
}
decisionText.text = @”Go for it!”;
- (void)dealloc {
[decisionText release];
}
[super dealloc];
iDecideViewController.h
mpilador
O @synthesize diz ao co
que
para criar a propriedade
cabeçalho.
de
ivo
qu
ar
declaramos no
do
Esta é a implementação
ando o
qu
método que é chamada
botão é pressionado.
ferência ao
Nós usaremos nossa rete
o.
rótulo para mudar o xt
O método dealloc é onusdeo da
você pode limpar seu os mais
memória. Nós falarem 3.
sobre isso no Capítulo
iDecideViewController.m
você está aqui

19
declare seu método e então implemente-o
Abaixo está o código para quando o botão for acionado. Adicione o código em
negrito aos arquivos iDecideViewController.h e iDecideViewController.m.
#import <UIKit/UIKit.h>
@interface iDecideViewController :
UIViewController {
IBOutlet UILabel
*decisionText;
}
@property (retain, nonatomic)
UILabel *decisionText;
-(IBAction)buttonPressed:(id)
sender;
@end
Este código é típico do que você vai ver
em um arquivo de cabeçalho. Há uma
declaração dos novos IBOutlet e
IBAction e uma propriedade para nosso
UILabel.
O IBAction está lidando com o que
acontece quando o botão é pressionado,
e o IBOutlet é uma referência ao
rótulo que nós usaremos para
fazer a saída do texto para o botão.
Nós vamos olhar para ambos em mais
detalhes mais tarde.
iDecideViewController.h
#import “iDecideViewController.h”
@implementation iDecideViewController
@synthesize decisionText;
-(IBAction)buttonPressed:(id)sender
{
decisionText.text = @”Go for it!”;
}
-
(void)dealloc {
[decisionText release];
}
[super dealloc];
Este é o código de implementação.
Nós estamos definindo o método
que é chamado quando o botão é
pressionado. Nós usamos uma string
constante para mudar o texto no
rótulo. Lembre-se, o decisionText é
uma referência para o UILabel que
nós criamos no Interface Builder.
O chamado release serve para
gerenciamento de memória. O
Objective-C usa contagem de
referência para o gerenciamento de
memória (nós falaremos mais sobre isso
daqui a pouco) e precisa ser solto para
liberar memória.
iDecideViewController.m
20
Capítulo 1
para começar
Test Drive
Construa e rode o código novamente. Tente clicar
no botão e veja se ele funciona.
Nada
acontece!
Por que o botão não mudou? Já que o código compilou
corretamente, não é que tenha...
você está aqui

21
conectando componentes ao código
O que aconteceu?
O código Objective-C está todo preparado para o trabalho
quando o botão for pressionado, mas o Interface Builder não
tem ideia de que precisa conectar o botão àquele código. Nós
podemos usar o Interface Builder para conectar nosso botão
ao método buttonPressed que nós acabamos de escrever.
Daí, quando o arquivo .xib for carregado pelo framework, ele
conectará o objeto botão criado com o nosso código.
.xib
estamos
e
u
q
e
t
r
pa
re o
Esta é ando – o link entcódigo que
esquece instanciado e o
botão ser chamado...
precisa
-(IBAction)
buttonPressed:(id)
sender;
iDecideViewController.xib
Botão
.h
iDecideViewController.h
-(IBAction)
buttonPressed:(id)
sender
{
method that the button
calls
}
iDecideViewController.m
A menos que os componentes de UI sejam
conectados ao código, nada irá acontecer.
Nós precisamos conectar o evento “Ei, eu fui pressionado”
do botão ao nosso método de ação buttonPressed. Isto
irá fazer nosso método ser chamado quando o usuário
pressionar o botão. Nós então precisamos pegar uma
referência ao UILabel que o framework criará para nós
quando o nib for carregado – é aí que entra o IBOutlet.
Vamos começar com o outlet de forma que possamos
mudar o texto do UILabel quando o botão for pressionado.
22
Capítulo 1
para começar
Use o Interface Builder para conectar os controles de
UI ao código
Volte no Interface Builder para o iDecideViewController.xib e vamos conectar os
componentes ao nosso novo código.
Pressione este botão para exibir a visão
hierárquica, fica um pouco mais fácil ver o
que está acontecendo com nosso nib.
Uma lista de tudo em
ssa view,
mais seu nome de classeno
.
Se você não tiver um mouse de
dois botões, aperte CTRL e
então clique.
1
2
Clique com o botão direito no rótulo
que você soltou no botão. Isto irá
mostrar uma lista de eventos e
referências.
Clique no círculo próximo de New
Referencing Outlet e arraste-o
para File’s Owner (isto representa
o arquivo de classe que irá
carregar este nib – em nosso caso,
iDecideViewController). Então
clique no outlet decisionText. Agora,
quando o UILabel decisionText
for gerado, nossa propriedade
decisionText será configurada para
uma referência ao controle, graças ao
IBOutlet.
OK – Eu entendi
como nós podemos
mudar o rótulo, mas
como o Interface
Builder sabe que
você pressionou um
botão?
você está aqui

23
elementos enviam eventos
O Interface Builder lista quais eventos um componente
pode disparar
Nós precisamos anexar o evento de componente certo ao código. Nós escrevemos um
método de ação anteriormente ao qual nós podemos conectar ao botão:
- (IBAction) buttonPressed:(id)sender;
IB = Interface
Builder
Este é o nome do método que ser
á chamado. O
nome pode ser qualquer coisa, ma
s
de ter um argumento do tipo (id o método tem
).
gens
Todas as menvasam um
IBAction le quem
argumento: sagem.
enviou a men ento
Este é o elema ação.
que disparou
Agora nós precisamos escolher o evento que deve disparar esse método. Se você
clicar com o botão direito sobre o botão no Interface Builder, você verá uma lista de
eventos que ele pode enviar. Nós queremos o evento TouchUpInside.
Muitos desses
soam como o queve entos
são.
Esta lista mostra
todos os eventos
que um botão
pode registrar.rar
Nós vamos ent
nos diferentes
eventos mais ro.
tarde, neste liv
Nós vamos usar o evento
“touch up inside”.
Elementos enviam eventos quando coisas
acontecem com eles
Sempre que algo acontecer com um elemento, por exemplo, um botão é
pressionado, o elemento envia um ou mais eventos. O que nós precisamos
fazer é dizer ao botão para nos notificar quando este evento acontecer.
Nós vamos utilizar o evento TouchUpInside. Se você pensar sobre como
você clica num botão no iPhone, o clique dentro do botão não é o que
importa: é quando você remove seu dedo (touch up) que o pressionar
verdadeiramente acontece. Conectar um evento a um método é como
conectar um elemento a um outlet.
24
Capítulo 1
para começar
Conecte seus eventos aos métodos
Assim como com outlets, você arrasta a conexão do
evento do botão para o File’s Owner e seleciona a ação
que deve ser chamada.
1
2
Clique com o botão direito no botão que você soltou
na view. Isto irá mostrar uma lista de eventos e
referências como ele fez para o rótulo.
Clique no círculo perto do Touch Up Inside
e arraste-o para File’s Owner. Clique na ação
buttonPressed. Agora quando o botão for
pressionado, nosso método buttonPressed será
chamado.
Então, importa realmente se eu uso um
IBOutlet ou um IBAction uma vez que o
Interface Builder pode usar ambos?
Importa muito!
Eles não são a mesma coisa. Use um IBOutlet
quando você precisar de uma referência a algo na
interface (i.e., de forma que você possa mudar o
texto do rótulo). Use um IBAction quando você quer
que um controle diga ao seu código quando algo
acontece (como quando um botão é pressionado).
você está aqui

25
ações e outlets
Conversa de hoje: IBActions falam mais
alto do que... muitas coisas
IBAction
IBOutlet
Oi, Outlet. Como é ser apenas um
possibilitador?
Do que você está falando? Eu faço coisas.
Hã – Eu sou uma Ação, meu negócio
é fazer. Meu trabalho é disparar um
método quando algo acontece – um
evento. Isto é fazer alguma coisa. Você
apenas fica sentado ali e aponta para as
coisas acontecendo
Grande coisa. Pelo menos eu fico ciente
de tudo que está acontecendo.
Sim, mas quando o usuário faz alguma
coisa. Eu faço acontecer! Eu faço o
salvamento, eu faço o clique real!
Escuta, é verdade que eu sou apenas
uma variável de instância que trabalha
com objeto numa nib, mas isto não
significa que eu não seja importante.
É mesmo? Porque o compilador
simplesmente ignora você!
Ele faz isso, mas eu digo ao Interface
Builder muita coisa. Você não é muito
próximo do IB, é?
Bem, para começar, o “IB” no IBAction
significa Interface Builder.
Grande coisa, eu tenho “IB” no meu
nome também.
Bem, nós dois temos muita coisa em
comum. De qualquer forma, o Interface
Builder sabe que, quando eu estou por
perto, um evento em um nib pode me
iniciar e me mantém informado.
Bem, eu acho que isso é bastante
importante.
Obrigado. Foi gentileza sua admitir isso.
26
Capítulo 1
para começar
IBAction
IBOutlet
Mas eu estou bem seguro do meu
relacionamento com o Interface Builder.
Sem mim, o código não poderia mudar
nada na UI.
Dá para explicar?
Claro. Uma variável IBOutlet pode
apontar para um objeto específico na nib
(algo como um campo de texto, ou outra
coisa), e o código (sim, provavelmente
seu código) pode me utilizar para mudar
a UI, definir o conteúdo de um campo
de texto, mudar cores, etc.
Oh – entendo. Você sabe, isso é algo que
você tem que eu sempre quis.
O quê?
Você pode ser qualquer coisa! Coloque
IBOutlet na frente de qualquer nome de
variável e pronto. Eu tenho uma sintaxe
mais complicada, porque eu preciso ter
uma ideia de quem foi que enviou.
Eu gosto da liberdade! Que bom que nós
pudemos resolver as coisas.
Concordo.
Test Drive
Agora que tudo está encaixado, está pronto para rodar. Certifique-se de que você salvou no
Interface Builder e então retorne ao Xcode, construa (build) e rode.
você está aqui

27
o Mike está a caminho
Test Drive
Veja a mensagem aqui!
Clique aqui!
28
Capítulo 1
Funciona!
para começar
Ah. Agora eu sei
o que fazer!
Até que enfim Mike pode tomar
uma decisão.
Seu aplicativo está funcionando! Todas
as peças se encaixaram: o arquivo
*.xib descreve a interface, o Interface
Builder o conectou ao código, e o
Objetive-C está fazendo tudo funcionar
junto.
Você está a caminho de se tornar o n0 1
da App Store.
E que tal um aplicativo do Twitter?
você está aqui

29
uma pequena recapitulação
Não existem
Perguntas Idiotas
salvou a informação necessária para
que, quando o nib for carregado
pela aplicação, as referências
são configuradas corretamente
no nosso iDecideViewController.
A mesma coisa aconteceu com o
proprietário do arquivo (File's Owner)
evento TouchUpInside, exceto que,
da nib. Você pode mudar qual classe
neste caso, em vez de conectar
o Interface Builder pensa que será,
um componente a uma referência,
mas, por padrão, um novo projeto é
ele conectou um evento de um
configurado de forma que o principal
componente a um método que
View Controller criado pelo Xcode
deveria ser chamado.
seja o File's Owner da view principal
criada pelo Xcode. É por isso que
Cuidado – a expectativa do Interface
nós não mudamos nada. Uma vez
Builder de que a classe vai carregar
que o File's Owner é definido como
o nib não significa que outras
sendo nosso iDecideViewController,
classes não possam tentar – apenas
o Interface Builder pode olhar o
poderia não funcionar tão bem se a
cabeçalho do iDecideViewController
classe não possuísse os métodos e
e ver que nós tínhamos um IBOutlet
propriedades necessários.
chamado decisionText e um IBAction
chamado buttonPressed. Quando
O que é essa coisa de “Outlet”?
você conectou o outlet referenciado
do UILabel ao descriptionText do
O Interface Builder tem a
File's Owner, o Interface Builder
P: O que é isso de File's Owner?
R: O Interface Builder tem uma
expectativa de qual classe será o
P:
R:
ideia de Outlets e Actions, e nós
falaremos mais sobre isso daqui a
pouco. Basicamente, um Outlet é
uma referência a algo e uma Action
é a mensagem (método) que é
enviada (chamado) quando algo
acontece.
P:
Por que nossa nova string de
texto tem um @ na frente?
R:
O Cocoa Touch usa uma
classe de string chamada NSString
para suas strings de texto. Uma vez
que ela é tão comum, o Objective-C
tem um suporte interno para criá-las
a partir de constantes. Você indica
que uma constante de string deve
ser uma NSString colocando um
símbolo @ na frente dela. De outra
forma, é apenas um char* normal
como em C ou C++.
Pontos de bala
„„ O Interface Builder cria arquivos nib (com
extensão .xib) que descrevem a GUI em XML.
„„ O Xcode é onde seu código e arquivos
são mantidos para sua aplicação.
„„ Arquivos nib são carregados pelo framework
Cocoa Touch e são transformados instâncias
reais de classes Cocoa Touch em tempo de
execução (runtime).
„„ O Xcode é o centro do seu
desenvolvimento do projeto e oferece
suporte a edição do seu código,
construção da aplicação e depuração,
uma vez que ela esteja rodando.
„„ De forma a conectar os componentes
descritos em um nib ao seu código, você
usa IBOutlets e IBActions.
30
Capítulo 1
„„ O iPhone Simulator deixa você testar sua
aplicação em seu Mac sem precisar de
um aparelho real.
para começar
Combine cada item de desenvolvimento para iPhone com sua descrição.
Item
Descrição
IBOutlet
Um típico plano do iPhone que é
diferente da maioria dos outros
dispositivos móveis.
Funções do Xcode
Xcode, Instruments, Interface
Builder e iPhone Simulator.
Uso de dados ilimitado
Referência do código para a
interface.
IBAction
Imagens, bancos de dados,
arquivo de ícone, etc.
Componentes do SDK
Manutenção e edição do código
e dos recursos, depuração de
código, e preparação de uma
aplicação para o lançamento.
Recursos da aplicação
Indica um método que pode
ser chamado em resposta a um
evento.
você está aqui

31
solução do quem faz o quê
Combine cada item de desenvolvimento para iPhone com sua descrição.
Item
Descrição
IBOutlet
Um típico plano do iPhone que é
diferente da maioria dos outros
dispositivos móveis.
Funções do Xcode
Xcode, Instruments, Interface
Builder e iPhone Simulator.
Uso de dados ilimitado
Referência do código para a
interface.
IBAction
Imagens, bancos de dados,
arquivo de ícone, etc.
Componentes do SDK
Recursos da aplicação
32
Capítulo 1
Manutenção e edição do código
e dos recursos, depuração de
código, e preparação de uma
aplicação para o lançamento.
Indica um método que pode
ser chamado em resposta a um
evento.
para começar
Palavras Cruzadas de iPhone
Dê uma pensada sobre as novas terminologias
que nós utilizamos neste capítulo.
Horizontal
Vertical
4 Algo que o simulador não consegue testar
confiavelmente.
5 Isto é utilizado para configurar uma conexão
indo do código da implementação para a view.
7 O termo que descreve cada tela de um
aplicativo para iPhone.
8 O framework o utiliza para escrever aplicativos
para iPhone.
10 O diretório usado para organizar as imagens
para o aplicativo.
12 O nome da ferramenta para construir UIs para
iPhone.
13 Estes são utilizados em Xcode para fornecer
classes para serem acessadas.
1 A linguagem utilizada para escrever aplicativos
para iPhone.
2 Isto é utilizado em um desktop para testar um
aplicativo.
3 Isto é utilizado para receber um evento em
código e disparar algo.
6 Este é o nome do editor utilizado para o
Objective-C.
9 O iPhone é um dispositivo do tipo...
11 O nome de um arquivo usado para criar uma
view.
você está aqui

33
solução das palavras cruzadas de ipPhone
Solução das Palavras Cruzadas de
iPhone
Dê uma pensada sobre as novas terminologias
que nós utilizamos neste capítulo.
O
I
P
E
R
F
O
R
B
B
I
J
M
A
N
C
E
E
U
A
I
B
O
U
T
L
C
E
T
T
C
A
I
T
T
V
I
C
S
O
X
C
O
A
T
O
U
N
C
O
H
R
M
E
S
O
N
I
T
E
E
E
U
R
C
E
S
K
S
V
D
N
O
I
R
F
A
C
F
R
A
M
E
W
O
R
E
B
U
I
L
D
E
R
B
Horizontal
Vertical
4 Algo que o simulador não consegue testar
confiavelmente. [PERFORMANCE]
5 Isto é utilizado para configurar uma conexão
indo do código da implementação para a view.
[IBOUTLET]
7 O termo que descreve cada tela de um
aplicativo para iPhone. [VIEW]
8 O framework o utiliza para escrever aplicativos
para iPhone. [COCOATOUCH]
10 O diretório usado para organizar as imagens
para o aplicativo. [RESOURCES]
12 O nome da ferramenta para construir UIs para
iPhone. [INTERFACEBUILDER]
13 Estes são utilizados em Xcode para
fornecer classes para serem acessadas.
[FRAMEWORKS]
1 A linguagem utilizada para escrever aplicativos
para iPhone. [OBJECTIVEC]
2 Isto é utilizado em um desktop para testar um
aplicativo. [SIMULATOR]
3 Isto é utilizado para receber um evento em
código e disparar algo. [IBACTION]
6 Este é o nome do editor utilizado para o
Objective-C. [XCODE]
9 O iPhone é um dispositivo do tipo... [MOVEL]
11 O nome de um arquivo usado para criar uma
view. [NIB]
34
Capítulo 1
W
CAPÍTULO 1
para começar
Sua Caixa de Ferramentas para iPhone
Você tem o Capítulo 1 no bolso e agora
você adicionou as interações básicas dos
aplicativos para iPhone à sua caixa de
ferramentas. Para iuma lista completa das
dicas do livro, vá para http://www.headfirstlabs.
com/iphonedev.
Views são construídas no Interface Builder
Uma view é feita de arquivos nib (*.xib) e as GUIs são
editadas com o Interface Builder.
...então o código que as fazem funcionarem...
Este código é quase sempre escrito em Objetive-C
utilizando o Xcode.
...e quaisquer outros recursos, todos
empacotados em sua aplicação.
Figuras
Dados
Imagens e outros dados são referenciados juntos no
Xcode de forma que todos os arquivos de que você
precisar possam ser manipulados facilmente.
você está aqui

35
Download

Arquivo - Livraria Martins Fontes