Você está na página 1de 45

FACULDADE DE TECNOLOGIA DE SO PAULO EDUARDO HUBSCH

Uma Abordagem Comparativa do desenvolvimento de aplicaes para dispositivos mveis

SO PAULO 2012

FACULDADE DE TECNOLOGIA DE SO PAULO EDUARDO HUBSCH

Uma Abordagem Comparativa do desenvolvimento de aplicaes para dispositivos mveis

Monografia submetida como exigncia parcial para a obteno do Grau de Tecnlogo em Processamento de Dados Orientador: Prof. Me. Rodrigo Zuolo Carvalho

SO PAULO 2012

AGRADECIMENTOS AGRADEO EM PRIMEIRO LUGAR A DEUS, POIS SEM ELE, NADA TERIA ALCANADO. PARA NO SER INJUSTO OU INGRATO, PREFIRO NO CITAR NOMES, CONTUDO TENHO CERTEZA DE QUE AS
PESSOAS QUE REALMENTE FIZERAM A DIFERENA PARA MIM SABERO QUE ESTO INCLUSAS NESSE PEQUENO AGRADECIMENTO.

RESUMO
Este trabalho se prope a fazer um estudo comparativo entre os dois principais sistemas operacionais para dispositivos mveis existentes no mercado atualmente: Apple iOS e Google Android. Sero detalhadas as plataformas em critrios como arquitetura, componentes fundamentais, interface com o usurio, recursos, ambientes de

desenvolvimento, entre outras caractersticas.

A comparao ser baseada na

implementao de uma aplicao com foco na capacidade de reproduo de contedo multimdia (vdeo).

Palavras-chave: Android, iOS, Smartphone, iPhone, Vdeo

ABSTRACT THIS PAPER AIMS TO MAKE A COMPARATIVE STUDY BETWEEN THE TWO MAIN OPERATING SYSTEMS FOR MOBILE DEVICES ON THE MARKET TODAY: APPLE IOS AND GOOGLE ANDROID. PLATFORMS ARE DETAILED ON CRITERIA SUCH AS ARCHITECTURE, KEY COMPONENTS, USER INTERFACE, RESOURCES, DEVELOPMENT ENVIRONMENTS, AMONG OTHER FEATURES. THE
COMPARISON IS BASED ON THE IMPLEMENTATION OF AN APPLICATION WITH A FOCUS ON REPRODUCTIVE CAPACITY OF MULTIMEDIA CONTENT (VIDEO).

KEYWORDS: ANDROID, IOS, SMARTPHONE, IPHONE, VIDEO

LISTA DE TABELAS 1. Tabela 1 - Comparativo entre as plataformas ............................................................... 38

SUMRIO 1. 2. 2.1. 2.2. 2.3. INTRODUO ............................................................................................................ 7 ANDROID ................................................................................................................... 12 HISTRICO ............................................................................................................ 12 ARQUITETURA ..................................................................................................... 14 HARDWARE ............................................................................................................ 18

1.1. OBJETIVOS ............................................................................................................... 10

2.4. GERENCIAMENTO DE THREADS, INTERRUPES, COMUNICAO ENTRE PROCESSOS, CHAMADAS DE SISTEMA .................................................... 18 2.5. 2.6. 3. GERENCIAMENTO DE MEMRIA .................................................................. 20 GERENCIAMENTO DE ENERGIA .................................................................... 21 IPHONE OS ............................................................................................................. 22

3.1 HISTRIA DO SISTEMA OPERACIONAL ........................................................... 22 3.2 ARQUITETURA .......................................................................................................... 24 3.3 HARDWARE ................................................................................................................ 26 3.4 GERENCIAMENTO DE THREADS, INTERRUPES, COMUNICAO ENTRE PROCESSOS, CHAMADAS DO SISTEMA .................................................... 26 3.5 GERENCIAMENTO DE MEMRIA ....................................................................... 27 3.6 GERENCIAMENTO DE ENERGIA ......................................................................... 28 4. ESTUDO DE CASO E IMPLEMENTAO ......................................................... 29 4.1.DESENVOLVIMENTO EM ANDROID ................................................................... 29 4.2.DESENVOLVIMENTO EM IOS ............................................................................... 31 5. COMPARATIVO ....................................................................................................... 34 5.1. AMBIENTE DE DESENVOLVIMENTO E LINGUAGEM DE PROGRAMAO ............................................................................................................. 34 5.2.DOCUMENTAO..................................................................................................... 36 6. 7. CONCLUSO E TRABALHOS FUTUROS ........................................................... 40 REFERNCIAS BLIOGRFICAS.......................................................................... 42

7 1. INTRODUO

As vendas de smartphones no Brasil devem crescer 73% este ano, aps o patamar recorde de 8,9 milhes de unidades comercializadas em 2011. Segundo projeo divulgada em 20/03/2012 pela consultoria IDC, especializada no mercado de tecnologia e telecomunicaes, sero vendidos no Brasil perto de 15,4 milhes de unidades de smartphones em 2012. As demandas do mercado consumidor vm aquecendo o mundo da telefonia mvel, Numa pesquisa da consultoria IDC, as vendas de smartphones (telefone celular com funcionalidades avanadas) tem previso de crescimento na ordem de 73% em 2012, no Brasil1. Entre 2010 e 2015 as vendas devem crescer trs vezes e esperado que o total do volume de vendas global deva ultrapassar o dos PCs (Computadores Pessoais) j em 2012 segundo o instituto Gartner (MACHILIS, 2011). Muitas das maiores empresas globais de tecnologia e comunicao vem sendo atradas pelas oportunidades de negcios geradas por essa nova categoria. Englobar uma parcela do valor total gerado pela indstria de smartphones, para muitas dessas empresas vista como uma chave para crescimento e lucro. Notebooks, netbooks e telefones mveis esto sendo crescentemente absorvidos em vendas pelos smartphones, uma vez que estes unem caractersticas encontradas anteriormente em dispositivos distintos. Este setor ainda conta com outros dispositivos nesta mesma tendncia, como tablets e leitores de ebokds (livros virtuais), se tornando fundamentais no universo mvel (KENNEY, 2011). A figura 1 mostra uma comparao entre as vendas de smartphones e PCs.

G1 Tecnologia. Disponvel em http://g1.globo.com/tecnologia/noticia/2012/03/vendas-de-smartphones-no-brasil-devem-crescer-73em-2012-diz-idc.html.

Figura 1 Comparativo entre vendas de smartphones e PCs Fonte: http://money.cnn.com/2010/07/20/technology/desktop_PC_death/index.htm

Com previso do total de receitas dos servios mveis, incluindo publicidade, inscries, aparelhos, aplicativos e demais de ultrapassar US $ 1 trilho em 2014, incluindo todos os dispositivos mveis disponveis e tendo em vista a taxa que os smartphones adentram o mercado e com os preos dos componentes em declnio, at 2015 haver, pelo menos, dois bilhes de dispositivos mveis inteligentes em uso no mundo. A indstria e a natureza dos dispositivos mveis em si nos direcionam a uma anlise a partir da perspectiva da plataforma tecnolgica utilizada por cada dispositivo. Controle da plataforma foi identificado por estudiosos e consultores de gesto como um recurso chave no sucesso do negcio para as indstrias de Tecnologia e Comunicao (KENNEY, 2011). Aproveitando os seus estudos sobre Microsoft, Cisco e Intel, Michael Cusumano concluiu que o vencedor das competies tecnolgicas geralmente aquele que tem a melhor estratgia de plataforma e os melhores ecossistemas para apoi-la (CUSCUMANO, 2010). Buscando conseguir a ateno dos usurios atravs de atrativos, existem muitas plataformas para dispositivos mveis no mercado atualmente. Com uma grande fatia de mercado e taxas expressivas de crescimento, algumas destas tm bastante sucesso. Habitualmente os usurios escolhiam aparelhos celulares de acordo com as suas

9 especificaes de hardware e as aplicaes suportadas pelos dispositivos ficavam a segundo plano. Atualmente nota-se uma mudana, onde os consumidores j demonstram um comportamento escolhendo os seus aparelhos no devido a sua cmera, mas sim pelo software que ele utiliza. Com uma tendncia de popularizao desta atitude se o sucesso de cada plataforma depender muito da quantidade de aplicaes disponveis para ela. A figura 2 mostra um grfico com os nmeros de aplicaes disponveis para as principais plataformas mveis entre Junho de 2009 e Maro de 2011.

Figura 2 Nmero de aplicaes disponveis nas App Stores para smartphones Fonte: http://www.businessinsider.com/chart-of-the-day-smartphone-apps-2011-3

10 1.1. OBJETIVOS

Este trabalho apresentar um estudo comparativo entre duas das principais plataformas de desenvolvimento para dispositivos mveis: Google Android e Apple iOS. Essa escolha baseada no destaque que recebem atualmente, tanto em relao sua fora de crescimento como pela importncia perante os desenvolvedores. As plataformas iOS e Android so o comeo de uma nova gerao de sistemas operacionais para smartphones. O objetivo destacar as principais caractersticas de cada plataforma e demonstrar como elas podem ser utilizadas atravs da criao de uma aplicao que explore os recursos de cada uma. Atentando para a nova conjuno do mercado, que disponibiliza inmeras ferramentas, com caractersticas que fornecem possibilidades vastas aos usurios; se faz necessrio o enfoque mais detalhado de apenas uma das recentes APIs desenvolvidas, a fim de analisar mais criteriosamente as plataformas. A ausncia de trabalhos acadmicos com este foco, aliado a multidisciplinaridade que existe neste tema podem ser considerados como a motivao para o desenvolvimento deste trabalho, O trabalho ser baseado em um levantamento bibliogrfico a fim de apurar as caractersticas dos dois sistemas operacionais, bem como caractersticas mercadolgicas de ambos. Em um segundo momento, ser desenvolvido um aplicativo para visualizao de vdeos, uma vez que esta caracterstica bastante utilizada nas duas plataformas, a fim de poder mensurar as caractersticas de cada linguagem, determinando vantagens e desvantagens. Ao final concluir-se- qual a plataforma mais adequada, ou se h um equilbrio nos critrios utilizados. Subdivide-se esta pesquisa nas seguintes partes: Introduo: apresentao do tema e das caractersticas que nortearo o trabalho; Android: sero descritas as caractersticas deste sistema operacional; Iphone OS: onde ser feito o mesmo, para o sistema operacional concorrente;

11 Estudo de caso e implementao: neste captulo ser abordado o desenvolvimento do aplicativo para visualizao de vdeos, nas duas plataformas; Comparativo: atravs das percepes obtidas no desenvolvimento, sero tabuladas as caractersticas de cada plataforma; Concluso: expostos os resultados, define-se um vencedor para o comparativo (se houver) e ainda sinaliza possveis abordagens para futuros trabalhos deste tema.

12 2. ANDROID

O Android uma plataforma para smartphones, baseada no sistema operacional Linux, que possui diversos componentes, com uma variada disponibilidade de bibliotecas e interface grfica, alm de disponibilizar ferramentas para a criao de aplicativos (LECHETA, 2009). 2.1. HISTRICO Uma pequena empresa chamada Android Inc., sediada em Palo Alto, Califrnia, Estados Unidos foi o inicio de tudo. Com a ideia de desenvolver um sistema operacional baseado em Linux para telefones celulares e outros dispositivos mveis, atraiu o interesse do Google, o qual a comprou em julho de 2005, ainda mais por ser parte da idia fazer um sistema operacional no para um nico fabricante de hardware, mas um sistema que qualquer um pudesse ter a licena e colocar em seu aparelho e que fosse flexvel e atualizvel (HILL, 2010). Com a viso de permitir ao usurio acessar a Internet e tirar proveito de informaes sobre sua posio e mobilidade atravs de um sistema operacional para smartphones Andy Rubin, Chief Executive Officer (CEO) da Android Inc., expressa claramente essa necessidade em uma entrevista para a revista Bussiness Week em 2003, onde afirma que havia um grande potencial no desenvolvimento de dispositivos mveis inteligentes que esto mais conscientes da localizao de seu proprietrio e de suas preferncias (MACHILIS, 2011). A partir da, o Android teve sua criao se deu atravs de um consrcio de mais de 40 empresas do setor de tecnologia e comunicao, sob o nome de Open Handset Alliance, liderado pelo Google Inc., com os objetivos principais: (LECHETA, 2009): 1. Possibilitar a personalizao de aplicaes e componentes do sistema, por serem de cdigo aberto e gratuito,

13 2. Baseado em uma plataforma moderna e flexvel, desenvolvimento rpido e moderno de aplicaes corporativas, Nesse momento eles tambm lanaram a primeira verso do Software Development Kit (SDK) do Android para o pblico1. Desde ento Google e OHA lanaram algumas novas verses do SDK, que a partir de outubro de 2008 passaram a ser liberados sob a licena open source Apache. Sob a licena Apache, empresas privadas poderiam acrescentar ao Android seus prprios aplicativos e extenses e vend-los, sem ter que submet-los comunidade open-source (BORT, 2008). O primeiro aparelho rodando Android foi o G1 da T-Mobile tambm conhecido como HTC Dream ou Google G1 dev phone. Com tela capacitiva e teclado QWERTY completo foi lanado primeiramente nos Estados Unidos pela operadora T-Mobile2. Em 2009 houve uma arrancada no desenvolvimento de aparelhos utilizando Android. Disponibilizados por mais de sete fabricantes incluindo HTC, Motorola, LG, Sony Ericsson e Samsung, estes telefones j estavam disponveis em praticamente todos os mercados3. O Nexus One, o primeiro Google Phone, se tornou realidade no incio de 2010. Marcado como o telefone do Google, , entretanto fabricado pela HTC, que tambm fez o primeiro celular Android, o HTC Dream4. O Nexus One vendido exclusivamente atravs da loja do Google e est disponvel apenas em alguns pases, incluindo Estados Unidos, Reino Unido e Singapura5. criar oportunidades de

" Open Handset Alliance. Industry leaders announce open platform for mobile devices." "HTC Inc. T-mobile unveils the t-mobile g1 - the first phone powered by android." "The Android Project. Developing on a device." 4 Google Inc. Nexus one phone feature overview & technical specifications. Disponvel em: http://www.google.com/phone/static/en_US-nexusone_tech_specs.html. 5 Google Inc. Availability in your country and language : Place an order - nexus one help. Disponvel em: http://www.google.com/support/android/bin/answer.py?answer=166508
2 3

14 2.2. ARQUITETURA Com o conhecimento da arquitetura da plataforma, de seus componentes principais, bibliotecas e subsistemas, podemos identificar as limitaes e dependncias na criao de um aplicativo para dispositivo mvel. O Android uma plataforma que inclui: Sistema operacional, middleware, e aplicativos. Sua arquitetura dividida em Kernel, runtime, Bibliotecas, framework e aplicativos, como mostrado na Figura 3 e melhor detalhado abaixo.

Figura 3 - Arquitetura Android Fonte: http http://developer.android.com/images/system-architecture.jpg

Kernel: Em face da diversidade de arquiteturas de dispositivos mveis, assim como em computadores e outros dispositivos eletrnicos, para que um sistema consiga operar com diferentes tipos de hardware, se fazem necessrios os sistemas operacionais. Segundo TANENBAUM (2003), um sistema operacional deve ser capaz de gerenciar o processador, memria e outros dispositivos de entrada e sada, alm de fornecer, aos programas de usurio, uma interface mais simplificada com o hardware.

15 Nos smartphones, existe a demanda de gerenciar os recursos dos mesmos, tais como processamento e memria, sendo assim, h uma forte tendncia de criao de sistemas operacionais com esse intuito. Alm disso, necessrio que a criao de software no contemple apenas um nico modelo de celular, mas um determinado sistema operacional, ficando este responsvel por gerenciar as particularidades de cada dispositivo. O Android utiliza o kernel do Linux, que responsvel pelos servios de segurana, gerenciamento de memria, processos, rede e drivers, este ltimo componente muito importante, pois garante que o desenvolvedor no precisar se preocupar em como acessar ou gerenciar dispositivos especficos do celular, produzindo assim uma abstrao entre o hardware e o software. Execuo (Runtime): Da mesma forma que com o Java, uma aplicao Android interpretada pelo sistema. A diferena que o Android gera cdigos Dalvik Executveis (.dex), e no os byte-code (.class) do Java, tais cdigo so interpretados pela Mquina Virtual Dalvik (MVD) (PROJECT, 2012). Criada por Dan Bornstein, a MVD uma alterao da Mquina Virtual Java (JVM), a qual otimizada para os objetivos que o Android visa suprir (BORNSTEIN, 2008). Aps a compilao, todos os arquivos .dex e outros recursos utilizados pela aplicao (exemplo: imagens, sons, etc.), so compactados em um arquivo do tipo .apk (Android Package File), sendo este arquivo, a aplicao finalizada e pronta para ser distribuda e instalada em qualquer dispositivo com Android, (LECHETA, 2009). A MVD tambm includa no SDK do Android, onde transformam os cdigos das classes Java (.class) em cdigos Dalvik executveis (.dex), que posteriormente sero executado pelo emulador Android (BORNSTEIN, 2008). Bibliotecas (Libraries): Atividades como a abertura de arquivos, a realizao de clculos aritmticos, exibio de imagens, entre outras, so atividades bsicas, que acabam no sendo o foco principal do desenvolvedor. Temos as bibliotecas, para se evitar a reescrita dos cdigos de funes e rotinas que se repetem ou possuem altas complexidades. As bibliotecas possuem cdigos e dados que

16 auxiliam na execuo de servios e permite a separao de partes do programa (modularizao). O Android possui um conjunto de bibliotecas, disponveis para a criao de seus aplicativos como a System C Library, Media Libraries, Surface Manager, Lib Webcore, SGL, 3D libraries, Freetype e SQLite. Tais bibliotecas permitem a manipulao de vdeos, imagens, sons animaes, banco de dados, etc. System C Library Considerando que o Android se baseia no Linux, parece coerente que exista uma biblioteca que defina as chamadas ao sistema. Suportando padres ISO C e POSIX, com apoio s variantes do Unix como BSD e System V, no Android a biblioteca uma BSD (Berkeley Software Distribution) do padro C (Foundation, 2007). Media Libraries Para a reproduo e gravao de mdias de formatos populares, temos a media libraries, que baseada em Open CORE. Dentre os formatos suportados, se incluem os formatos MPEG4, H.264, MP3, AAC, AMR, JPG e PNG. Esta biblioteca e desenvolvida pela PacketVideo's, (PACKETVIDEO, 2007). Surface Manager Biblioteca que gerencia o aceso ao subsistema de vdeo do dispositivo, sendo capaz de compor grficos em 2D e 3D a partir de aplicaes de mltiplas camadas. Lib WebCore Nascido como uma ramificao do KHTML e KJS do KDE3, O WebCore um motor de navegao Web, que possui cdigo aberto, utilizado em diversas aplicaes de diversos sistemas operacionais. (NOKIA, 2004) Bibliotecas 3D Baseada em OpenGL ES 1.0 as bibliotecas usam, tanto acelerao por hardware na medida do possvel, quanto renderizao 3D por software, sendo neste caso altamente otimizado,.(PROJECT, 2012). FreeType

17 Gerenciador de fontes de cdigo aberto, o qual facilita a renderizao de fontes TrueType, e otimizado para diversos tipos de plataformas, principalmente nos casos sistemas incorporado ou portteis (Turner et al., 2006). SQLite SQLite um sistema gerenciador de banco de dados (SGBD) embutido no Android, de cdigo aberto, que no possui servidor de processos separado. O SQLite um gerenciador compacto e disponvel para vrias plataformas, foi desenvolvido para ocupar o mnimo de memria possvel, mas com grande quantidade de recursos, permite criao de vrias tabelas, trigers, ndices e views, tudo em apenas um arquivo. indicado para dispositivos que possuem limitaes de memria e processamento, como os celulares, por exemplo. (LECHETA, 2009) Framework de aplicaes (Application Framework): Os desenvolvedores tm a sua disposio diversos outros componentes que o Android disponibiliza alm das bibliotecas, como, o provedor de contedo, gerenciador de janela, telefone, recursos, atividades e muitos outros. Sendo um diferencial do Android em relao a outras plataformas para dispositivos mveis, a possibilidade de acesso e modificao dos componentes permite que as aplicaes criadas possam interagir com todo o sistema do celular, podendo o usurio/desenvolvedor, alterar qualquer componente que faa a parte do sistema para que esse se adeque as suas necessidades ou as do aplicativo que se est desenvolvendo. Os componentes permitem a interoperabilidade entre os vrios subsistemas do celular. Por exemplo, um aplicativo pode acessar a agenda de contatos e realizar uma chamada, capturar uma imagem pela cmera, descobrir qual a localizao do celular, etc. (PROJECT, 2012). O framework de aplicativo fornece componentes que auxiliam na implementao dos programas, permitindo a criao de listas, grades, caixas de texto, botes, etc. Alguns componentes se destacam, tais como: Provedor de contedo, que gerencia o acesso aos dados realizados pelos aplicativos;

18 Gerenciador de notificaes, que habilita os aplicativos a exibirem informaes e avisos na barra de status do aparelho, assim como a reagirem s notificaes recebidas; Gerenciador de atividades, que gerencia o ciclo de vida das aplicaes e permite sua execuo em segundo plano.

2.3. HARDWARE

Devido flexibilidade do sistema operacional e ao uso deste por diversas empresas, o hardware bastante diversificado, conforme o nicho de mercado que se pretende atuar. 2.4. GERENCIAMENTO DE THREADS, INTERRUPES, COMUNICAO ENTRE PROCESSOS, CHAMADAS DE SISTEMA O Android possui um sistema bastante sofisticado de gerenciamento de threads. Possui uma thread nica nas aplicaes padro e interface com o usurio, ou seja, que todas as tarefas de longa durao dentro de um aplicativo devem rodar em uma thread em segundo plano1. Os aplicativos no sistema operacional Android so o resultado da interao de quatro blocos de construo. So eles: atividades (Activities), ou todos os elementos da interface do aplicativo; servios, que so tpicos que realizam todo o trabalho de fundo necessrio aplicao para executar sua tarefa; receptores de transmisso (Broadcast Receivers), que so essencialmente os ouvintes que permitem que um aplicativo possa responder eventos do sistema ou de aplicaes; e fornecedores de contedos (Content Providers), que so conjuntos de dados que a aplicao disponibiliza para outras aplicaes. O motivo para essa diviso o incentivo pratica de reuso de componentes.

Android Developers. Disponvel em: developer.android.com

19 Na maioria dos casos, um aplicativo ser baseado em uma atividade (Activity) que est sendo exibida e a infra-estrutura em segundo plano para realizar as tarefas de ligadas a essa atividade (BURKE, 2009). Interrupes, comunicao entre processos e chamadas de sistema necessrias para fazer uma aplicao so lidadas pelo sistema com o uso extensivo de eventos. Funciona assim: uma aplicao dispara os eventos onCreate, onStart e onResume quando iniciada. Ento se em algum momento uma outra janela cobre qualquer parte da aplicao o evento onPause disparado. Uma vez acionado o evento onPause, se toda a aplicao no est mais visvel, o evento onStop pode ser chamado seguido pelo onDestroy, fechando totalmente a aplicao. No entanto, onStop e onDestroy nem so chamados se os recursos do sistema estiverem escassos, pois neste caso o sistema operacional pode simplesmente matar a aplicao. A figura 4 mostra o ciclo de vida de uma atividade em Android.

Figura 4 Ciclo de Vida de uma Atividade em Android Fonte: http://developer.android.com/images/activity_lifecycle.png

20 Seguindo este mesmo conceito bsico de criao de eventos e disparos destes nos momentos adequados, temos o mtodo utilizado pelo sistema operacional Android para transmitir dados entre threads em um nico aplicativo. Um provedor de contedo (Content Provider) requerido caso precise ser transmitida informaes entre aplicaes. Chamadas do sistema so um pouco mais complexas. Algumas delas so feitas atravs das mesmas interfaces que so fornecidas aos aplicativos. Outros so feitos por meio de consulta classes que so built-in, por exemplo, a classe android.location.Location que d acesso s coordenadas GPS atual. 2.5. GERENCIAMENTO DE MEMRIA O uso de memria geralmente limitado a 16 MB em aplicaes Android. Essa caracterstica se d pela capacidade contida em um dispositivo mvel. Quanto mais aplicaes o Android puder manter na memria, mais rpido ele ser para o usurio quando este precisar trocar entre aplicaes. Ento, as aplicaes devem preferencialmente usar o mnimo de memria possvel para garantir vrias aplicaes rodando ao mesmo tempo sem que sejam finalizadas. Os aplicativos Android so escritos na linguagem Java, os cdigos so compilados com os arquivos de recursos e configurao gerando um arquivo do tipo .apk, este arquivo pode ser instalado atravs da ferramenta chamada AAPT (Android Asset Packaging Tool ), que faz o gerenciamento dos pacotes e instala os arquivos .apk no sistema (GOOGLE INC., 2012). Cada aplicativo Android executado em seu prprio processo Linux, e cada um tem sua prpria mquina virtual. Um aplicativo recebe por padro uma ID exclusiva, como os aplicativos Linux, sendo assim cada processo invisvel a outro. possvel que mais de uma aplicao compartilhe o mesmo ID, permitindo assim o compartilhamento dos mesmos recursos, arquivos e mquina virtual.

21 Alm disso, no requer nenhum cdigo para alocar ou desalocar memria j que possui o garbage collector que gerencia essa questo de alocamento e desalocamento de memria automaticamente. O garbage collector solicitado sempre que uma aplicao possuir um endereo de momria alocado que no possua nenhuma referncia ativa apontando para ele. Por projeto, o garbage collector no remove aplicativos que ainda esto sendo usados, e pode haver uma perda de desempenho do sistema enquanto o recurso estiver sendo executado. Android conta com gerenciamento automtico de memria que gerenciado pelo garbage collector, no entanto o garbage collector s vezes pode causar problemas de desempenho se a alocao de memria no tratada com cuidado. O Android SDK tambm fornece o allocation tracker, uma ferramenta para evitar freqentes aes do garbage collector. 2.6. GERENCIAMENTO DE ENERGIA Desenvolvido a partir da premissa de que a CPU no deve consumir de energia se os aplicativos ou servios no precisam de energia, o Android exige que os aplicativos e servios solicitem recursos da CPU com "wake locks" atravs do framework de aplicaes Android e bibliotecas nativas Linux. Se no h nenhum wake lock ativo, a CPU desligada para poupar energia. A classe PowerManager a forma acessvel do Android Framework disponibilizar o gerenciamento de energia para servios e aplicaes1.

http://www.cs.uwc.ac.za/~mmotlhabi/apm.pdf

22 3. IPHONE OS O iOS o sistema operacional desenvolvido originalmente para o iPhone, e tambm usado em outros dispositivos movis. O iOS baseado no conceito de manipulao direta, utilizando toque, ou seja, a interao com o sistema operacional com o usurio imediata, pois esse sistema possibilita ao usurio, com gestos, toques na tela, deslizar dos dedos, por exemplo, ampliar fotos, reduzir imagens, digitar mensagens em teclado virtual, etc. Por essa praticidade, o sistema, em seu lanamento com o primeiro iPhone, foi e ainda um sucesso entre os usurios. Neste capitulo, abordaremos a historia e a tcnica sobre o sistema operacional mvel iOS. 3.1 HISTRIA DO SISTEMA OPERACIONAL Em meados de 2007, Steve Jobs, o CEO da Apple, estava no palco junto com a Cingular, agora departamento de dispositivos mveis da AT&T, apresentando o iPhone da Apple, um dispositivo inovador e um paradigma para a industria. Mas para entendermos sobre o dispositivo, precisamos voltar ao anuncio do primeiro iPod por Steve, cinco anos antes da apresentao do iPhone. O iPod se tornou um dos maiores sucessos da Apple em 2004 e aps alguns anos com os fabricantes do Mp3 player a concorrencia aumentou, bem como celulares , que apresentavam tocadores de musicas embutidos, e para enfrentar esta competio, a Apple se uniu com a Cingular para criar o que viria a ser o Motorola ROKR, sendo sucesso da Motorola. RAZORseries. A parceria foi criada de modo que a Motorola construiria completamente o telefone enquanto a Apple poderia se concentrar em escrever o software de msica. O resultado foi um telefone que era defasado em comparao com a concorrncia, no era visto como esteticamente agradvel e s podia armazenar 100 msicas (VOGELSTEIN, 2008). A Apple entendeu que se fosse para criar um celular de msica de sucesso, eles teriam que faz-lo por conta prpria e para isso, Steve Jobs comeou a procurar uma operadora de

23 telefonia nos EUA que aceitasse seu negcio. A Verizon recusou e a Apple acabou de volta AT&T. As negociaes foram difceis devido nova situao e as demandas de Steve Jobs, mas eles conseguiram terminar um acordo. O acordo previa que a AT&T receberia exclusividade para o dispositivo mais uma percentagem de todas as vendas de msicas para o dispositivo. Em troca, a Apple iria receber US $ 10 por cliente e ms e teria liberdade para criar seu prprio produto (VOGELSTEIN, 2008). A Apple sabia como fazer o sistema operacional e a interface de trabalho, mas eles no tinham competncia para projetar antenas e outros componentes mveis. Ainda assim, eles decidiram faz-lo por conta prpria e, sob extremo sigilo, desenvolveram todo o equipamento necessrio. A segurana era to apertada que para as pessoas que trabalhavam no hardware foram dadas softwares com cdigo dummy (cdigo que no usado no produto final) para testar sobre eles, e as pessoas que trabalham no software s o viam rodando em uma grande caixa preta com uma tela. O mesmo era verdade para os engenheiros da AT&T que deveriam testar o dispositivo na rede da AT&T, mas s foram entregues simuladores contendo o processador de banda base e antena (VOGELSTEIN, 2008). O produto resultante era caro, funcionou apenas na rede da AT&T EDGE, no poderia pesquisar atravs em e-mails e o browser no tinha nem Java nem suporte a Flash. Nada disso importava, os clientes adoraram. Desde aquele dia em 2007, todos os novos telefones liberados foram comparados com a verso atual do iPhone da Apple (VOGELSTEIN, 2008). A Apple continuou a desenvolver o seu conceito de sucesso lanando novas verses do sistema operacional, bem como novas verses do hardware e com os lanamentos do iPhone 3G e 3GS e mais tarde do iPhone 4, a Apple se tornou o padro de fato com o qual qualquer outro julgado contra. Eles tambm aproveitaram o sucesso do iPhone para o iPod atravs da criao do iPod Touch. Na histria mais recente eles deram mais um passo importante e lanaram o iPad, um tablet baseado na arquitetura do iPhone. Um tablet algo que a Apple tinha tentado criar internamente por um longo tempo e rumores sempre circularam.

24 3.2 ARQUITETURA No iPhone OS, a arquitetura por baixo do sistema e muitas das tecnologias so semelhantes s encontrados no Mac OS X. O kernel no iPhone OS baseado em uma variante do mesmo kernel base que encontrado no Mac OS X. No topo deste kernel esto as camadas de servios que so utilizadas para implementar aplicaes na plataforma. A figura 5 mostra uma viso geral de alto nvel dessas camadas.

Figura 5 Camadas do iOS Fonte: http://developer.apple.com/library/ios/referencelibrary/GettingStarted/URL_iPhone_OS_Overview/Art/overview_systemlayers.jpg

Core OS: a camada mais baixa do sistema operacional do iPhone. Ele consiste em uma verso reduzida do ncleo do Mac OS X otimizado para dispositivos mveis1 [18]. O iPhone OS um sistema Unix com o modelos de entrada e sada padres, POSIX threads e sockets BSD. Ela tambm contm servios para gerenciamento de energia em dispositivos mveis, segurana e Bonjour, que um sistema sem configurao de descoberta de dispositivos e servios em redes IP2 [20]. Core Services: Esta camada fornece os servios de sistema fundamentais dos quais todas as aplicaes fazem uso. Um deles o Core Foundation, que inclui uma interface baseada em C para colees compostas de listas e dicionrios, bem como strings e strings mutveis. A camada de servios do Core tambm contm frameworks incluindo o
1

Apple Inc. iphone os technology overview: iphone os technologies. Apple Inc. Networking - bonjour.

25 CoreData, que um framework para gerenciar os modelos de dados em uma aplicao, e o CoreLocation para gerenciar os dados de localizao disponveis a partir de GPS, triangulao e WiFi . Ele possui tambm a interface de baixo nvel para SQLite e parser de XML (KENEDDY, 2011). Media: A camada de mdia contm os grficos, udio, vdeo e tecnologias cujo objetivo criar a melhor experincia multimdia disponvel para o dispositivo mvel. A maioria das funcionalidades da camada Media e acima usam o framework Core Graphics para desenho. Este framework tambm conhecido como Quartz e baseado na mesma API de desenho baseada em vetores usada no Mac OS X. No topo desta camada fica a Core Animation que fornece uma interface de alto nvel para configurar animaes e efeitos. A camada de mdia tambm fornece reproduo de vdeo para os desenvolvedores de aplicaes. O framework suporta a reproduo de arquivos de filmes .mov, mp4, m4v e gravaes 3gp. O udio pode ser reproduzido e emitido atravs do framework Core Audio e os frameworks OpenGL ES e OpenAL so regularmente utilizados no desenvolvimento de jogos (KENEDDY, 2011). Cocoa Touch: a camada contm os principais frameworks para a construo de aplicaes iOS. Ela pode ser dividida em duas sub-camadas. O nvel mais baixo consiste das partes que no so interface do usurio na camada Cocoa Touch. Este o Foundation Framework, que um subconjunto do Foundation presente na camada Cocoa do Mac OS X, e contm wrappers de objetos de strings e colees da camada arquivos e APIs de rede (KENEDDY, 2011). A parte superior da Cocoa Touch o framework UIKit, que contm toda a infraestrutura de aplicativos e todos os componentes grficos. A parte superior do Cocoa Touch tambm inclui manipulao de eventos, grficos, janelas, texto e gerenciamento de web. O framework UIKit tambm permite ao desenvolvedor acesso para algumas das interfaces de hardware, incluindo a cmera, acelermetro e outros sensores no iPhone (KENEDDY, 2011). Core Services, bem como alguns outros servios do sistema incluindo acesso ao sistema de

26

3.3 HARDWARE O iOS usado nos dispositivos iPhone, iPod Touch e iPad. O iPhone 4, lanamento mais recente da Apple entre os iPhones, possui um processador ARM Cortex A8 com clock de 1GHz e 512MB de memria RAM. Ele pode ser adquirido em duas verses, uma com 16 GB e outra com 32 GB de espao para armazenamento interno. No existem slots para expanso de momria neste aparelho. Sua tela de 3,5 polegadas possui display LED-backlit IPS TFT capacitivo com suporte multitoque e resoluo de 640x960 pixels. Esto presentes tambm acelermetro, GPS, cmera com 5 megapixels e flash de LED capaz de gravar vdeos em resoluo 720p e 30fps1 3.4 GERENCIAMENTO DE THREADS, INTERRUPES, COMUNICAO ENTRE PROCESSOS, CHAMADAS DO SISTEMA O iPhone OS fornece todas as tecnologias de gesto de threads que so agora consideradas padro. tecnologias usuais distribudas, etc. 2 No entanto a Apple no recomenda o gerenciamento de threads desta maneira. Eles sentem que a programao direta de threads muito difcil e pode ser feito muito mais eficiente, permitindo que o sistema operacional para lidar com o gerenciamento de threads. O recomendo usar filas de operao. So as filas para as quais voc atribui tarefas e o sistema operacional lida com o trabalho de threads necessrios para que essas tarefas sejam executadas. Isso permite que o sistema operacional lide de forma mais eficiente com o carregamento de threads e o processamento de tarefas. [17]. O iPhone OS permite dois mtodos diferentes de lidar com interrupes. Primeiro, h o protocolo UIApplicationDelegate que permite um aplicativo seja notificado de uma
1 2

possvel

disparar

threads e sincroniz-los usando todas para leitura/escrita,

as

como Excluso

Mtua, fechaduras

travas

GSMArena. Apple Developer. Disponvel em: developer.apple.com.

27 variedade de atividades e possa tomar as medidas adequadas para cada uma delas. Algumas das aes que podem ser respondidas so trmino de carregamento, alerta de pouca memria, mudana de orientao, etc. O segundo mtodo um construtor de nvel inferior que pode ser mais ocorrem complicado de dentro do de usar. a classe NSNotification. Esta ou outras atividades entanto para classe permite-lhe ser personalizadas que notificado quaisquer interrupes

Sistema

Operacional. No

aproveitar isso, preciso estar ciente das atividades que se deseja encontrar e estas devem estar presas especificadamente [17]. A comunicao entre processos dentro do sistema operacional do iPhone tratada usando manipuladores de URL personalizadas. Essencialmente a razo para isto que o sistema operacional permite apenas uma aplicao do usurio ativa a cada momento, ento aplicaes devem se comunicar usando URLs personalizadas, procurandoas especificamente atravs do protocolo UIApplicationDelegate 1. O iPhone OS probe chamadas de sistema. Em alguns casos especficos, chamadas so permitidas se controladas atravs da biblioteca libSystem, porm na maioria do sistema, chamadas simplesmente no so permitidas 2[21].

3.5 GERENCIAMENTO DE MEMRIA

IPhone no possui garbage collector como o Android. O desenvolvedor responsvel por limpar as variveis depois de us-las, caso contrrio ocorrer vazamento de memria no programa. Apesar de classe NSObject ter uma ajuda de contagem para manter o controle de quantos outros objetos esto atualmente usando um objeto, isso no ocorre de forma automtica e os desenvolvedores tm de ajustar por si s. A regra para gerir a memria certificar-se de que o nmero de mtodos prprios chamados em um objeto ser igual ao
1

GRIGSBY, D. "Apple Approved iPhone Inter-process Communication." Disponvel em: http://www.mobileorchard.com/appleapproved-iphone-inter-process-communication/. 2 GEBARG, L. "iPhone - is it possible to make system call." Stack Overflow: http://stackoverflow.com/questions/1315939/iphone-is-itpossible-to-make-system-call..

28 nmero de perdas de mtodos prprios interesse quando de o programa tiver seu terminado objeto, a que

execuo. Quando se cria ou copia um objeto, sua contagem 1. Posteriormente, outros objetos podem expressar um propriedade em incrementa sua contagem. Os proprietrios de um objeto tambm podem renunciar sua participao no mesmo, o que diminui sua contagem. Quando a contagem tornase zero, o objeto desalocado (destrudo).

3.6 GERENCIAMENTO DE ENERGIA

IPhone no possui o kit de ferramentas de gerenciamento de energia que o Mac OS possui. Em vez disso, esta funo incorporado na camada de ncleo (Core Layer). Os sistemas que mais consomem energia no iPhone em ordem descrescente so o sistema 3G, Wi-Fi, sistema 2G, Bluetooth e GPS. Reduzir o nmero de aplicaes alto consumo de energia ajuda a economizar. Ao colocar um iPhone no modo sleep, ele vai desligar da rede, desligar o Wi-Fi e a luz tela.

29 4. ESTUDO DE CASO E IMPLEMENTAO Este trabalho prope um estudo comparativo entre as duas plataformas para dispositivos mveis mais evidentes na atualidade. A comparao ser baseada no uso de uma caracterstica comum para ambas as plataformas: a reproduo de videos. Para realizar esse estudo foram desenvolvidas duas aplicaes parecidas usando Android e iOS. O aplicativo a ser desenvolvido consiste em uma verso simplificada de um player para videos. Nessa implementao ser possvel analisar as ferramentas disponveis para desenvolvimento nas duas plataformas em questo, assim como as APIs disponveis para acesso aos sensores, complexidade de cdigo e documentao. 4.1.DESENVOLVIMENTO EM ANDROID Abordado anteriormente, os aplicativos para Android nada mais so do que aplicativos Java que passaram por uma otimizao, se transformando em bytecodes Dalvik. (LECHETA, 2009) A aplicao desenvolvida composta por uma nica tela exibindo assim uma nica interface com o usurio. Assim, apenas um componente do tipo Activity se fez necessrio. Nessa Activity principal ser instanciada um objeto da classe VideoView, o qual receber os atributos com o caminho completo para o vdeo e os controles que utilizar. Neste caso, pela simplicidade do programa, no h necessidade da interface da Activity ser definida a partir de um arquivo XML contendo os componentes da mesma. O cdigo-fonte desta aplicao se encontra na figura abaixo:

30

Figura 6 Cdigo-fonte completo do aplicativo

As capturas de tela da aplicao modelo finalizada rodando na plataforma Android pode ser vista na figura 13.

Figura 7 Capturas de tela da aplicao modelo em Android

31 4.2.DESENVOLVIMENTO EM IOS Os aplicativos desenvolvidos para iOS so escritos na linguagem de programao Objective-C. Esta uma linguagem orientada objetos que consiste basicamente da unio do estilo de mensagens do Smalltalk com a linguagem de programao C pura. Ela a principal linguagem usada pela Cocoa API da Apple e conseqentemente usada para desenvolver tanto aplicativos para Mac OS X quanto para iOS. O aplicativo desenvolvido como modelo para o iOS exatamente igual ao descrito na seo anterior para Android. Neste caso, temos a classe MediaPlayerMPMoviePlayerController que instancia o objeto. O que parece um pouco mais complicado (e na verdade ), a insero dentro do mtodo viewDidLoad a chamada para acionar (play) no vdeo e uma outra funo para remover da tela e liberar o objeto com prprio evento de Callback do MediaPlayer.

Figura 8 Cdigo-fonte completo do aplicativo

32

Figura 9 Cdigo-fonte completo do aplicativo (continuao)

Codigo fonte com a aplicao para IOS A figura 10 mostra a tela da aplicao modelo rodando na plataforma iPhone.

33

Figura 10 Captura de tela da aplicao modelo em iOS.

34 5. COMPARATIVO

Como mostrado no captulo 4, foram implementadas duas aplicaes com os mesmos requisitos, uma utilizando Android e a outra iOS. Ambas focavam a reproduo de vdeos em seu desenvolvimento. O objetivo do trabalho, que o de comparar as duas plataformas, usou as seguintes mtricas na avaliao: Ambiente de desenvolvimento, linguagens de programao e documentao. Sero apresentados tambm os principais pontos fortes e fracos encontrados nas duas plataformas.

5.1. AMBIENTE DE DESENVOLVIMENTO E LINGUAGEM DE PROGRAMAO A IDE (Integrated Development Environment) XCode, desenvolvida pela Apple a responsvel pelo desenvolvimento para IOS, enquanto o desenvolvimento para Android feito a partir da popular IDE Eclipse. O XCode uma ferramenta de desenvolvimento bem integrada ao ambiente Mac, por outro lado, o Eclipse, j tido como um padro da indstria com o qual muitos desenvolvedores j esto familiarizados. Por ser semelhante a outras IDEs j conhecidas, como o Visual Studio, facilita o aprendizado para novos desenvolvedores que aderirem ferramenta. O fcil gerenciamento de projetos e a possibilidade de usar plugins j existentes para Eclipse para conectar-se a uma srie de sistemas de controle de verses diferentes, como CVS e SVN podem ser considerados como as maiores vantagens desse ambiente de desenvolvimento para Android. A figura 11 mostra o ambiente de desenvolvimento Eclipse.

35

Figura 11 Eclipse IDE

A comparao entre Objective-C e Java. Objective-C inevitvel. Objective-C assim como o XCode, so especficos para o ambiente Mac. Java, em contrapartida umas das linguagens de programao mais usadas atualmente. A unio entre o Java e o Eclipse configura um ambiente de desenvolvimento bem mais agradvel, e Java , em sua totalidade, uma linguagem de programao mais moderna. O XCode, no entanto possui vantagens em relao ao Eclipse a exemplo das ferramentas externas feitas para facilitar o desenvolvimento de aplicaes para iPhone. O Interface Builder e a ferramenta de anlise de desempenho so muito melhores e mais bem integradas se comparadas ao plugin ADT do Android para Eclipse, que alm de no apresentarem uma boa integrao no possuem um acabamento no mesmo nvel. A ferramenta correspondente ao Interface Builder na plataforma Android no possui uma interface to amigvel e falta a funcionalidade para vincular as aes na interface aos mtodos no cdigo, uma caracterstica presente no Interface Builder. A figura 12 mostra uma imagem do ambiente XCode.

36

Figura 12 Xcode IDE

Apesar de requerer um poder de processamento relativamente alto do computador onde est rodando, o emulador da plataforma Android bem trabalhado. Possui muitas vantagens, entre elas o fato de ser construdo sobre o QEMU, que um software livre que emula um processador, e ainda emular um telefone real. O iPhone Simulator roda como uma aplicao normal e isso limita testar certos tipos de aplicao. O emulador Android possui muitas funcionalidades que faltam no iPhone Simulator, como a capacidade de simular chamadas ou mensagens de texto, alterar a posio de um GPS falso, que simulado no emulador, assim como limitar a largura da banda e latncia da rede para que condies reais possam ser simuladas. 5.2.DOCUMENTAO A Apple fornece um bom acervo de fontes aos desenvolvedores que esto iniciando na plataforma iOS. A iTunes University oferece uma seo de vdeos para iniciantes onde os conceitos bsicos da plataforma so explicados de forma bastante intuitiva, familiarizando assim o desenvolvedor com a plataforma. Os vdeos trazem desde os conceitos bsicos at

37 os mais avanados para iOS. A Apple disponibiliza tambm um bom nmero de aplicaesmodelo e cdigos para demonstrar o uso da API para os usurios. Para encontrar um material mais especfico, a Apple disponibiliza a biblioteca de referncia para iPhone (iPhone Reference Library), que cobre todas as classes e protocolos usados na linguagem de programao Objective-C. Embora seja bastante semelhante as demais bibliotecas de referncia, no apresenta a mesma clareza e intuitividade de algumas, a exemplo da oferecida aos desenvolvedores Android. Para Android, a seo developer disponvel na sua homepage traz um bom material pra quem est iniciando na plataforma. Nela so fornecidos vrios guias de desenvolvimento que cobrem os principais conceitos da plataforma, alm de um bom manual de referncia sobre as APIs disponveis. Os guias e as referncias sobre a API so instalados junto com o Android SDK (System Development Kit), esto todos esto disponveis offline. O Android no oferece guias em forma de vdeos como a Apple faz para o iOS, porm seus recursos de desenvolvimento so bem mais organizados que os do iOS. Vale salientar que muitos projetos de cdigo aberto Android podem ser usados como idias sobre arquitetura e uso da API. Nesse ponto o Android sobressai, pois com a poltica de NDA (Non-disclosure agreement) da Apple no exixtem muitas fontes em termos de cdigo aberto para iPhone. 5.3.PONTOS FORTES O iOS claramente coloca uma grande nfase na questo da experincia do usurio, rea onde a Apple sempre se destacou. A nfase no usurio torna o iOS muito fcil de se usar. Alm disso, a plataforma e todos os dispositivos mveis lanados pela Apple se popularizaram em demasia na atualidade. Isso significa que grande parte das aplicaes mveis esto sendo criadas para iOS. Isto gerou um ambiente que lhe permite fazer quase tudo que seria desejvel em um dispositivo mvel atravs de um aplicativo para iPhone. O iPhone tambm possui a vantagem de ter todo o seu espao de armazenamento em uma nica unidade. Logo as aplicaes e o sistema operacional usam a mesma partio. Na

38 maioria dos outros smartphones, os sistemas operacionais so instalados em

uma pequena partio primria e todo o restante instalado em uma partio separada que geralmente fica em um carto de memria. Porm, a maioria das aplicaes escrita sob a suposio de que elas sero executadas em uma nica memria interna. Dispensar esse artefato de execuo valioso para o iPhone. O sistema operacional Android tem uma grande vantagem em ser personalizvel. Nesse sentido, h possibilidades ilimitadas para um dispositivo Android, sendo possvel escrever quaisquer aplicaes desejadas desde que o hardware do aparelho as suporte. A capacidade de executar tarefas em s segundo podem plano uma enorme por meio vantagem. H de dois ou muitas mais funcionalidades que ser conseguidas

aplicativos rodando ao mesmo tempo e o Android permite que isso ocorra. Alm disso, o sistema permite o uso de cartes de memria, que expandem o espao de armazenamento e ampliam as possibilidades. 5.4.PONTOS FRACOS O iOS possui o recurso de multitarefa bastante limitado. Antes da chegada o iOS 4, ele aplenas permitia que aplicativos nativos como Mail, iPod e telefone pudessem rodar em segundo plano. Com o iOS 4 a Apple disponibiliza aos desenvolvedores uma pequena e limitada lista de APIs que podem executar determinados servios em segundo plano. Isso remove uma srie de funcionalidades muito teis das possibilidades da plataforma. O desenvolvimento para o iPhone tambm limitado apenas plataforma Mac. Fato que encarece o custo de entrada para aqueles que no possuem o hardware necessrio. Alm disso, o desenvolvimento para o iPhone requer aprendizagem de uma lngua que no valiosa fora da comunidade Apple. O sistema operacional Android, por sua vez, j est a ter problemas com o fato de que os aplicativos no so sempre portveis atravs dos dispositivos, com um nmero de desenvolvedores reclamando sobre como compatibilidade entre dispositivos complexa (GRUMAN, 2010). importante notar tambm que a interface para o usurio do

39 sistema operacional Android no to agradvel e polida como a do iOS. Ela passa um aspecto mais spero e no to intuitiva. Esta uma rea onde a Apple faz um trabalho muito melhor.

40 6. CONCLUSO E TRABALHOS FUTUROS O propsito desse trabalho foi realizar um estudo comparativo entre as principais plataformas mveis disponveis no mercado atual. Google Android e Apple iOS. A inteno no foi apontar a melhor plataforma de desenvolvimento de aplicaes, mas tentar mostrar as foras de cada uma de forma a possibilitar uma escolha mais embasada para futuros trabalhos. Para tanto, vimos detalhes tcnicos e ambientes de desenvolvimento alm de demonstrar superficialmente a criao de uma aplicao simples com foco na exibio de vdeos. No final pudemos formar algumas opinies sobre as caractersticas das plataformas estudadas que esto condensadas na tabela 1.

CRITRIOS COMPARATIVOS Linguagem de programao

IOS

ANDROID

OPINIO Java por ser mais difundida uma linguagem melhor para se desenvolver. Objective-C encontra-se restrita aos dispositivos Apple. XCode possui melhor integrao e ferramentas para interfaces bastante superiores. Eclipse possui a vantagem de ser mais difundido. O emulador Android dispe de mais funcionalidades para simular um dispositivo real. A Apple possui a vantagem de ter configuraes j definidas para rodar as aplicaes. Como

Objective-C

Java

Ambiente de desenvolvimento

XCode

Eclipse

iPhone Emulador Emulator iPhone, iPad, Hardware iPod Touch

Android Emulator Dispositivos de vrios fabricantes

41 Android possui muitos aparelhos difcil desenvolver aplicaes compatveis com todos. Proprietria Licena EULA Apache 2.0 (Open Source) O sistema Android pode ser acessado totalmente, possibilitando a criao de aplicaes mais robustas.

Tabela 1 - Comparativo entre as plataformas

Os resultados obtidos nesse estudo mostraram a necessidade de trabalhos futuros que complementem essa comparao permitindo ainda mais avanos nesse setor. Devido ao curto espao de tempo disponvel e s restries dos objetivos estabelecidos, no foi possvel o aprofundamento em alguns aspectos. A anlise da segurana das plataformas e o desempenho das aplicaes em cada uma delas so temas que podem ser abordados em trabalhos futuros.

42 7. REFERNCIAS BLIOGRFICAS Android Developers. Disponvel em: <http://developer.android.com> Acessado em: 30/08/2012 Apple Inc. iphone OS technology overview: iphone os technologies. Disponvel em: <http://developer.apple.com/iphone/library/documentation/Miscellaneous/Conceptual/iPho neOSTechOverview/iPhoneOSTechnologies/iPhoneOSTechnologies.html>. Acessado em 29/08/2012. Apple Inc. Networking bonjour.Disponvel em:<http://developer.apple.com/networking/bonjour/index.html>.Acessado em: 29/08/2012. BORT, Dave. 2008. Android is now available as open source. <http://source.android.com/posts/opensource> Acessado em: 20/04/2010. BORNSTEIN, D. (2008). Dalvik virtual machine. Disponvel em: <http://www.dalvikvm.com/>. Acessado em 01/07/2012. BOUCHAUD, J. - Apple Becomes Second Largest Buyer of Consumer Cell Phone MEMS Sensors in 2010. Disponvel em: <http://www.isuppli.com/mems-andsensors/news/pages/apple-becomes-second-largest-buyer-of-consumer-cell-phone-memssensors-in-2010.aspx>. Acessado em: 30/06/2012 BURKE, E.M. - A Simple Android App and a Threading Bug. Disponvel em: <http://jnb.ociweb.com/jnb/jnbJan2009.html>. Acessado em: 03/07/2012. CUSCUMANO, Michael. 2010. Technology Strategy and Management: The Evolution of Platform Thinking. Communications of the ACM. Disponvel em: <http://dl.acm.org/citation.cfm?doid=1629175.1629189 > Acessado em 03/10/2012 FOUNDATION, F. S. (2007). The gnu c library. Disponvel em: <http://www.gnu.org/software/libc>. Acessado em 18/10/2012. G1 Tecnologia. Vendas de smartphones no Brasil devem crescer 73% em 2012 diz IDC. Disponvel em <http://g1.globo.com/tecnologia/noticia/2012/03/vendas-desmartphones-no-brasil-devem-crescer-73-em-2012-diz-idc.html>. Acessado em 20/11/2012 GEBARG, L. iPhone - is it possible to make system call. Stack Overflow: Disponvel em: <http://stackoverflow.com/questions/1315939/iphone-is-it-possible-to-make-systemcall>. Acessado em: 30/08/2012

43

Google Inc. Nexus one phone - feature overview & technical specifications. Disponvel em: <http://www.google.com/phone/static/en_US-nexusone_tech_specs.html>. Acessado em: 27/08/2012. Google Inc. Availability in your country and language : Place an order - nexus one help.Disponvel em: <http://www.google.com/support/android/bin/answer.py?answer=166508>. Acessado em: 27/08/2012 GRIGSBY, D. "Apple Approved iPhone Inter-process Communication." Disponvel em: <http://www.mobileorchard.com/apple-approved-iphone-inter-processcommunication>. Accessado em: 30/06/2012. HILL, Simon. 2010. " History of Android: First Applications Prototypes & Other Events" Disponvel em < http://www.brighthub.com/mobile/googleandroid/articles/18260.aspx> Acessado em: 30/10/2012 "HTC Inc. T-mobile unveils the t-mobile g1 - the first phone powered by android." Disponvel em: <http://www.htc.com/www/press.aspx?id=66338&lang=1033>. Acessado em: 27/08/2012 KENNEY, Martin. Structuring the Smartphone Industry: Is the Mobile Internet OS Platform the Key? ,Davis: University of California, 2011. Disponvel em <http://papers.ssrn.com/sol3/papers.cfm?abstract_id=1851686> Acessado em 20/11/2012 LECHETA, R. R. (2009). Google Android - Aprenda a criar aplicaes para dispositivos mveis com o Android SDK. 1 Edio, So Paulo: Editora Novatec, 2009 MACHILIS, Sharon. Mercado mvel em nmeros: iOS lidera tablets e android smartphones. IDG Now, 09 Jun. 2011. Disponvel em: <http://idgnow.uol.com.br/mercado/2011/06/09/mercado-movel-em-numeros-ios-lideratablets-e-android-smartphones> Acessado em: 30/06/2012 MOTHABI, MICHAEL B. (2010) Advanced Android Power Management and Implementation of Wakelocks. Disponivel em: <http://www.cs.uwc.ac.za/~mmotlhabi/apm2.pdf> Acessado em 10/11/2012 NOKIA, R. C. (2004). Gtk+ webcore project. Disponvel em: <http://gtkwebcore.sourceforge.net/index.html>. Acessado em 11/10/2012.

44 Open Handset Alliance. Industry leaders announce open platform for mobile devices. Disponvel em: <http://www.openhandsetalliance.com/press_110507.html>. Acessado em: 27/06/2012. PacketVideo, C. (2007). Opencore. Disponvel em: <http://www.packetvideo.com/ resources/OpenCORE-brochure.pdf>. Acessado em 11/10/2012. PROJECT, A. O. S. (2012). Android open source. Disponvel em: <http://source.android.com>. Acessado em 18/06/2012. SYMBIAN FOUNDATION. The history of symbian. Disponvel em: <http://www.symbian.org/about-us/history-symbian>. Acessado em: 27/08/2012. The Android Project. Developing on a device. Disponvel em: <http://developer.android.com/guide/developing/device.html>. Acessado em: 27/06/2012 VOGELSTEIN, Fred. The untold story: How the iphone blew up the wireless industry. Wired Magazine, Setembro 2008.