Desenvolvimento Para Iphone

Introdução

iphone-3g.jpg

Para entender melhor como desenvolver para iPhone, é necessário primeiramente falar do ambiente de desenvolvimento. Para quem quer programar para Iphone é preciso passar pelo primeiro problema, o qual está relacionado ao SDK (Software Development Kit). A Apple só disponibilizou esse kit de desenvolvimento para software do seu Iphone, para o sistema MACOSX. Não se tem até hoje o SDK para ser rodado no Windows. Hoje só é possível devido a alguns Hackers que burlaram o sistema operacional MACOSX, e conseguiram dar, seja de forma direta ou indiretamente, oportunidades às pessoas que não tinham dinheiro para comprar uma máquina MAC, que por incrível que pareça soma 95% dos usuários do Brasil. O SDK tem ferramentas que melhoram o funcionamento de aplicativos, ambiente de programação chamado Xcode, editor de interfaces, simulador de iPhone.
Abaixo tem-se a explicação de cada um dessas ferramentas:

Xcode-> Ela fornece uma interface bastante simples para o usuário, tendo documentação e modo de debug. É uma das mais importantes ferramentas.

Simulador-> É onde os projetos são executados antes de serem infiltrados no dispositivo. Este simulador é bem completo e normalmente encontra vários problemas com os códigos, quando este é executado.

Interface Builder-> Esta ferramenta interage de forma direta com o Xcode e ajuda no design dos projetos.

Ao desenvolver um programa, é preciso ficar bastante atento para que o aplicativo tenha um ótimo funcionamento e que não venha prejudicar o desempenho do iPhone. É importante ressaltar que não adianta fazer versões móbile genéricas que não vai funcionar com o Iphone. Toda forma que venha a desenvolver vai ser diferente. Quando foca a experiência do usuário percebe-se que é algo raro em desenvolvimento para aparelhos móveis. Por essas questões desenvolver para iPhone é algo novo.

O Programa de Desenvolvimento da Apple:

A Apple disponibiliza diferentes tipos de conta para os programadores. Isso varia de acordo com a necessidade.
Gratuita-> Aqui tem acesso às ferramentas de desenvolvimento e ao SDK, com isso, não vai poder fazer a publicação e nem distribuir o conteúdo que foi desenvolvido.
Para que isso ocorra é necessário uma das contas abaixo:
Standard-> Este tipo de conta custa US$99,00 por ano e podem distribuir os aplicativos na App-Store. Essa conta tem as mesmas ferramentas da conta gratuita e assistência de desenvovimento da Apple.
Enterprise-> Este tipo de conta custam US$299,00 por ano e não podem distribuir aplicativos na App-Store. Essa conta pode fazer a geração de aplicativos que podem ser usados localmente (dentro da empresa), não sendo necessário que estejam registrados como iPhone para desenvolvimento.

iPhone OS

O iPhone OS possui um framework que é dividido em quatro camadas. Cada camada possui vários frameworks que podem ser acessados ao se escrever programas no iPhone SDK.

camadasiphoneos.jpg

Cocoa Touch -> Nesta camada encontramos o framework UIKit que inclui suporte a “Window”, eventos e gerenciamento de interface de usuário, permitindo também a criação de textos e páginas da web.
Média -> É onde se pode acessar protocolos de áudio e vídeo presentes no iPhone. Estão presentes quatros tecnologias gráficas: OpenGL ES, EAGL, qurtzo e o Core Animation.
Core Service -> Inclui os vários frameworks utilizados nas aplicações e também o critical foundation framework, que possui as principais definições de dados orientados a objetos da Apple.
Core OS -> Onde se localiza o kernel-level software e acesso as threading, rede, I/O, memória e arquivos.

A partir desses frameworks é possível acessar as classes que são apresentadas em forma de hierarquia. Algumas das classes disponível dentre várias outras pode ser visualizada na figura que se segue. É possível observar que os objetos de maior usabilidade é dividido em duas categorias.

classesiphoneos.jpg

As classes NS possuem um grande número de dados e outros objetos. É aconselhável usar as classes fundamentais do Cocoa sempre que for possível, pois são menos prováveis de se encontrar erros já que se dão bem entre si e com o UIKit.
As classes UI vem do Cocoa Touch e do UIKit. Incluem os objetos gráficos usados e todas as funcionalidades do iPhone OS event model.
As Window e Views demonstram a idéia de interface gráfica enraizada no conceito do iPhone OS. O Window é a parte que ocupa toda a tela, é a janela maior que contêm todas as outras. O View é o conteúdo real a ser mostrado na janela. O View controller é o controlador do MVC e gerenciador das telas cheias.

iphoneosiphone.jpg

LP(Linguagem de Programação) usada no desenvolvimento para iPhone

A principal LP usada no desenvolvimento para iPhone é o Objective-C, que é uma LP orientada a objeto oriunda do C. Essa LP foi criada no início da década de 80 por Brad Cox e Tom Love. Sua popularização se deu quando Steve Jobs da Apple licenciou o Obejctive-C através da NeXT, liberando uma versão própria do compilador e das bibliotecas que eram baseadas a interface de usuário e da estrutura NeXTstep
O Obective-C é uma camada muito fina que se constitui num superconjunto escrito do C, o que torna possível compilar qualquer programa escrito em C num compilador Objective-C.
No entanto é possível desenvolver para iPhone a partir de outra LP como é o caso do Python. Linguagem de alto nível que é, interpretada, interativa e orientada a objeto de tipo dinâmico e forte. Ela enfatiza a legibilidade, combinando sintaxe concisa e clara através de recursos de sua biblioteca padrão, por módulos e frameworks desenvolvidos por terceiros.

Móbile Safari

É um browser (navegador) desenvolvido pela Apple para uso no iPhone. Sua construção foi pensada para prover agilidade, robustez, buscando certa interação com o usuário.
Para ter tais características, o Móbile Safari foi construído a partir do Safari (navegador utilizado nas versões para Desktop), tendo uma grande quantidade de padrões WEB que este suporta, tais como, segundo o site (http://www.tableless.com.br/o-safari-para-iphone):

HMTML 4.01
HTML 5
XHTML 1.0
CSS 2.1
Parte do CSS 3
Javascript 1.4
Ajax
DOM

O uso de tais padrões ajuda na navegação final por parte do usuário, pois este, quase nunca precisa se importar com arquivos visualizados e/ou baixados na internet, obtendo uma ótima resposta do browser na execução de scripts, páginas e até flash (usando, por exemplo, o aplicativo iTransmogrify).

mobile_safari_me_main_screen.jpg

Embora suporte tecnologias mais recentes, o iPhone, por ser um dispositivo móvel e de processamento menor que um computador pessoal, possui algumas restrições referentes ao uso de alguns recursos.
Em relação ao uso de códigos, ele suporta até 10mb para arquivos do tipo Java e XML, tempo limitado de execução do Java script de 10 segundos, até 8 documentos abertos e limite de alocação de Java script a 10mb.
Em relação ao uso de imagens, o limite para imagens do tipo GIF, PNG e TIFF é de 2MB, já para JPGs o limite máximo é de 32MP utilizando o SubSampling. GIFs animados só são exibidos por completos se menores a 2MP, caso contrário só será exibido o primeiro frame.

Relação com Compiladores

No desenvolvimento para iphone pode-se ter independência da máquina objeto , ou seja, a criação de um determinado aplicativo, como por exemplo o Safari(browser) para desktop , pode ser "importada" para outra plataforma, mobile Safari (browser) para Iphone, Segundo propõe o modelo front-end/back-end o que acarreta na grande possibilidade da portabilidade.

Referências Bibliográficas:

http://www.apple.com/br/safari/

http://pt.wikipedia.org/wiki/Safari_(navegador)

http://pt.wikipedia.org/wiki/IPhone

http://www.apple.com/br/iphone/apps-for-iphone/

http://webclaudio.wordpress.com/category/desenvolvimento/iphone/

http://www.tableless.com.br/o-safari-para-iphone

http://www.google.com.br/imghp?hl=pt-BR&tab=wi

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License