15
Novatec Ricardo R. Lecheta Desenvolvendo para iPhone e iPad

Desenvolvendo Para iPhone e iPad - Cap. 1

Embed Size (px)

DESCRIPTION

O sistema operacional iOS da Apple se destaca como uma das principais plataformas de desenvolvimento mobile do mercado, pois é uma das preferidas pelos usuários e desenvolvedores. Uma característica do iOS é sua única e exclusiva integração com o hardware da Apple, famosa por desenvolver bons conjuntos de hardware, o que garante ao sistema um ótimo desempenho geral do sistema.

Citation preview

  • Novatec

    Ricardo R. Lecheta

    Desenvolvendo para iPhone e iPad

  • Copyright 2012 Novatec Editora Ltda.

    Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. proibida a reproduo desta obra, mesmo parcial, por qualquer processo, sem prvia autorizao, por escrito, do autor e da Editora.

    Editor: Rubens PratesReviso gramatical: Marta Almeida de SEditorao eletrnica: Carolina KuwabataCapa: Luciane Mori/Carolina Kuwabata

    ISBN: 978-85-7522-303-1

    Histrico de impresses:

    Maro/2013 Primeira reimpressoNovembro/2012 Primeira edio

    Novatec Editora Ltda.Rua Lus Antnio dos Santos 11002460-000 So Paulo, SP BrasilTel.: +55 11 2959-6529Fax: +55 11 2950-8869E-mail: [email protected]: novatec.com.brTwitter: twitter.com/novateceditoraFacebook: facebook.com/novatecLinkedIn: linkedin.com/in/novatec

    VC20121121

  • 21

    CAPTULO 1Introduo

    1.1 IntroduoO sistema operacional iOS da Apple se destaca como uma das principais plataformas de desenvolvimento mobile do mercado, pois uma das preferidas pelos usurios e desenvolvedores. Uma caracterstica do iOS sua nica e exclusiva integrao com o hardware da Apple, famosa por desenvolver bons conjuntos de hardware, o que garante ao sistema um timo desempenho geral do sistema.

    A primeira verso do iPhone foi lanada em 2007, durante o WWDC (Apple Worldwide Developers Conference), que o evento para desenvolvedores organizado pela Apple. Mas o SDK para desenvolvimento de aplicativos foi anunciado somente no ano seguinte, em 2008, junto com a abertura da App Store, a loja que facilita o processo de distribuio de aplicativos pelo mundo.

    J no primeiro ano, o iPhone impressionou com sua tela multitouch e com tima sensibilidade, e tambm pela forma como todos os seus recursos eram integrados, como acelermetro, cmera, GPS, internet, servios e muito mais, e desde o seu lana-mento at os dias atuais ele tem sido alvo das atenes da mdia, de desenvolvedores e empresas do mundo inteiro.

    Contudo o que realmente impulsionou o desenvolvimento de aplicativos foi a App Store, mais uma grande ideia de Steve Jobs, permitindo que aplicativos fossem distri-budos e instalados facilmente em qualquer aparelho, e ainda com uma proposta de remunerao aos desenvolvedores, o que causou uma grande revoluo no mercado.

    & Steven Paul Jobs nasceu em So Francisco, na Califrnia, em 24 de fevereiro de 1955, faleceu em 5 de outubro de 2011. Ele foi um inventor e um verdadeiro artista da tecnologia, sempre revolucionando e nunca desistindo de seus sonhos e objetivos. Suas criaes influenciaram a vida de pessoas no mundo inteiro, e a Apple Inc criada por ele se tornou a empresa mais valiosa do mercado. Se voc est lendo este livro, provavelmente deve conhecer sua histria.

  • Desenvolvendo para iPhone e iPad22

    Se voc est lendo este livro deve conhecer o iPhone, o iPad e a Apple TV, assim como as criaes de Steve Jobs. O que podemos fazer agora estudar a tecnologia que ele criou e desenvolver aplicativos que sero utilizados por pessoas no mundo inteiro, desde utilitrios, jogos, aplicativos financeiros, de entretenimento, esportes, notcias, redes sociais, sade, educao e muitos outros. Seja qual for o objetivo de seu aplica-tivo, defina como meta um timo design, pois, segundo Jobs, esse um dos aspectos mais importante de um software.

    1.2 A linguagem Objective-CA linguagem de programao utilizada para o desenvolvimento de aplicativos para o iOS a Objective-C, que foi criada com base na sintaxe da linguagem C ANSI e nos conceitos do Smalltalk, uma das primeiras linguagens orientadas a objetos, e, portanto, possui todos os recursos para usufruir deste paradigma.

    Alm disso, o Objective-C traz recursos encontrados em linguagens que possuem um paradigma funcional, como, por exemplo, passar funes como parmetro para funes; tudo isso vamos estudar no livro.

    & A linguagem Objective-C popularmente chamada de Objective C ou apenas ObjC / Obj-C, e sua sintaxe baseada na linguagem C ANSI.

    No captulo 2, vamos estudar a histria dessa linguagem e aprender sua sintaxe utilizando muitos exemplos de cdigo, desde como declarar variveis, imprimir mensagens de logs, criar classes e objetos, atributos, mtodos, interfaces (protocolos), herana, at descobrirmos como funciona o gerenciamento de memria, conhecido como contador de referncias.

    1.3 Frameworks Foundation e Cocoa TouchEmbora a linguagem de programao utilizada para desenvolver para iOS seja a Objective-C, foram criados alguns frameworks para deixar o desenvolvimento mais produtivo. O primeiro deles o Foundation, que contm um conjunto de classes escritas em Objective-C para tornar o desenvolvimento de aplicaes mais simples e rpido. Algumas dessas classes so NSObject, NSString, NSDate, NSNumber, NSArray, NSDictionary, NSURL, e muitas outras, e basicamente elas facilitam o trabalho do dia a dia.

    Em cima desse conjunto de classes foi criado o framework Cocoa Touch, que bem integrado ao ambiente de desenvolvimento do Xcode e facilita a utilizao de recursos de multimdia, networking, persistncia, animaes e muitos outros, escondendo a complexidade desses assuntos do desenvolvedor.

  • 23Captulo 1 Introduo

    O Cocoa Touch baseado no padro MVC (Model View Controller), e nele a camada de View criada utilizando-se o Interface Builder, que permite desenhar a tela no editor visual. A camada de controller so as classes filhas de UIViewController, e basicamente so elas que vo definir o ciclo de vida das telas, tratar os eventos do usurio, con-trolar a navegao do aplicativo e, claro, interagir com a camada Model, que possui as classes e os objetos responsveis pela lgica de negcios da aplicao. A figura 1.1 exibe um diagrama do modelo MVC utilizado pelo Cocoa Touch.

    Figura 1.1 Framework Cocoa Touch MVC.

    1.4 XcodeO Xcode o IDE (ambiente de desenvolvimento) oficial da Apple, e vamos utiliz-lo durante todo o livro para desenvolver os projetos. Para instalar o Xcode, acesse a sua pgina oficial em https://developer.apple.com/Xcode/, que podemos visualizar na figura 1.2.

    Para prosseguir com a instalao, clique no boto View in Mac App Store, que vai abrir o Xcode na loja da Apple diretamente de seu Mac, o que vai permitir que voc faa o download dessa incrvel ferramenta de desenvolvimento.

    Uma das vantagens de se baixar os softwares pela Mac App Store a facilidade de atualizao, pois voc receber notificaes sempre que existir uma nova verso disponvel.

    A figura 1.3 exibe a pgina da Mac App Store, com o Xcode disponvel para download. Como no meu caso a ferramenta j est instalada, apareceu no canto esquerdo um boto atualizar, mas se for a primeira vez que voc est acessando a loja, ser exibida a opo para baixar e instalar o software.

  • Desenvolvendo para iPhone e iPad24

    Figura 1.2 Site do Xcode.

    Figura 1.3 Xcode na Apple App Store.

  • 25Captulo 1 Introduo

    Depois de instalar, voc pode executar o Xcode normalmente. A figura 1.4 exibe a tela de abertura do Xcode, que permite criar novos projetos ou abrir os mais recentes que esto em desenvolvimento.

    & Lembre-se de que para instalar o Xcode necessrio ter um computador com MacOS.

    Figura 1.4 Tela inicial do Xcode.

    1.5 Criando um projeto no XcodePara validar a instalao do Xcode interessante criar um projeto simples e execut--lo no simulador do iPhone ou iPad. Como existem templates para a criao de projetos, podemos simplesmente escolher um para validar a instalao do ambiente de desenvolvimento.

    Ento, mos a obra! Na tela inicial do Xcode, clique no link Create a new Xcode project ou acesse o menu File > New > Project > iOS > Application para abrir o wizard. Depois selecione o template Single View Application conforme a figura 1.5, que vai criar um projeto com uma simples tela vazia, que podemos executar no simulador.

    Na prxima tela, digite o nome do projeto, como, por exemplo, BemVindo, e selecione no combo Devices a opo Universal, que indica que voc est criando um projeto com-patvel com iPhone e iPad ao mesmo tempo, conforme a figura 1.6.

    Feito isso, prossiga com o wizard e escolha um diretrio para salvar o projeto. Quando o wizard finalizar a criao do projeto, ele ser automaticamente aberto no Xcode.

  • Desenvolvendo para iPhone e iPad26

    Figura 1.5 Wizard para criar projeto.

    & No wizard de criao do projeto, demonstrado na figura 1.6, no selecione os checkboxes Use Storyboards e Use Automatic Reference Counting. Vamos estudar estes itens mais tarde.

    Figura 1.6 Criando o projeto.

    Nos prximos captulos, vamos verificar em detalhes os arquivos gerados pelo wizard e toda a estrutura do projeto, mas nesse momento nosso objetivo simplesmente execut--lo no simulador do iPhone para validar a instalao do ambiente de desenvolvimento.

  • 27Captulo 1 Introduo

    No entanto, para dar uma leve introduo em alguns conceitos bsicos, abra o arquivo AppDelegate.m no editor para visualizar o cdigo-fonte. A classe AppDelegate gerada pelo wizard o ponto de partida da aplicao, e ela que decide qual a primeira tela que ser exibida para o usurio.

    AppDelegate.m

    . . .

    - (BOOL)application:(UIApplication *)application

    didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];

    if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {

    // iPhone

    self.viewController = [[[ViewController alloc]

    initWithNibName:@"ViewController_iPhone" bundle:nil] autorelease];

    } else {

    // iPad

    self.viewController = [[[ViewController alloc]

    initWithNibName:@"ViewController_iPad" bundle:nil] autorelease];

    }

    self.window.rootViewController = self.viewController;

    [self.window makeKeyAndVisible];

    return YES;

    }

    Este cdigo est criando uma instncia da classe ViewController, que uma subclasse de UIViewController, e configurando-a como a classe responsvel por exibir a primeira tela para o usurio. Note que no cdigo tambm existe um teste para validar o tipo do aparelho. No bloco do if, comparado se o aparelho um iPhone, para abrir a tela com o arquivo de interface ViewController_iPhone.xib; caso contrrio, se for iPad, o arquivo ViewController_iPad.xib ser utilizado.

    Basicamente assim que funciona o desenvolvimento para iOS. Cada tela do aplicativo representada por uma subclasse de UIViewController, que por sua vez responsvel por exibir a tela para o usurio e tratar os seus eventos. O interessante que a interface da tela desenhada visualmente nos arquivos xib.

    Para brincarmos um pouco, clique no arquivo ViewController_iPhone.xib para abrir o editor visual do Interface Builder, o que vai permitir arrastar e soltar os componentes para a tela.

    Para fazer um simples teste, arraste um componente label para o editor, conforme a figura 1.7. Depois disso, clique sobre o label e altere o texto para Ol iPhone.

  • Desenvolvendo para iPhone e iPad28

    Figura 1.7 Adicionando um label no editor visual.

    Feito isso, voc tambm pode editar o arquivo ViewController_iPad.xib, que o arquivo de interface utilizado para o iPad, e inserir um label com o texto Ol iPad da mesma maneira. Depois de inserir esse label no arquivo de interface, vamos executar o projeto no simulador do iPhone ou iPad e conferir o resultado.

    Para isso, selecione a opo iPhone Simulator no combo localizado na parte superior esquerda do Xcode, conforme demonstrado na figura 1.8. Logo em seguida, clique no boto Run para executar o projeto. Se preferir, pode utilizar o atalho de teclado command + R para executar o simulador selecionado automaticamente.

    Figura 1.8 Executando o projeto no simulador.

  • 29Captulo 1 Introduo

    Ao executar o projeto no simulador do iPhone, a interface que foi desenhada no arquivo ViewController_iPhone.xib ser exibida na tela, conforme a figura 1.9.

    Figura 1.9 Simulador do iPhone.

    Depois disso, faa um teste e execute o projeto tambm no simulador do iPad, que vai exibir a interface desenhada no arquivo ViewController_iPad.xib. Note que esses dois arquivos xib foram gerados pelo projeto, pois marcamos a opo Universal ao utilizar o wizard; caso contrrio, apenas um arquivo xib teria sido criado. Note tambm que a mesma classe de view controller foi utilizada, mas com arquivos de interface distintos, o que nos permite customizar a interface para diferentes aparelhos, mas reutilizando a lgica definida na classe do view controller.

    Voc tambm pode verificar que no combo que escolhemos os aparelhos existe a opo iOS Device, que utilizada para executar o projeto diretamente no aparelho real que est conectado na USB. Mas essa configurao do aparelho um pouco chata de fazer e vamos deixar este assunto para o captulo 20, pois temos muito que aprender at l.

    Se voc conseguiu criar o projeto e executar o simulador do iPhone ou iPad, parabns, pois todo o ambiente est funcionando perfeitamente e poderemos aprofundar os conceitos nos prximos captulos.

  • Desenvolvendo para iPhone e iPad30

    1.6 Projeto dos carrosOs primeiros captulos do livro vo lhe ensinar a linguagem Objective-C e os conceitos principais do desenvolvimento para iPhone, sempre com exemplos simples, mas com o objetivo de fornecer uma boa base para prosseguir com a leitura do livro.

    Antes de iniciar o projeto dos carros, voc j ter aprendido a linguagem Objective-C e os principais conceitos sobre o desenvolvimento de aplicativos para iOS, como telas e formulrios, alguns componentes visuais e vrias maneiras de navegar de uma tela para outra, dependendo da sua necessidade.

    Depois de aprender os conceitos fundamentais, voc estar apto a iniciar o proje-to, que vamos desenvolver juntos, passo a passo, durante todo o livro. Este projeto possui muitas caractersticas encontradas em aplicativos comerciais, como diversos componentes visuais, controle de telas na vertical e horizontal, integrao com web services, XML e JSON, banco de dados e arquivos, recursos de multimdia, mapas e GPS e muitos outros, e adotei esse projeto como forma de ensino porque acredito que a melhor maneira de aprender aprender fazendo.

    muito mais divertido do que fazer um projeto hello world em cada captulo, pois aqui a coisa vai ficar bem mais sria e diversos problemas surgiro durante o desen-volvimento do projeto, e nossa finalidade discutir sempre boas prticas e tcnicas de design para solucionar problemas comuns durante a construo de um aplicativo.

    A figura 1.10 exibe algumas telas do aplicativo executando no simulador do iPhone.

    Figura 1.10 Aplicativo dos carros para iPhone.

  • 31Captulo 1 Introduo

    Muitos temas interessantes foram incorporados no projeto, como a parte de mapas e multimdia. Por exemplo, na tela de detalhes do carro, podemos escolher para visu-alizar no mapa o local da fbrica do carro, conforme a figura 1.11.

    Figura 1.11 Mapa no modo satlite.

    s vezes, alguns conceitos ficam fora do escopo do projeto dos carros, mas sempre que isso acontece um projeto separado criado para explicar toda a teoria necessria. Por exemplo, neste captulo dos mapas tambm explicado detalhadamente como monitorar o GPS do aparelho.

    Na tela de detalhes do carro, tambm podemos assistir ao vdeo de cada modelo, conforme est na figura 1.12. Este captulo de multimdia outro que aguarda muitas surpresas alm do projeto, como reproduo e gravao de udio, acesso galeria de fotos do iPhone e como utilizar a cmera pelo aplicativo para tirar fotos.

    Depois de concluir a verso para iPhone, vamos estudar os principais componentes utilizados para iPad e deixar o aplicativo dos carros universal para funcionar no iPhone e no iPad, conforme mostra a figura 1.13.

  • Desenvolvendo para iPhone e iPad32

    Figura 1.12 Vdeo de cada carro.

    Figura 1.13 Aplicativo dos carros para iPad.

    Vale ressaltar que todos os dados necessrios para o aplicativo funcionar, como as informaes dos carros, as fotos e os vdeos, sero retornados do servidor por meio de um web service.

  • 33Captulo 1 Introduo

    // Carros clssicos (XML e JSON)

    http://www.livroiphone.com.br/carros/carros_classicos.xml

    http://www.livroiphone.com.br/carros/carros_classicos.json

    // Carros esportivos (XML e JSON)

    http://www.livroiphone.com.br/carros/carros_esportivos.xml

    http://www.livroiphone.com.br/carros/carros_esportivos.json

    // Carros de luxo (XML e JSON)

    http://www.livroiphone.com.br/carros/carros_luxo.xml

    http://www.livroiphone.com.br/carros/carros_luxo.json

    Mas, antes de iniciar este projeto, temos muito que aprender; ento ns daremos um passo de cada vez.

    No prximo captulo, vamos estudar os fundamentos da linguagem Objective-C, e nos captulos 3, 4 e 5, vamos aprender o bsico sobre o desenvolvimento de aplicativos para iOS, para iniciar o projeto dos carros somente no captulo 6.

    1.7 Links teisNo prximo captulo, vamos estudar a linguagem Objective-C, e a partir de agora, durante sua vida como desenvolvedor de aplicativos para iOS, voc precisa ter alguns links em seus favoritos, que vo lhe auxiliar durante a sua jornada.

    Seguem algumas pginas que voc precisa ter sempre em mos:

    iOS Dev Center Neste portal voc vai encontrar diversas informaes sobre o desenvolvimento de aplicativos.

    https://developer.apple.com/devcenter/ios/

    Documentao das classes do iOS Nesta pgina, podemos consultar a documentao das classes do iOS e tambm diversos exemplos sobre os mais variados temas.

    https://developer.apple.com/library/ios/navigation/

    Pgina do WWDC O WWDC (Apple Worldwide Developers Conference) o evento oficial para desenvolvedores, organizado anualmente pela Apple, e sempre traz as novas tendncias, tecnologias e as novidades e os lanamentos sobre MacOS e iOS.

    https://developer.apple.com/wwdc/

    Pgina do livro Visite a pgina do livro para obter o cdigo-fonte dos exemplos e mais detalhes sobre esta e outras obras.

    http://www.livroiphone.com.br