Pessoal, andei desenvolvendo uma apostila para um treinamento de desenvolvimento para iPhone que ministrei para uma empresa. Neste treinamento, eu sugiro alguns exercícios para que vocês possam praticar Como todos da empresa gostaram do treinamento, resolvi disponibilizar o treinamento aqui no blog, espero que aproveitem e qualquer comentário sempre será bem vindo.
Introduzindo o SDK
Bom, vamos iniciar o nosso treinamento. Primeiramente vamos entender quais são os pré-requisitos para desenvolver uma aplicação para o iPhone. O primeiro e mais importante é possuir o Apple’s iPhone Software Developer Kit (SDK). Sem este SDK, é impossível desenvolver uma aplicação para o iPhone, pois ele contém todas as diretrizes de funcionamento para a plataforma. E aonde podemos encontrar este SDK. Para fazermos o download deste SDK acessamos: http://developer.apple.com/iphone, e acredite, existem coisas importantes que são de graça, esta é uma delas.
Outro pré-requisito que é muito importante é conhecer alguma linguagem de programação de preferência Objective-C (ObjC para os mais íntimos), ou C, ou C++. Se você não conhece nenhuma linguagem de programação, você terá um pouco mais de dificuldade em compreender, mas nada que um esforço dobrado não resolva.
Ambiente de Desenvolvimento
Para desenvolver uma aplicação usaremos as seguintes ferramentas:
. XCode - Esta é a mais importante ferramenta no desenvolvimento para iPhone, pois ela fornece uma amigável interface de desenvolvimento para o usuário, contemplando documentação e modo de debug
. Simulador - É aonde vamos executar nossos projetos antes de colocá-los no aparelho. O simulador do iPhone é bem completo e podemos encontrar vários problemas de código antes de instalar no aparelho
. Interface Builder - Este é a ferramenta que vai nos ajudar no design dos nossos projetos. Esta ferramenta interage diretamente com o XCode e seu funcionamento é bem intuítivo.
Exceto o Simulador, as demais ferramentas já estão instaladas no seu MAC OS X, e elas também vieram gratuitamente na sua máquina, já o Simulador, vem com a instalação do SDK que descrevemos brevemente acima.
Montando Projetos
Vamos montar o nosso primeiro projeto, que será um projeto bem simples e que irá servir para você começar entender o funcionamento de um projeto. Vamos iniciar abrindo o XCode. Claro que estamos partindo do princípio que já fizemos a instalação do SDK. Quando abrir o XCode após a instalação do SDK teremos a seguinte tela:

Observem que agora temos um painel que introduz o XCode. Neste painel temos links para vídeos, exemplos de código e bibliotecas do iPhone. Eu considero uma ótima referência para estudar a plataforma. Pesquisem estes links, aprendi e ainda aprendo muito com eles.
Você vai perceber também que existe um link para Apply to the iPhone Developer Program. O que é este programa? Se você deseja desenvolver comercialmente para iPhone, você vai precisar colocar o seu projeto no aparelho, e só existem duas maneiras de fazer isso, ou através de uma distribuição AdHoc, ou através da Apple Store. Mais adiante falarei destas duas distribuições, porém para fazer qualquer uma das duas, você precisa fazer parte deste programa, no site da Apple você encontra os preços e as modalidades deste programa. Caso queira apenas aprender desenvolver, não precisa entrar para nenhum programa, basta usar o simulador para testar as suas idéias.
Mas vamos ao que interessa, feche este painel e vá até o menu File e escolha New Project, você terá a seguinte tela:

Observe que temos 6 templates de projetos para iPhone, vamos escolher o template Utility Application e depois vamos selecionar a opção Choose do lado direito do painel de templates. Assim que você pressionar o botão Choose, o XCode ira solicitar que você batize o seu projeto. Vamos chamar este primeiro projeto de Projeto1.
Entendendo a Área de Trabalho
Vamos começar entendendo nossa área de trabalho. Observe o painel do lado esquerdo da janela do XCode.

Objective-C
Como disse anteriormente, a linguagem de desenvolvimento para iPhone é a Objective-C, ou ObjC. Esta linguagem é um superset da poderosa linguagem C, os comandos básicos advém desta linguagem, porém ObjC é uma linguagem orientada à objetos (OOP). Caso você não saiba o que é uma linguagem orientada à objetos, recomendo procurar uma literatura para compreender melhor, não entender o que isso significa pode comprometer o bom entendimento deste curso. Como ObjC é uma evolução da linguagem C, absorveu todas estruturas primárias de sua antecessora. Se você conhece a linguagem C, achará muito familiar na estrutura demonstrada anteriormente nos arquivos com extensão “.h”. Arquivos com estas extensões são chamados de header (como no C), a diferença está nos seu par, enquanto no C seu par tem extensão “.c”, no ObjC o seu par tem extensão “.m”. Observe, por exemplo, MainView.h e MainView.m. No arquivo header possuímos todas as declarações de variáveis e funções que serão implementadas no arquivo com extensão “.m”. Será um bom execício de observação, verificar os conteúdos de cada arquivo “.h” e “.m” correspondente.
Uma pergunta muito comum quando começamos desenvolver para iPhone, é tentar saber se existe outra linguagem para o desenvolvimento de aplicações nativas. A resposta é não. A Apple disponibilizou somente o ObjC no SDK. Você pode desenvolver uma página web para iPhone, ai você usa outra linguagem, porém por não ser uma aplicação nativa, você perde muitas funcionalidades nativas do aparelho.
Executando o Projeto
Como já vimos, montar um projeto foi bem tranqüilo. Agora vamos executar o projeto. Com o Projeto1 aberto, vamos compilar o projeto e verificar se existem erros no projeto. De um click no botão Build que fica na parte alta, ou vá até o menu Build e escolha Build, ou ainda tecle command+B.

Claro, não vai dar erro algum, quem montou este código foi o próprio XCode, não tem erro e já poderemos executar o programa no simulador.
Para executar a aplicação no simulador, podemos executar clicando no botão Build and Go, ou vá até o menu Build e selecione Build and Run, ou ainda tecle command+R.

Observe que o XCode compila o código novamente, este é um comportamento esperado de todo ambiente de desenvolvimento, primeiro compila e depois executa. Quando o XCode executa o simulador, ele está na verdade chamando outro programa, ou seja, o simulador deve ser encerrado quando acabarmos de observar o código. Veremos também que será possível fazer Debug do nosso código. Quem ainda não é um desenvolvedor, deve estar se perguntando o que é um Debug. Quando um desenvolvedor disser que está “debugando” um código, ele quer dizer que está executando um código e ao mesmo tempo está verificando qual linha de código está sendo executada. Quando queremos fazer um Debug de um código, colocamos um breakpoint no código, e quando o simulador passar por esta linha, ele para a execução para que possamos verificar se o conteúdo de todas as variáveis estão de acordo com que estávamos imaginando, e se os caminhos que imaginamos que o simulador ia seguir está de fato sendo seguido. Usa-se muito esta funcionalidade de Debug para localizar erros de um código, pois é sem dúvida a melhor maneira de encontrá-los.
Porém, antes de aprendermos mexer com o Debug, vamos observar o simulador funcionando.
Como podemos observar, o simulador é uma cópia fiel de um iPhone. Com o simulador temos a possibilidade de efetuar quase todas as funcionalidades que um aparelho como o iPhone possui.
Assim que o simulador estiver funcionando, vamos pressionar o ícone “i”. Veremos a tela efetuar uma efeito chamado de flipview (figura 05). Depois de efetuar o efeito, teremos outra tela disponível, se você pressionar o botão Done, teremos novamente o efeito flipview e voltaremos para a tela principal da nossa aplicação. Antes de fecharmos o simulador, vamos fazer uma rotação do iPhone.
Para efetuar a rotação do iPhone, de um click na opção Hardware e depois selecione Rotate Right. Pronto conseguimos simular a rotação do iPhone. Como podemos observar é possível simular a rotação do iPhone, veremos um pouco mais adiante como podemos modificar o comportamento da nossa aplicação de acordo com a rotação do aparelho.
Pronto, vamos terminar a nossa primeira incursão no simulador, para fecha-lo vá até o menu iPhone Simulator e escolha a opção Quit.
Breakpoint, Run e Debug
Como dito anteriormente, usamos o Debug quando queremos localizar um comportamento não esperado da nossa aplicação. Para podermos trabalhar corretamente com o Debug, temos que inicialmente incluir um breakpoint no nosso código. O que vem a ser este breakpoint. Como o próprio nome diz, é um ponto onde queremos que a execução da aplicação pare. Quando o simulador encontra um breakpoint, ele suspende a execução da aplicação, sem encerrá-la, e permite o acesso ao conteúdo das variáveis naquele momento do código.

De um click no arquivo RootViewController.m, do lado direito vai aparecer o código que este arquivo contém. Perceba que este código é numerado, e para inserir um breakpoint, nós vamos dar um click em cima do número da linha que desejamo que o simulador pare, no caso mostrado na figura 07, foi executado um click em cima da linha 25. Quando inserimos um breakpoint, a linha fica com uma seta azul. Para remover um breakpoint, click novamente em cima da linha, mas com o botão control pressionado, irá aparecer um menu popup com uma opção para remover breakpoint.
Mas antes de remover vamos executar o simulador com este breakpoint ativo. Basta dar um click no botão Build and Go.
Assim que você executar o simulador através do botão Build and Go, o simulador será executado, e antes que possa aparecer algo na tela do simulador, ele volta para o ambiente do XCode e naquele breakpoint que colocamos na linha 25, agora temos uma seta vermelha. Isto ocorreu, porque no momento que o simulador foi executar esta linha, ele encontrou um breakpoint, e com isso ele suspendeu a execução do código e retornou para o XCode.
A primeira coisa que aprendemos, (sim, já aprendemos algo agora) é que antes de exibir o conteúdo de uma tela, a função viewDidLoad é carregada primeiro. Repare que antes de exibir qualquer coisa, o simulador tentou passar pela linha 25, que faz parte desta função. Primeira lição, se você deseja que a sua aplicação execute algo algo de extrema importância antes de sair executando qualquer tela, a função viewDidLoad é um bom local para colocar este código. Veremos mais para frente o que podemos fazer, mas é bom já ir prestando atenção neste comportamento.
Eu disse antes que quando estamos “debugando”, podemos conferir o conteúdo das variáveis que estamos usando. No momento que o simulador volta para o XCode é o momento ideal para validarmos estes conteúdos.
Para checarmos estes conteúdos, vamos clicar no menu Run e selecionar a opção Debugger.
Vamos observar que uma nova janela aparece, e nela podemos validar o conteúdo de variáveis, do lado direito da janela temos 3 colunas, a primeira variable, a segunda value e a terceira summary. Como nosso bom inglês já explicou, na coluna value teremos o conteúdo da variável neste exato momento que o simulador suspendeu a execução da aplicação e retornou para o XCode.
Com isso terminamos nosso primeiro capítulo. Ainda não colocamos nenhum código no projeto, mas já tivemos o primeiro contato com o ambiente de programação, já vimos como usar o simulador e até como efetuarmos um Debug no código. Vamos agora consolidar nossos conhecimentos, para poder ir mais adiante. Vamos aos exercícios!
Exercícios
- O que encontramos na pasta Resource de um projeto iPhone?
- Quais os comandos procedimentos para fazer a rotação do aparelho no simulador?
- Qual é uma das primeiras funções (métodos) executados no momento que um código do iPhone é executado?
- Defina breakpoint e Debug.
- Crie um projeto do tipo Utility, chamado iPhoneHello. Execute o projeto e veja o conteúdo da variável $st6.
(by Ademar Varela)