Buscar

Desvendando o Desenvolvimento de Aplicativos para iOS 1.1

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 36 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 36 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 36 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

DESENVOLVIMENTO DE APP PARA IOS !1
Índice 
Aviso Legal………………………………………………………………………………3 
Meus Canais……………………………………………………………………………..4 
Introdução ………………………………………………………………………………5 
Como utilizar este livro …………………………………………………………………7 
Desenvolvimento Híbrido e Nativo para iOS……….…………………………………..8 
A IDE .…………………………………………………………………………………..9 
Linguagem e projeto …………………………………………………………………..13 
Básico de Swift..………………………………………………………………………..18 
View Controllers ………………………………………………………………………21 
Segues …………………………………………………………………………………24 
Camera e Fotos ………………………………………………………………………..27 
Localização ……………………………………………………………………………29 
Mapas …………………………………………………………………………………33 
Considerações finais …………………………………………………………………..36 
DESENVOLVIMENTO DE APP PARA IOS !2
Aviso Legal 
A produção deste livro exigiu muito trabalho e tempo de dedicação exclusiva de minha 
parte. Também investi muito tempo e dinheiro para adquirir este conhecimento, que 
agora busco formatar de forma que outras pessoas possam atingir o mesmo de forma 
mais rápida e prática. 
Este é o sentido do trabalho: Você emprega sua energia e seus recursos para produzir 
algo que facilitará a vida de outras pessoas. Em troca, você será remunerado de forma 
que pode utilizar este pagamento como meio de troca para usufruir das facilidades 
produzidas pelo trabalho de ainda mais pessoas. 
Você aprenderá a desenvolver aplicativos para iOS mais rápido se tiver a ajuda e 
acompanhamento de pessoas que já passaram por esse processo antes, evitando perder 
tempo com caminhos que não funcionam e focando naquilo que já foi testado e 
aprovado. 
Atualmente este livro está sendo distribuído de forma inteiramente gratuita, mas peço 
que não altere ou extraia partes deste material para que seja distribuído de outras 
formas. 
O download deve ser feito de nosso canal oficial (www.congressodemobile.com.br/livro-
ios/). 
Caso goste do livro, recomende que seus amigos façam o download através de nosso 
website! 
DESENVOLVIMENTO DE APP PARA IOS !3
Meus Canais 
Possuo alguns canais na internet onde publico dicas de desenvolvimento Mobile , vídeo-
aulas e outros conteúdos para ajuda-lo nesta jornada. Acompanhe todos para receber as 
novidades e ficar sabendo sobre os programas. 
 
Blog 
http://congressodemobile.com.br/blog 
 
Canal do Youtube 
https://www.youtube.com/channel/UC2KkjDLb0U9ULyhup-rQIzg 
 
Pagina do Facebook 
https://www.facebook.com/CongressodeMobile 
DESENVOLVIMENTO DE APP PARA IOS !4
Introdução 
Quando o meu interesse pelo desenvolvimento mobile começou eu ainda estava na 
faculdade, entre 2010 e 2012, se ouvia falar do “boom” que foi o aplicativo Angry Birds 
da Rovio Entertainment e de outros apps de empresas bilionárias como a Zynga, 
também foram anos que tive conhecimento de aplicativos, hoje bilionários, como 
Instagram e WhatsApp. 
Através do conhecimento de notícias de diversos cases de sucesso, alguns até muito 
simples, eu fiquei curioso e estimulado a conhecer mais sobre o desenvolvimento de 
aplicativos, principalmente para iOS, pois pesquisas apontavam que apesar da maioria 
dos usuários se concentrarem nas plataformas Android, os usuários do iOS tendem a 
gastar mais dinheiro com aplicativos do que os dos demais, eram diversos os cases de 
empresas que a maior parte do seu faturamento vinha dos aplicativos para iOS. 
Conforme eu aprendia mais desenvolvimento de aplicativos para iOS, mais eu ficava 
interessado no mundo mobile, mais cases de startups de sucesso apareciam, mais 
oportunidades batiam na minha porta, contratações para desenvolvimento de 
aplicativos iOS, propostas de sociedade para desenvolver ideias e mais. Chegando assim 
a compreender os verdadeiros benefícios e possibilidades que esse conhecimento 
proporciona. 
Nem tudo foram flores em minha jornada para aprender a desenvolver aplicativos 
mobile. A carência de materiais bem formatados e completos publicados no Brasil é 
grande até hoje. Mesmo na internet, quando comecei, não se encontrava conteúdos em 
português, sendo que mesmo hoje ainda se encontram poucos, além de que são 
extremamente raros os conteúdos estarem atualizados, ainda mais agora com novas 
versões do Swift, linguagem hoje utilizada para desenvolver aplicativos iOS, e com o fim 
do Parse, backend as a service mais utilizado do mundo. 
DESENVOLVIMENTO DE APP PARA IOS !5
Esse cenário jamais vai mudar sem a profissionalização do ensino de desenvolvimento 
mobile no país. É por isso que hoje eu empreendo neste mercado, produzindo conteúdo 
e oferecendo cursos completos para o mercado mobile. 
É com muito orgulho que publico este material como forma de deixar a minha 
contribuição para os brasileiros futuros profissionais, empreendedores e professores do 
mercado mobile. 
Investir no aprendizado de desenvolvimento de aplicativos para iOS vale muito a pena. 
Em 2015 a apple anunciou que alcançou a marca dos 100 Bilhões de downloads de 
aplicativos na sua loja, a App Store. Segundo pesquisas realizadas em 2015 pela 
companhia de análise App Annie, os aplicativos disponíveis na App Store geram 75% 
mais receita do que os disponíveis na Play Store. 
Ainda estamos vivenciando o “Boom” da era mobile, são inúmeras as oportunidades 
nesse mercado, a carência por profissionais qualificados só aumenta, o mesmo pode se 
dizer quanto ao surgimento de startups de sucesso. 
Segundo matéria publicada na revista Pequenas Empresas & Grandes Negócios em 
fevereiro de 2016, 1 Bilhão de dólares é a previsão de investimento em publicidade para 
mobile no Brasil em 2016. O valor pode ultrapassar 2,5 bilhões de dólares até 2018, 
além de 40% foi o aumento no número global de instalações de aplicativos 
desenvolvidos por brasileiros entre dezembro de 2014 e dezembro de 2015. O ritmo foi 
superior ao de mercados com tradição em apps, como EUA, Alemanha e Inglaterra. O 
mercado está cada vez melhor e mais aquecido. 
Este livro foi escrito de forma que uma pessoa que não sabe absolutamente nada sobre 
desenvolvimento mobile possa entender como é que ele funciona. Você poderá 
aprender rapidamente o que demoraria um bom tempo “pulando de galho em galho” 
por diferentes websites em inglês na internet ou através dos poucos livros disponíveis, na 
sua maioria desatualizados, no mercado. 
Espero que você faça bom proveito e que em breve possa me enviar o seu relato, 
contando sobre o seu avanço no desenvolvimento de aplicativos para iOS! 
Um grande abraço, 
Filipe Torres 
DESENVOLVIMENTO DE APP PARA IOS !6
Como utilizar este livro 
Você pode utilizar este livro de duas formas. A primeira é ir com calma, absorvendo 
profundamente cada um dos tópicos abordados, buscando entender todas as possíveis 
dúvidas. Dessa forma, é importante que você aplique o conhecimento na medida que 
for aprendendo. Familiarize-se com o ambiente de programação, com o IDE Xcode e 
com a linguagem Swift praticando no seu próprio computador. Em seguida aprenda os 
conceitos do desenvolvimento iOS e seus componentes, é sempre importante você por 
em prática cada passo aprendido, dessa maneira você fixará melhor o conteúdo, sanará 
eventuais dúvidas e estará melhor preparado para desenvolver seu aplicativo. 
A segunda maneira seria prosseguir mesmo que ainda não tenha dominado por 
completo um assunto. Isto em um primeiro momento, pode parecer estranho, mas o 
fato é que o nosso conhecimento não é construído de forma linear. A familiarização 
com uma nova linguagem de programação se da com o tempo e com o contato que 
temos com ela, então na medida que avançamos o conteúdo a prática com a linguagem 
vai aumentando. Se você ler o livro inteiro mesmo sem absorver 100% do conteúdo, ao 
começar de novo e voltar nas partes anteriores, você terá uma visão diferente do 
conteúdo, compreendendo coisas que antes não havia compreendidoe também tendo 
novas percepções. 
Você também pode utilizar este livro como um guia, caso esteja desenvolvendo um 
aplicativo, ou apenas estudando, e queira realizar consultas. Os capítulos do livro 
possuem materiais de consulta e que podem ser muito úteis quando você precisar 
relembrar de algum procedimento necessário para solucionar a parte do seu aplicativo 
que você estiver desenvolvendo. 
Lembre-se que para aprender a desenvolver bons aplicativos, todo conteúdo novo é 
válido. Não tenha pressa, leia com calma e fique à vontade para utilizar outros materiais 
e outras fontes como complemento. 
DESENVOLVIMENTO DE APP PARA IOS !7
Desenvolvimento Híbrido e Nativo para iOS 
Existem basicamente duas formas de desenvolver aplicativos para iOS, através de 
desenvolvimento Nativo e Híbrido. 
Desenvolvimento nativo, que será o tipo de desenvolvimento abordado neste livro, 
significa dizer que o aplicativo foi desenvolvido no próprio ambiente da apple, 
utilizando seu IDE (Xcode) e suas linguagens (Objective-C ou Swift). Ao se desenvolver 
um aplicativo nativamente temos acesso a APIs nativas do próprio sistema operacional, 
dessa forma desenvolvemos um aplicativo específico para aquela plataforma, ganhando 
em performance e customizações. Desenvolver um aplicativo nativamente também tem 
outras vantagens, até mesmo em relação ao mercado mobile, mas não é o meu objetivo 
com este livro aprofundar nesse assunto. 
Quanto ao desenvolvimento híbrido, temos um ambiente de desenvolvimento diferente 
do disponibilizado pela empresa responsável pela plataforma, no nosso caso a Apple. 
Geralmente a linguagem usada nesse tipo de desenvolvimento é o JavaScript, que por 
sua vez acaba se assemelhando bastante com o desenvolvimento web. Existem vários 
ambientes e frameworks, como ionic, para se desenvolver híbrido. Desenvolvimento 
cuja vantagem é que desenvolvemos o aplicativo somente uma vez, em uma linguagem, 
e exportamos para várias plataformas, economizando tempo de desenvolvimento. A 
suas principais desvantagens são a queda de performance e customização, uma vez que 
exportado para a plataforma desejada, seu aplicativo vai rodar dentro do core do 
browser da plataforma, como se fosse um aplicativo web. Além de que o projetos 
híbridos tendem a valer menos do que nativos. 
Bom, não é meu objetivo comparar os dois tipos de desenvolvimentos e sim mencionar 
as duas possibilidades. Neste livro, abordaremos o desenvolvimento nativo, utilizando o 
Xcode 7 como IDE, programando na linguagem de programação mais atual da Apple 
no momento que escrevo este livro, o Swift 2.2. 
DESENVOLVIMENTO DE APP PARA IOS !8
A IDE 
A IDE da apple se chama Xcode, no momento em que escrevo este livro a sua ultima 
versão é a 7, e ele é o ambiente de desenvolvimento da apple que nos permite 
desenvolver aplicativos para iOS. O Xcode é basicamente a única ferramenta 
necessária, nele você encontra um excelente Editor, Debugger, gerenciador de código 
fonte, simulador, SDKs e mais. Existe também o Instruments que você pode adicionar 
ao Xcode para fazer algumas coisas extras como gerenciar a performance, por exemplo, 
mas não vem ao caso. 
O Xcode é gratuito e você pode baixa-lo na App Store para Mac, então você precisa de 
um Mac ou de uma máquina virtual com o Mac OS para desenvolver aplicativos para 
iOS. 
Ao abrir o Xcode a primeira tela que nos deparemos é esta a seguir: 
Explicando rapidamente essa tela, temos: 
DESENVOLVIMENTO DE APP PARA IOS !9
1. Aqui você acessa o playground. O Playground é basicamente uma ferramenta que te 
permite desenvolver uma parte ou outra do aplicativo para iOS ou mesmo brincar com 
o Xcode sem precisar dar “biuld” e simular no iOS Simulator. É uma ótima ferramenta 
para fins de testes de código e até mesmo para aprender a linguagem Swift. Se você é 
completamente iniciante no desenvolvimento iOS sugiro que brinque um pouco com o 
playground. 
2. Aqui criamos um projeto Xcode do zero, é aqui que começamos quando vamos 
desenvolver um novo aplicativo. 
3. Nessa opção você pode checar se tem alguma projeto já existente em um repositório 
remoto, o Xcode se integra bem com ferramentas de versionamento de software como 
git, por exemplo, para trabalhar com times de desenvolvimento. 
4. Essa parte mostras os projetos já existentes, caso você queira continuar algum de 
onde parou. 
Ao apertar na opção 2, criar um novo projeto Xcode, a seguinte tela aparece: 
 
DESENVOLVIMENTO DE APP PARA IOS !10
Observe que no menu lateral temos a possibilidade de desenvolver aplicativos para iOS, 
watchOS, tvOS, OS X e outros. Então devemos ir no item iOS e selecionar o sub-item 
Application. 
Então aparecerão as opções para escolhermos o tipo de projeto que queremos, a menos 
que você vá desenvolver um game, é comum sempre começarmos com o Single View 
Application, pois é o tipo de projeto com menos coisas e a partir dele podemos criar 
todos os outros, então adequamos de acordo com nossas necessidades. 
Na próxima tela você deve digitar o nome do aplicativo que você está desenvolvendo, 
em Organization Name é o que vai aparecer no Copyright (quem desenvolveu), você 
pode por o que quiser nesse campo, entretanto, no Bundle Identifier deve ser um 
identificador único, uma boa maneira de você fazer isso é colocar em notação DNS 
reversa, por exemplo, br.com.congressodemobile.filipetorres. Note que coloquei o 
domínio do meu site ao contrário e por fim adicionei o meu nome. Em seguida devemos 
escolher a linguagem Swift e escolher se devemos criar o nosso aplicativo para iPhone e 
iPad ou para somente um dos dois. Pressione Next e selecione a pasta onde você quer 
salvar o projeto. 
Feito isso o ambiente de programação do Xcode é enfim aberto. 
DESENVOLVIMENTO DE APP PARA IOS !11
Não quero estender muito a explicação sobre o Xcode em si, se não o livro vai ficar 
muito extenso e meu objetivo é simplificar ao máximo. 
Então para finalizar este capítulo, vamos explicar a imagem de maneira bem resumida: 
1. Configurações básicas do projeto. 
2. Navegador, serve para navegarmos pelo nosso projeto, é onde podemos ver os 
arquivos do nosso projeto, pesquisar por eles, ver erros e avisos do compilador e 
breakpoints. 
3. Inspetor, nos permite analisar e editar componentes selecionados na janela principal, 
geralmente do arquivo Main.storyboard. 
4. Tela onde ficarão componentes disponíveis para arrastarmos para tela principal no 
Main.storyboard e utilizarmos no nosso projeto, componentes como botões, campos de 
texto, etc. 

DESENVOLVIMENTO DE APP PARA IOS !12
Linguagem e projeto 
A linguagem atualmente utilizada para se desenvolver aplicativos para iOS é a Swift, 
que está na versão 2.2, ainda é possível utilizar Objective-C, antiga linguagem utilizada 
pela Apple, porém o suporte para a mesma foi descontinuado. 
A linguagem Swift é orientada a objetos, ou seja, possui classes, métodos, herança e 
outros conceitos de linguagem orientada a objetos. Mas fique tranquilo, se você nunca 
programou alguma linguagem com orientação a objetos isso não te impede de aprender 
a linguagem, com a prática você vai aprendendo os conceitos. 
O Xcode é projetado para você desenvolver seu projeto no padrão MVC (Model, View 
e Controller), porém, apesar de recomendado, não necessariamente você precisa seguir 
esse padrão de projeto, então, para não complicar muito, em outra oportunidade lhe 
ensinarei desenvolvimentos de projetos em Swift no padrão MVC. 
Vamos então continuar com o raciocínio inicial do livro e simplificar as coisas. Vou, 
antes de estudarmos a linguagem, mostrar como funciona um projeto iOS no Xcode. 
No menu lateral esquerdo, no navegador, você deve encontrar o arquivo 
Main.storyboard, é nele que construimos as telas do nosso aplicativo, em outras 
palavras, toda a parte visual fica ali, e ela é construídasimplesmente arrastando os 
componentes do item 4 da imagem anterior, do capítulo passado, para a tela desejada 
com o próprio mouse. 
Assim que criamos um projeto temos o arquivo ViewController.swift. Se abrirmos ele 
veremos que tem uma classe de nome ViewController (mesmo nome do arquivo) e essa 
classe herda a classe UIViewController, isso quer dizer que podemos utilizar as funções 
e propriedades da classe herdada, esta no caso é responsável por gerenciar os eventos 
que ocorrem na tela. 
DESENVOLVIMENTO DE APP PARA IOS !13
Como você pode ver na imagem o arquivo já vem com duas funções dentro da classe 
ViewController, essas funções são da classe UIViewController e estão sendo 
sobrescritas, por isso o “override”. Isso significa dizer que estamos sobrescrevendo, ou 
seja, “escrevendo por cima” do método original na UIViewController, então quando 
esse método for chamado, vai ser executado o código que sobrescrevemos. 
Como meu objetivo não é ensinar conceitos de programação orientada a objetos e sim 
fazer com que você tenha compreensão básica do desenvolvimento de aplicativos para 
iOS, vamos dar continuidade. 
Esta classe, ViewController, já vem linkada com a view(tela) inicial presente no 
Main.storyboard, então podemos capturar e gerenciar os eventos que ocorrem nessa 
view dentro dessa classe. A função viewDidLoad, por exemplo, é disparada quando a 
view acabou de ser carregada, então podemos colocar códigos nessa função para serem 
executados nesse evento. 
Bom, vamos então criar o nosso “Hello World”. 
Primeiro vamos montar nossa UI, que será apenas a tela inicial com um botão e uma 
label (rótulo). Então devemos apenas encontrar os componentes e arrastar para a tela. 
Segue a imagem com os passos para construir nossa UI: 
DESENVOLVIMENTO DE APP PARA IOS !14
Escolhemos um botão e arrastamos para o lugar da tela de nossa preferencia, em 
seguida fizemos o mesmo procedimento com a label. 
Ao selecionar componentes na nossa view, no caso o botão ou a label, podemos mexer 
nas propriedades dele no inspetor, tais como título, fonte, tamanho, cor, etc. 
Depois de ajustados os elementos na tela, devemos “linkar” esses elementos ao nosso 
código. Para isso devemos clicar no botão “Show Assistant Editor” localizado no 
canto superior direito como demonstrado na figura abaixo. 
Uma vez clicado no botão, o Xcode abre na janela principal dois arquivos ao mesmo 
tempo, nesse caso o Main.storyboard e o ViewController.swift. Para selecionar o 
arquivo que deve ser aberto na parte esquerda basta clicar no arquivo desejado no 
navegador, já o arquivo da parte direito você deve clicar no arquivo desejado no 
navegador segurando a tecla option. 
O próximo passo é realizar a “linkagem” de fato, fazemos isso segurando a tecla 
control, clicando no botão na tela do Main.storyboard e arrastando para o código, 
dentro da nossa classe, no ViewController.swift. Ao fazermos isso, temos a imagem a 
seguir: 

DESENVOLVIMENTO DE APP PARA IOS !15
Na imagem acima temos uma janelinha que apareceu para configurarmos o tipo de 
“linkagem” que queremos. Como na imagem acima estamos linkando o botão e o nosso 
interesse é capturar o evento quando o mesmo for pressionado, devemos mudar para 
Action no item Connection. Devemos ainda definir o nome da nosso método, no caso 
eu defini como touchHello. Observe também que mudei o Type para UIButton, isso é 
opcional, apesar de recomendado, uma vez que estamos lidando com um botão. 
Devemos fazer o mesmo procedimento de “linkagem” com a label, porém, com a label 
o item Connection vai ser Outlet. Isso porque queremos manipular as propriedades da 
nossa label, como por exemplo seu texto. A opção Action é somente para eventos, que 
no nosso projeto é usado para o evento de clique do botão. 
Uma vez linkado os componentes, podemos voltar para a visualização normal, clicando 
em Standard Editor, botão do lado do Assistant Editor, e selecionando o arquivo 
ViewController.swift no navegador. 
Agora de fato vamos codificar o nosso “Hello World”. Para exibir no console podemos 
usar a função print() e para exibir na label que colocamos na tela devemos acessar o 
nosso outlet que criamos ao “linka-la”. Isso é feito da seguinte forma: 
self.nomeDoOutletQueDefinimos.text. Segue a imagem final: 
DESENVOLVIMENTO DE APP PARA IOS !16
 
Excelente, construímos nosso “Hello World”, basta agora executar, clicando no botão 
play, no canto superior esquerdo. 
PS: Ao executar, o Xcode vai fazer a biuld do seu projeto em seguida simular seu 
aplicativo no simulador, por padrão ele abre o iPhone 6s Plus, mas se seu computador 
não tem muita memória eu recomendo que troque para o iPhone 5s. Essa opção está 
localizada também na parte superior esquerda, porém mais próximo do centro. 
A imagem acima representa o aplicativo Hello World sendo rodado no simulador após 
termos clicado no botão Say Hello!, observe que o texto da label foi alterado para 
Hello World. 
PS: A posição do botão e da label foi alterado para o topo da tela para que a imagem 
capturada do simulador ficasse menor. 

DESENVOLVIMENTO DE APP PARA IOS !17
Básico de swift 
Neste capítulo eu quero lhe apresentar a sintaxe da linguagem Swift com o objetivo que 
você adquirira a base e com o tempo ir se familiarizando. 
A sintaxe do Swift, de maneira geral, é bem simples. Para lhe apresentar a sintaxe eu 
vou utilizar um projeto do playground, também sugiro que o utilize e pratique bastante. 
Variáveis e Constantes 
Existem duas formas de se declarar variáveis e constantes, a explícita e a implícita. 
Ates de demonstrar cada uma preciso dizer que variáveis são seguidas por var quando 
declaradas, já constantes por let. 
Declaração explícita é onde definimos explicitamente o tipo de dado que a variável ou 
constantes é na declaração, por exemplo: var altura : Float. Nesse exemplo 
declaramos explicitamente a variável altura como do tipo Float. 
Declaração implícita se faz ausente o uso do tipo de dado na declaração da variassem 
ou constante, por exemplo: let minutosEmUmaHora = 60. Nesse exemplo estamos 
declarando implicitamente uma constante do tipo Int, pois ao atribuirmos o valor 60, 
automaticamente o compilador considera minutosEmUmaHora uma constante do tipo 
inteiro. 
Segue a imagem de testes realizados no Playground do Xcode: 
DESENVOLVIMENTO DE APP PARA IOS !18
Arrays 
Se você já programou em qualquer outra linguagem deve estar mais que familiarizado 
que essa estrutura de dados. Array nos permite armazenar uma coleção de dados do 
mesmo tipo em uma variável. No Swift, existem 3 formas de se declarar um Array, 
sendo duas delas explícitas e uma implícita. Segue a image exemplo: 
A linguagem nos dispões também de várias operações que podemos realizar com 
Arrays, como por exemplo .append(), insert(), removeLast(), que serve para adicionar 
um elemento ao final do array, inserir um elemento na posição desejada e remover o 
ultimo elemento do array, respectivamente. Existem várias outras operações, você pode 
dar uma olhada na documentação da apple, pelo próprio Xcode, para mais detalhes. 
Dicionários e Tuplas 
Um dicionário armazena uma coleção não ordenada de valores. Cada valor no 
dicionário está associado a uma chave. Em outras palavras, um dicionário armazena um 
número de pares chave/valor. 
Como os Arrays, as chaves e os valores armazenados em um dicionário precisam ser do 
mesmo tipo. Isto significa que se você pergunta a um dicionário por um valor de uma 
chave em particular, você sabe que tipo o dicionário irá retornar. Salvo quando o tipo 
de dado é AnyObject, mas não vem ao caso mencionar. 
Já as Tuplas, apesar de serem similares a Arrays e Dicicionários, a principal diferença é 
que os valores armazenados em uma tupla não precisam ser do mesmo tipo. Segue a 
imagem exemplo simulada no playground: 
DESENVOLVIMENTODE APP PARA IOS !19
Concatenação e Interpolação 
Muitas vezes se faz necessário mostrar valores em forma de String, seja no console ou 
na própria tela. Para isso, podemos usar de concatenação ou interpolação. 
Para concatenarmos valores a uma String, basta usarmos o operador +, por exemplo: 
var livro = "Desvendando " + tupla.1 teria como resultado “Desvendando iOS”. 
É recomendado que usemos interpolação na maior parte das vezes, pois podemos 
interpolar várias vezes e diferentes tipos de dados na mesma String. Fazemos isso através 
do operador \(), por exemplo: var escrevendo = "Desvendando \(tupla.1) em \
(dict[“dia"]!) de \(mes)” teria como resultado “Desvendando iOS em 2 de Junho”. 
if, for, foreach e while 
A estrutura de decisão if se assemelha a outras linguagens como C e Java, com a 
diferença que não precisa de parênteses para a condição, sendo assim, algo como: 
if altura > 1.8 { } é aceito normalmente pelo compilador. 
Já a estrutura de repetição for era igual ao C(for(int i = 0; i< 10, i++)), porém com 
atualizações da linguagem, a estrutura se encontra deprecada na versão 2.2 e será 
removida na versão 3 do Swift. Um for em Swift agora deve ser feito da seguinte 
maneira: for i in 0…9 { }. 
A linguagem Swift acaba que dando suporte ao foreach, estrutura de repetição 
encontrara em linguagens como PHP, por padrão. O foreach fica do mesmo jeito do 
for normal: for direcao in direcoes { }. 
O while ainda é o mesmo do C e Java, com a mesma diferença do if, não necessário 
por parênteses: while altura < 1.9 { altura += 0.1 }. 
Classes e Structs 
No Swift temos estruturas do tipo class e struct, elas funcionam como qualquer classe 
de linguagens orientadas a objetos. Basicamente a principal diferença entre as duas 
estruturas é que structs são passadas por valor enquanto classes são passadas por 
referência. Isso quer dizer que se eu atribuir uma instancia de classe a uma segunda 
classe, a mesma é passada por referencia, então todas as alterações que eu fizer na 
segunda classe também ocorrerão na primeira, enquanto com structs não, as alterações 
afetariam somente a segunda. 

DESENVOLVIMENTO DE APP PARA IOS !20
View Controllers 
Logo no inicio desse livro criamos um projeto básico que já iniciava com uma View 
Controller e aprendemos que para cada view(tela) existe um arquivo .swift com uma 
classe que a controla / gerencia. 
Na maioria dos casos são utilizados 2 tipos de ViewController’s, a própria View 
Controller que é gerenciada por uma classe do tipo UIViewController (a que 
utilizamos no nosso primeiro projeto) e a Table View Controller que é gerenciada 
por uma classe do tipo UITableViewController. 
Table Views são encontradas em praticamente todos os aplicativos disponíveis hoje e 
são uma parte integrante e bem importante na experiência do usuário na plataforma 
iOS. Table Views fazem apenas uma coisa e fazem muito bem, mostrar uma lista 
ordenada de itens. 
Table Views são componentes bem complexos e requer muito conteúdo para explica-
los. Para não deixar o livro muito extenso, não abordarei sobre Table View’s aqui. 
Então caso queira saber mais como trabalhar com Table Views eu sugiro que se 
inscreva no meu canal do youtube (http://bit.ly/ytbookios), pois postarei aulas em 
video no canal sobre esse componente e mais. 
Em um projeto de aplicativo muito provavelmente precisamos trabalhar com várias 
telas, ou seja, teremos mais de uma View Controller e o usuário deve navegar entre elas. 
Existem 3 maneiras de combinar View Controllers, fazemos isso através de Tab Bar 
View Controller, Split View Controller e Navigation View Controller. 
Quando um conteúdo precisa ser distribuído em várias telas, Navigation Controller é 
geralmente a opção escolhida. O que faz o Navigation Controller ser especial é que ele 
cria e gerencia uma hierarquia de View Controllers, muitas vezes referida como uma 
pilha de navegação. O Navigation Controller gerencia várias subviews, incluindo uma 
DESENVOLVIMENTO DE APP PARA IOS !21
barra de navegação no topo que lhe permite voltar para a tela anterior ou ir para uma 
próxima tela. 
A imagem abaixo representa a Main.storyboard com Navigation Controller: 
Segue o projeto em execução: 
Note que podemos navegar entre duas ou mais telas, no exemplo, ao clicarmos no botão 
Hello, vamos para a tela seguinte e automaticamente aparece o botão Voltar para a tela 
anterior. 
Tab Bar Controllers também gerenciam um array de View Controllers, a grande 
diferença é que uma view(tela) em uma Tab bar Controller não necessariamente precisa 
ter uma relação com outra, como tem no Navigation. Tab Bar Controllers são ótimos 
para tarefas diferentes, que não tem relação entre si, no mesmo aplicativo. 
DESENVOLVIMENTO DE APP PARA IOS !22
O aplicativo relógio do iOS é um exemplo de uso de Tab Bar Controller, acessamos as 
diferentes telas do aplicativo clicando nos ícones na barra de navegação na parte 
inferior do aplicativo. Outros exemplos de aplicativos famosos que utilizam Tab Bar 
Controller são o Instagram, Facebook e o Whatsapp. 
Criarei video aulas no meu canal do youtube sobre os 3 componentes responsáveis por 
combinar View Controllers(TabBar, Navigation e Split), então se inscreva agora no meu 
canal do youtube: http://bit.ly/ytbookios.

DESENVOLVIMENTO DE APP PARA IOS !23
Segues 
Segues (pronuncia-se “Sé-gu-eis”) são responsáveis pelas transições entre View 
Controllers. Como vimos no capítulo passado, podemos combinar várias Views através 
de alguns componentes, mas quem realiza de fato a transição entre elas, são as Segues 
(elas representam as setas que partem de uma tela para outra no Main.storyboard). 
Tipos de Segues: 
Show Segue, são chamadas em Navigation Controllers, também usamos quando 
queremos apenas fazer uma transição de uma view para outra, sem combina-las. 
Show Detail Segue, são usadas em Split Views, quando você tem algo na master e 
quer mostrar mais informações no detail, é essa a segue usada, daí o nome dela. Esse 
tipo de Segue também funciona no Navigation Controller. 
Modal Segue, basicamente joga uma tela, que ocupa todo o campo visual, em cima da 
atual. 
Popover Segue, parecido com o Modal Segue, com a diferença que a tela que é 
jogada em cima não ocupa todo o campo visual, somente uma parte da tela e você pode 
clicar fora dela para fecha-la. 
As Segues mais usadas são geralmente Show e Show Detail, já a Modal não é tão 
comum, uma vez que essa transição não é adequada em muitos casos. Popover tem um 
visual melhor em iPad’s e iPhone’s Plus, uma vez que são aparelhos de telas maiores, 
mas com um pouco de configuração você consegue o mesmo efeito em aparelhos 
menores. 
Para fazer uma uma Segue é bem fácil, na sua storyboard basta segurar a tecla control, 
clicar no botão ou componente que você deseja que realize a transição e arrastar para a 
tela para qual ele deve realizar a transição. 
Na imagem a baixo temos uma Split View Controller, onde a View da calculadora é a 
Master e o gráfico a Detail. Estamos criando uma Segue do botão da calculadora para a 
tela do gráfico. 
DESENVOLVIMENTO DE APP PARA IOS !24
Após esse procedimento, vai aparecer uma janela para escolhermos o tipo de Segue que 
desejamos, nessa caso, como se trata de uma Split View, iremos escolher a Show Detail. 
Feito isso, a Segue deve aparecer na tela. O próximo passo é clicar na Segue, ir no 
inspector e definir um Identifier para ela. Identifier é um nome único que você deve 
da para sua Segue de modo que você possa acessa-la via código. 
Ta, mas onde usaremos esses Identifiers no nosso código? É isso que falaremos a seguir, 
abordando alguns métodos e eventos que os utilizam: 
func performSegueWithIdentifier(identifier: String, sender:AnyObject?) 
Nesse método, realizamos a transição via código, passando o Identifier da Segue no 
parâmetro identifier e você pode passar qualquer objeto como o sender, que é o objeto/
componente que está causando a transição. 
func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) 
Esse evento é disparado automaticamente, na própria View Controller da tela que está 
causando a transição, quando uma transição vai ocorrer. Ele serve para prepararmos a 
DESENVOLVIMENTO DE APP PARA IOS !25
próxima tela, para qual será realizado a transição, enviando informações que sejam 
necessárias. 
func shouldPerformSegueWithIdentifier(identifier: String?, sender: 
AnyObject?) -> Bool 
Esse evento também é disparado automaticamente na própria View Controller que está 
causando a transição. Assim como o prepareForSegue, você deve implementa-lo na 
classe para utiliza-lo. Nesse método você pode fazer com que a transição não ocorra 
dependendo de uma condição, para isso basta retornar false.

DESENVOLVIMENTO DE APP PARA IOS !26
Câmera e Fotos 
Tanto a câmera quanto a biblioteca de fotos são acessadas através da classe chamada 
UIImagePickerController, que nada mais é do que uma UIViewController. É bem 
simples de usar, você precisa apenas configurar e mostra-la na tela de forma modal. 
Vamos então aos passos para uso: 
1. Crie uma instancia e defina um delegate (não é possível fazer nada sem definir 
um delegate, que pode ser a própria View Controller). 
2. Configure ( Definir se vai ser a câmera ou a biblioteca de fotos que será mostrada, 
se permite edição, tipo de mídia (foto ou vídeo), etc). 
3. Mostre na tela, isso é feito através do método presentViewController(). 
4. Responder aos métodos do delegate que são disparados quando o usuário faz 
alguma ação específica. 
Definimos o que de fato vai aparecer na UIImagePickerController na etapa de 
configuração onde definimos o Source Type do objeto instanciado. 
Source Types podem ser: 
UIImagePickerControllerSourceType.SavedPhotosAlbum - Rolo da Câmera 
UIImagePickerControllerSourceType.PhotoLibrary - Biblioteca de Fotos 
UIImagePickerControllerSourceType.Camera - Câmera 
A Apple recomenda que perguntemos, no nosso código, à plataforma se o Source Type 
que temos interesse em utilizar está disponível, pois pode não ter disponibilidade em 
algumas plataformas. Fazemos isso através do método estático, da classe 
UIImagePickerController, .isSourceTypeAvailable(sourceType) -> Bool. 
Também é recomendado checar as mídias disponíveis (foto e/ou vídeo), fazemos isso 
através do método estático .availableMediaTypesForSourceType(sourceType) -> 
[String]? da classe UIImagePickerController. Isso nos permite distiguir uma câmera que 
pode gravar vídeo de uma que que pode somente tirar fotos, por exemplo. Isso é 
DESENVOLVIMENTO DE APP PARA IOS !27
importante pois além de algumas plataformas não darem suporte o próprio usuário 
pode negar permissão. 
 
Na imagem acima, capturamos o evento de tap do botão (da mesma forma que fizemos 
no inicio desse livro no projeto inicial “Hello World”) com o método importImages. 
Dentro desse método instanciamos uma UIImagePickerController, atribuímos seu 
delegate a nossa própria ViewController (Para isso, nossa view deve implementar as 
classes UIImagePickerControllerDelegate e UINavigationControllerDelegate), em 
seguida verificamos a disponibilidade do Source Type que desejamos utilizar (Biblioteca 
de fotos, nesse caso), se disponível, definimos o Source Type e por fim mostramos a tela 
de seleção de fotos da biblioteca. 
Os outros dois métodos são métodos do delegate, o primeiro é disparado quando o 
usuário terminou de escolher a imagem e nesse caso capturamos a imagem escolhida e 
atribuímos à imagem da imageView da nossa classe, já o segundo é disparado caso ele 
cancele a seleção de imagens. 

DESENVOLVIMENTO DE APP PARA IOS !28
Localização 
Localizações no iOS são definidas através do Core Location. Vamos então aborda-lo a 
seguir. 
Core Location é um framework para gerenciar a localização do dispositivo e sua 
direção. Não há user interface no Core Location e o objeto que que o representa é o 
CLLocation e tem propriedades como coordenadas, altitude, velocidade, direção, etc. 
Importante, para trabalharmos com localização precisamos importar o framework, 
então fazemos import CoreLocation no arquivo onde vamos usa-lo. 
O CLLocation pode utilizar do GPS, Wifi e sinal de torres de celular para determinar 
sua localização e a precisão das propriedades desse objeto podem e devem ser definidas, 
uma vez que quanto maior a precisão, maior o consumo da bateria do seu 
celular ou tablet, então você deve escolher a precisão de acordo com o objetivo do seu 
aplicativo com objetivo de economizar ao máximo a bateria do aparelho onde ele vai 
rodar. 
Para escolher a precisão do CLLocation existem algumas constantes/chaves pré-
definidas, são elas: 
kCLLocationAccuracyBestForNavigation - Para aplicativos de navegação, situações em 
que você precisa saber a exato momento de dobrar o carro em uma rua, por exemplo. 
Ao habilitar esse modo o celular deve estar carregando, bastante bateria será usada. 
kCLLocationAccuracyBest - Segundo a Apple, utiliza do mais alto nível de precisão 
para determinar a localização, faz uso do GPS. 
kCLLocationAccuracyNearestTenMeters - Precisão em torno de 10 metros, deve 
provavelmente fazer um mix do uso do GPS e do Wifi. 
kCLLocationAccuracyHundredMeters - Precisão de 100 metros, deve utilizar em sua 
maior parte o Wifi. 
kCLLocationAccuracyKilometer - Precisão em torno de 1 quilômetro, deve utilizar de 
sinal de torres de celular para saber a localização. 
DESENVOLVIMENTO DE APP PARA IOS !29
kCLLocationAccuracyThreeKilometers - Precisão em torno de 3 quilômetros, deve 
utilizar de sinal de torres de celular para saber a localização e a precisão que menos 
gasta bateria do dispositivo. 
Para capturarmos um CLLocation com nossa localização fazemos através do 
CLLocationManager, que é nos enviado através de eventos do delegate dele. 
Fazemos isso em 4 passos: 
1. Checar se o hardware que estamos usando da suporte ao tipo de atualização de 
localização que precisamos. 
2. Criar uma instancia de CLLocationManager e definir seu delegate. 
3. Configurar de acordo com o tipo de atualização de localização que queremos. 
4. Começar o monitoramento do CLLocationManager para alterações de localização. 
Antes de começarmos a capturar a localização do dispositivo precisamos pedir 
permissão ao usuário e podemos fazer isso duas maneiras: 
Através do método requestWhenInUseAuthorization() para requisitar a autorização do 
usuário para captura da localização somente quando o aplicativo estiver ativo. 
Através do método requestAlwaysAuthorization() para requisitar a autorização do 
usuário para captura da localização sempre, mesmo quando o aplicativo não estiver 
ativo. 
Nosso Status quanto a autorização pode ser obtido através do método 
authorizationStatus() e pode retornar valores como Authorized (autorizado), Denid 
(negado), Restricted (restrito, incapaz) e NotDetermined (ainda não definido). 
Para isso funcionar, você precisa adicionar duas entradas na Info.plist, são elas: 
NSLocationWhenInUseUsageDescription e NSLocationAlwaysUsageDescription. 
Basta você clicar com o botão direito em algum espaço vazio da Info.plist e apertar em 
Add Row (adicionar linha) para inserir uma entrada. 
Você também deve definir a propriedade desiredAccuracy : CLLocationAccuracy, 
responsável pela precisão dos dados de localização que serão retornados, com uma das 
DESENVOLVIMENTO DE APP PARA IOS !30
constantes de precisão do CLLocation que abordamos anteriormentee a propriedade 
distanceFilter : CLLocationDistance, responsável pela distancia em metros em que a 
localização atual deve exceder, da ultima localização capturada, para receber uma nova 
atualização. 
Sempre trabalhe com a configuração mínima necessária para que seu aplicativo 
funcione bem. 
Para começar e parar o monitoramento da localização utilizamos os dois métodos a 
seguir: 
startUpdatingLocation() - Para inicia o monitoramento de atualizações na localização. 
stopUpdatingLocation() - Para parar o monitoramento de atualizações na localização. 
PS: Certifique-se de parar as atualizações quando seu aplicativo não for consumir as 
mudanças de localização. 
Por fim, o nosso método do delegate que captura os eventos de atualização de 
localização é: 
func locationManager(CLLocationManager, didUpdateLocations: [CLLocation]) 
Note que o didUpdateLocations é um Array de localizações e isso acontece porque 
mesmo com o seu dispositivo (celular ou tablet) em repouso ou tela bloqueada, o GPS 
pode continuar gravando a sua localização. Você não quer que o celular “acorde” e use 
ainda mais sua bateria toda vez que precisar gravar uma localização, você quer ele em 
repouso, mas que continue gravando por onde você andou. Em uma aplicativo de 
corrida ou de ciclismo por exemplo, queremos que o aplicativo monitore o percurso que 
o usuário fez, mas o celular não deve estar ativo com tela desbloqueada e aberto no 
aplicativo durante todo o percurso. 
Também existe a possibilidade de você monitorar somente mudanças de localização 
bem significativas, através dos métodos: 
startMonitoringSignificantLocationChanges() 
stopMonitoringSignificantLocationChanges() 
Essa “mudança significativa” não é bem definida, mas pense em mudanças de 
localização realizadas a nível de veículos e não caminhadas. São bem econômicas em 
DESENVOLVIMENTO DE APP PARA IOS !31
termos de bateria, mas não se esqueça de parar as atualizações quando seu aplicativo 
não for consumir as mudanças de localização. 
Existem ainda uma terceira forma de monitorar mudanças de localização que é por 
regiões, através dos métodos: 
startMonitoringForRegion(CLRegion) 
stopMonitoringForRegion(CLRegion) 
Nesse caso o método do delegate que captura os eventos de atualização muda, seguem: 
func locationManager(CLLocationManager, didEnterRegion: CLRegion) 
func locationManager(CLLocationManager, didExitRegion: CLRegion) 
No iOS 9 foi criada a possibilidade de você requisitar a sua localização atual apenas 
uma vez ao invés de ficar monitorando atualizações e isso é feito através do método: 
requestLocation() 
Nesse caso você só precisa definir o desiredAccuracy, chamar o método e capturar a 
localização no método do delegate (o mesmo método do startUpdatingLocation e do 
startMonitoringSignificantLocationChanges). 
Nota: Essa ultima forma só funciona no iOS 9.0 e posteriores. Você pode identificar se 
seu aplicativo está rodando no iOS 9 ou posterior da seguinte forma: 
if #available(iOS 9.0, * ) {} 

DESENVOLVIMENTO DE APP PARA IOS !32
Mapas 
É possível trabalhar com mapas no iOS e isso é feito através do MapKit. 
MapKit é um framework que fica com com a parte de interface do usuário (UI) e 
basicamente o que ele faz é mostrar um mapa. A classe responsável por gerenciar e 
mostrar o mapa é a MKMapView (Arraste o componente pra storyboard e em seguida 
“linke” com o ViewController através de um IBOutlet, como já fizemos anteriormente 
com a label do projeto “Hello World”) 
Importante, para trabalharmos com mapas precisamos importar o framework, então 
fazemos import MapKit no arquivo onde vamos usa-lo. 
Nesses mapas há os chamados Annotations, são pontos no mapas que guardam 
informações como coordenadas, um título e um sub-título. Annotations são mostrados 
usando a classe MKAnnotationView. No exemplo abaixo temos um Annotation sendo 
mostrado e representado por um pino, isso é possível através da sub-classe 
MKPinAnnotaionView. 
Annotations podem ter callouts. Por padrão callouts mostram somente o título e o sub-
título, porém também podem ter os chamados Accessory Views. Os callouts aparecem 
quando o AnnotationView é pressionado. 
DESENVOLVIMENTO DE APP PARA IOS !33
Na imagem acima temos um Callout com um accessory view na esquerda representado 
por uma UIImageView e um na direita representado por UIButton. 
Adicionamos e removemos um Annotation no mapa através dos métodos: 
addAnnotation(MKAnnotation) - Adiciona um Annotation 
addAnnotations([MKAnnotation]) - Adiciona um Array de Annotation 
removeAnnottation(MKAnnotation) - Remove um Annotation 
removeAnnottations([MKAnnotation]) - Remove um Array de Annotation 
Capturamos os Annotations existentes através da propriedade annotations : 
[MKAnnotation] da instancia do nosso mapa (outlet do tipo MKMapView que 
“linkamos” anteriormente). 
Quando tocamos em um Annotation um evento é disparado para um método especifico 
do delegate do MKMapView: 
func MapView(MKMapView, didSelectAnnotationView: MKAnnotationView) 
Isso pode ser bem útil para configurarmos o nosso Callout, fazendo um download da 
imagem necessária a ser mostrada, por exemplo. 
A seguir, alguma propriedades do MKMapView que podem ser úteis durante a 
configuração do seu mapa: 
mapType : MKMapType - Pode ser .Standart, .Satellite e . Hybrid 
showsUserLocation : Bool - Mostar ou não a localidade do usuário no mapa. 
DESENVOLVIMENTO DE APP PARA IOS !34
userLocationVisible : Bool - Se a localização atual do usuário está visível no mapa 
userLocation : MKUserLocation - Objeto Annotation que representa a localização 
atual do usuário. 
zoomEnabled : Bool - Se o usuário pode dar zoom no mapa. 
scrollEnabled : Bool - Se o usuário pode rolar o mapa. 
region : MKCoordinateRegion - A área atualmente mostrada no mapa. 
Há muito ainda do que se pode fazer com mapas, várias outras propriedades, métodos e 
eventos do delegate. Para não deixar o livro muito extenso para essa primeira versão, 
abordarei mais sobre mapas no meu canal do youtube. Então caso queira saber mais 
como trabalhar com o framework MapKit eu sugiro que se inscreva no meu canal do 
youtube (http://bit.ly/ytbookios), pois postarei aulas em video no canal sobre esse 
framework e mais. 

DESENVOLVIMENTO DE APP PARA IOS !35
Considerações Finais 
Chegamos ao fim do nosso estudo de desenvolvimento de aplicativos para iOS, 
analisando os principais assuntos de desenvolvimento para iniciantes. Obviamente não 
abordamos aqui tudo o que existe, pois precisaríamos de um livro de mais de 200 
páginas. O meu objetivo foi dar uma geral em assuntos básicos e importantes, capaz de 
dar a você uma base para que você possa compreender mais sobre desenvolvimento 
iOS. 
Se você aprender todos os pontos abordados no livro e tiver um pouco mais de estudo 
extra, certamente poderá desenvolver aplicativos profissionais. 
Talvez você tenha chegado até aqui sem ter absorvido todos os pontos. Não tem 
problema, na verdade, isso é o esperado. Você deve estudar com calma, sem ansiedade, 
colocando em prática cada ponto abordado. Se você apenas leu todas estas explicações, 
ao precisar trabalhar com algum desses pontos, com certeza lembrará que já estudou 
isso e então poderá revisar para então aprender de forma profunda. 
A minha sugestão é que você estude com calma, porém com um certa frequência, por 
exemplo, estudar algum assunto de desenvolvimento iOS uma vez por dia. Busque 
conteúdos complementares em livros, websites, videos e também se inscreva no meu 
canal do youtube (http://bit.ly/ytbookios), pois lá postarei aulas sempre atualizadas e 
em videos sobre desenvolvimento iOS. 
Muito obrigado pela sua leitura e espero que vocêrealmente esteja disposto a dar o 
próximo passo em seu aprendizado. 
Nos vemos em breve! 
Filipe Torres 
CongressodeMobile.com.br
DESENVOLVIMENTO DE APP PARA IOS !36

Outros materiais