Você está na página 1de 57

SmartContentProvider | Entidade Promotora:

18/04/2013

Prototipagem e
Comparao de
Tecnologias RIA
Vol 2

Projeto em curso com o apoio de:

Parceiros:

SmartContentProvider | Entidade Promotora:

Parceiros:

ndice
ndice Figuras.................................................................................................................................3
ndice de Tabelas ...........................................................................................................................5
Introduo .....................................................................................................................................6
Android ..........................................................................................................................................7
Ferramentas ............................................................................................................................11
Formatos .................................................................................................................................13
Linguagens ...............................................................................................................................13
iOS ...............................................................................................................................................15
Ferramentas ............................................................................................................................17
Formatos .................................................................................................................................18
Linguagens ...............................................................................................................................19
Windows Phone ..........................................................................................................................20
Ferramentas ............................................................................................................................23
Formatos .................................................................................................................................24
Linguagens ...............................................................................................................................24
Windows 8 ...................................................................................................................................25
Ferramentas ............................................................................................................................27
Formatos .................................................................................................................................28
Linguagens ...............................................................................................................................28
PhoneGap ....................................................................................................................................29
Ferramentas ............................................................................................................................31
Formatos .................................................................................................................................31
Linguagens ...............................................................................................................................31
Prottipos ................................................................................................................................32
Appcelerator Titanium ................................................................................................................46
Projeto em curso com o apoio de:

SmartContentProvider | Entidade Promotora:

Parceiros:

Ferramentas ............................................................................................................................48
Formatos .................................................................................................................................48
Linguagens ...............................................................................................................................48
Prottipos ................................................................................................................................48

Projeto em curso com o apoio de:

SmartContentProvider | Entidade Promotora:

Parceiros:

ndice Figuras
Figura 1: Evoluo temporal das diversas verses de Android.....................................................9
Figura 2: Aspecto grfico do Android ..........................................................................................10
Figura 3: Exemplo de utilizao do Eclipse + SDK android ..........................................................12
Figura 4: Abstraco em 4 camadas do iOS ................................................................................16
Figura 5: iOS em dispositivos de diferentes tamanhos ...............................................................17
Figura 6: Exemplo de desenvolvimento de aplicao para o iOS ...............................................18
Figura 7: Aspecto grfico do Pocket PC 2000..............................................................................21
Figura 8: Aspecto grfico do Windows Mobile 5.0 .....................................................................22
Figura 9: Exemplo da interface Metro do Windows Phone 8 .....................................................23
Figura 10: Nova interface do Windows 8 ....................................................................................26
Figura 11: Exemplo dos Charms ..................................................................................................27
Figura 12: Desenvolvimento de aplicao por via do Dreamweaver .........................................33
Figura 13: Pormenor de visualizao para vrios dispositivos no Dreamweaver.......................33
Figura 14: Repositrio local do GitHub .......................................................................................35
Figura 15: Realizao de um commit/update para o repositrio Web do GitHub .....................36
Figura 16: Ecr principal da conta do GitHub..............................................................................37
Figura 17: Visualizao do contedo de um projecto na conta do GitHub ................................38
Figura 18: Link .git para um projecto no repositrio do GitHub .................................................38
Figura 19: Adio de nova aplicao ...........................................................................................39
Figura 20: Campo para a insero do link do repositrio do GitHub..........................................40
Figura 21: Acesso do PhoneGap Build ao cdigo fonte do GitHub .............................................40
Figura 22: Repositrio adicionado e pronto a compilar .............................................................40
Figura 23: Compilao dos pacotes para as vrias plataformas .................................................41
Figura 24: Resultado final da criao dos pacotes para as vrias plataformas ..........................41
Figura 25: Processo de Download e instalao da aplicao directamente para o Smartphone
.....................................................................................................................................................43
Figura 26: Aplicao a funcionar na verso Android ..................................................................44
Figura 27: Dashboard inicial do Titanium Studio ........................................................................50
Figura 28: Escolha de templates para a criao de novas aplicaes.........................................51
Figura 29: Estrutura standard de um projecto ............................................................................52
Figura 30: Exemplo de edio de cdigo fonte no IDE ...............................................................53
Figura 31: Chamada do emulador de Android por via do SDK ...................................................54
Figura 32: Arranque do emulador e mquina virtual Dalvik .......................................................55
Projeto em curso com o apoio de:

SmartContentProvider | Entidade Promotora:

Parceiros:

Figura 33: Execuo do emulador como se tratasse de um dispositivo mvel convencional ....55
Figura 34: Execuo da aplicao de testes ................................................................................56

Projeto em curso com o apoio de:

SmartContentProvider | Entidade Promotora:

Parceiros:

ndice de Tabelas
Tabela 1: Diversas verses de Android, nomes, verso da API e percentagem de utilizadores ..7
Tabela 2: Diferentes verses de iOS e respectivas datas de lanamento ...................................15
Tabela 3: Compatibilidades das diversas funcionalidades nos diversos sistemas ......................30

Projeto em curso com o apoio de:

SmartContentProvider | Entidade Promotora:

Parceiros:

Introduo
O presente documento Prototipagem e comparao de Tecnologias RIA Volume 1, 2 e 3
constitui um dos resultados da fase de Estudos Preliminares do projecto SmartCP. Em
particular, sumariza o trabalho realizado no contexto da tarefa Prototipagem e comparao
das principais tecnologias RIA actuais.
Com este estudo, pretende-se numa primeira etapa, efectuar o levantamento das diversas
tecnologias RIA disponveis, tanto num contexto mais convencional de utilizao em
computador e browser web assim como no contexto de ambientes mveis. Numa segunda
etapa, pretende-se aprofundar as tecnologias previamente analisadas e efectuar a
experimentao prtica com diversos prottipos que sejam capazes de evidenciar as vantagens
e pontos fracos de cada tecnologia.
ainda importante frisar que a rea das tecnologias associadas aos RIA muito dinmica e est
em constante alterao e evoluo. Dai a necessidade de efectuar periodicamente este estudos
de anlise e de comparao para ser possvel, acompanhar esse ritmo elevado de evoluo e
de constante mudana.
O presente documento constitudo por diversas seces, sendo apresentadas
individualmente de seguida.
Introduo aos RIA, no primeiro volume, a seco onde se efectua uma apresentao e
esclarecimento dos conceitos basilares associados ao contexto dos RIA.
Na seco Tecnologias RIA em estudo, no primeiro volume, so apresentadas de uma forma
breve, as diversas tecnologias que sero analisadas em maior profundidade ao longo deste
mesmo documento.
De seguida surgem no documento as seguintes seces, cada uma referente a uma tecnologia
concreta, nomeadamente; Silverlight, Flash, HTML5 no primeiro volume, e Android, iOS,
Windows Phone, Windows 8, PhoneGap e Appcelerator Titanium no segundo volume. Todas
estas seces seguem um padro referente s subseces para cada uma delas. Essas
subseces so as Ferramentas, os Formatos, as Linguagens e os Prottipos. Por sua
vez a subseco dos prottipos ainda pode estar subdividida noutras seces mais pequenas,
como por exemplo Vdeo, Objectos 3D, WebCam, Upload de Ficheiros e interaco.
No fim do documento (terceiro volume) ainda apresentada outra seco sobre Prottipos
Nativos em tecnologias mobile, onde se analisa a aplicao VIATECLA Nicereader, que constitui
um exemplo de aplicao transversal de vrias destas tecnologias. Por fim, ainda se analisa em
maior detalhe e com os respectivos prottipos a utilizao de Acelermetros, Giroscpios,
Multi-Touch e Armazenamento e Persistncia de Dados.
Projeto em curso com o apoio de:

SmartContentProvider | Entidade Promotora:

Parceiros:

Android
O Android uma das plataformas mobile mais difundidas e utilizadas tanto em smarthphones
como em dispositivos tablet. Desenvolvido pela Google Open Source, baseado em Linux e a
sua core desenvolvida em C e C++. O facto de ser um sistema aberto levou a que fosse
adoptado pela maioria de fabricantes de hardware mobile. Em consequncia, fez com que o
Android esteja presente numa quantidade enorme de dispositivos, desde os mais baratos, gama
mdia e dispositivos topo de gama. Estes factores tornaram-no na plataforma mobile com mais
aceitao.
O facto de ser open source e de existirem ferramentas gratuitas para o desenvolvimento de
aplicaes, fez com que exista uma enorme comunidade de developers e consequentemente
uma quantidade elevadssima de aplicaes de diversos tipos.

Ao nvel histrico e de evoluo do Android, as primeiras verses foram lanadas apenas


internamente na Google para efeitos de teste e de recolha de opinies. Essa verso alpha foi
lanada em Outubro de 2007. O nome dessa verso era R2-D2.
Ainda em Novembro e em Dezembro de 2007 foram lanadas mais duas verses beta internas.
S aps estas duas betas que foi lanada a verso 1.0 para o publico e o respectivo SDK de
desenvolvimento de aplicaes.
A tabela seguinte apresenta a evoluo das diversas verses assim como a percentagem de
utilizadores actualmente.

Tabela 1: Diversas verses de Android, nomes, verso da API e percentagem de utilizadores

Verso
Android Alpha
Android Beta 1
Android Beta 2
Android 1.0
Android 1.1
Android 1.5 Android 1.6 Projeto em curso com o apoio de:

Nome
R2-D2
M3-rc22a
Cupcake
Donut

Verso API

1
2
3
4

% de Utilizadores
< 0,1%
< 0,1%
< 0,1%
0,2%

SmartContentProvider | Entidade Promotora:

Android 2.0 - 2.1


Android 2.2.x
Android 2.3.x
Android 3.x.x
Android 4.0.x
Android 4.1.x - 4.2.x
Android 5

Parceiros:

Eclair
Froyo
Gingerbread
Honeycomb
Ice Cream Sandwich
Jelly Bean
Key Lime Pie

56-7
8
9
11 12 - 13
14 15
16 - 17
-

1,9%
7,5%
44,1%
1,2%
28,6%
16,5%
-

Na tabela anterior possvel observar que dentro do mesmo sistema operativo mobile
(Android) existe uma grande fragmentao de utilizadores consoante as diferentes subverses.
Curiosamente as diferentes verses de Android possuem todas nomes de sobremesas e seguem
a ordem alfabtica na primeira letra do nome.

Na Figura 1 apresentada a evoluo da percentagem de utilizao de cada verso de Android


ao longo do tempo, de onde se pode concluir facilmente que a verso mais utilizada
actualmente ainda a verso 2.3.x Gingerbread.

Projeto em curso com o apoio de:

SmartContentProvider | Entidade Promotora:

Parceiros:

Figura 1: Evoluo temporal das diversas verses de Android

Tanto o prprio sistema operativo, como as aplicaes nativas utilizam o SQLLite como base de
dados de apoio s suas operaes. O rendering de grficos em 3D baseado em OpenGL, o
browser por defeito do Android baseado na framework WebKit, uma das mais utilizadas no
desenvolvimento de Browsers para Desktop. O Android possui ainda uma mquina virtual de
Java nativa para as aplicaes que tenham sido desenvolvidas em Java. Essa maquina virtual
o Dalvik. A nvel multimdia, nativamente o Android suporta formatos como o MPEG-4 e o
H.264 no vdeo e o MP3 e o ACC no udio.

Sendo um sistema operativo especfico, est fortemente ligado com o hardware da mquina
permitindo utilizar as suas potencialidades ao mximo, desta forma as aplicaes desenvolvidas
nativamente para este sistema operativo vo beneficiar de factores como por exemplo:

Servios de Geo-localizao
Sensores (Acelermetro, giroscpio, sensor de proximidade, bssola, barmetro)

Projeto em curso com o apoio de:

SmartContentProvider | Entidade Promotora:

Parceiros:

Possibilidade de correr aplicaes verdadeiramente em background


Trabalhar offline e online
Utilizar aplicaes concorrentes e scheduled
Acesso a microfone, cmara principal e cmara secundria
Contedo rico em multimdia
Aplicaes mais fluidas e dinmicas

Por fim a Figura 2 apresenta um exemplo de aspecto grfico do Android. No entanto essa figura
no passa de um simples exemplo, pois como toda a interface grfica pode ser radicalmente
alterada por via de aplicaes, obtendo um visual final completamente diferente.

Figura 2: Aspecto grfico do Android

Projeto em curso com o apoio de:

SmartContentProvider | Entidade Promotora:

Parceiros:

Ferramentas
A principal ferramenta que serve de base para o desenvolvimento de aplicaes para o Android
o Android SDK.
O Android SDK inclui todas as ferramentas necessrias para aprender, desenvolver, testar e
distribuir as aplicaes para o sistema operativo Android. Esta framework contm o IDE Eclipse
com o plugin ADT, para criao do cdigo das aplicaes, contm as ferramentas para testar as
aplicaes (debuger), tais como a imagem da ltima verso do Android para ser utilizada pelo
simulador. O simulador permite executar uma mquina virtual no computador de
desenvolvimento sem a necessidade de instalar a aplicao num dispositivo real de Android.
No entanto, o Android SDK contm tambm ferramentas de instalao em dispositivos reais e
assim permitir que os testes sejam realizados em dispositivos concretos.
O Android SDK tem ainda tutoriais para ajudar os programadores que esto a iniciar o
desenvolvimento para o sistema operativo do Android, e toda a documentao necessria e
cdigo-fonte auxiliar.
As aplicaes nativas para o Android so desenvolvidas atravs de Java e fazem uso das
bibliotecas includas no Android SDK para utilizar as funcionalidades e recursos do sistema
operativo. Os elementos da interface so instalados tambm com o Android SDK e podem ser
utilizados atravs do Eclipse em modo grfico ou atravs de XML formatado para a interface da
aplicao.
Para alm da verso pronta a utilizar do Android SDK + Eclipse fornecida oficialmente pela
Google e pela comunidade, o Android SDK pode tambm ser instalado em outros IDEs de Java,
nomeadamente o IntelliJ IDEA e o NetBeans.
Na Figura 3 possvel observar um exemplo de utilizao do IDE Eclipse em conjunto com o SDK
para Android. ainda possvel observar na figura o simulador do telemvel onde a aplicao vai
ser testada.

Projeto em curso com o apoio de:

SmartContentProvider | Entidade Promotora:

Parceiros:

Figura 3: Exemplo de utilizao do Eclipse + SDK android

Para alm do SDK Android convencional que permite que sejam desenvolvidas aplicaes JAVA
e que utilizado em quase 95% das aplicaes disponveis no Google Play, existe tambm o
NDK (Native Development Kit). O NDK um Kit de desenvolvimento baseado em bibliotecas
escritas em C e que a aplicao uma vez criada, pode ser compilada para ARM, MIPS ou x86,
mas no caso de Android s interessa a compilao para ARM. A compilao pode ser efectuada
num compilador GCC normal. A vantagem de desenvolver uma aplicao por esta via que
garante a execuo nativa do cdigo fonte directamente na arquitectura ARM, evitando assim
a mquina virtual de JAVA das aplicaes desenvolvidas normalmente com o SDK. As vantagens
desta via prende-se sobretudo com o aumento de desempenho. No entanto esta abordagem
de desenvolvimento no tem sido muito utilizado porque todo o desenvolvimento, debug e
deploy tem de ser efectuado por via de linha de comandos sem recorrer s facilidades
fornecidas por um IDE. Actualmente ainda se encontra em desenvolvimento um plug-in para o
Eclipse para permitir no futuro, desenvolver em ambiente NDK integrado e com as vantagens
de um IDE.
Projeto em curso com o apoio de:

SmartContentProvider | Entidade Promotora:

Parceiros:

Outra ferramenta de desenvolvimento e de destaque no mundo Android o App Inventor que


foi inicialmente desenvolvido pela Google e actualmente mantido pelo MIT. O principal
objectivo desta ferramenta permitir que pessoas com conhecimentos nulos ou reduzidos de
programao, possam mesma criar e desenvolver as suas aplicaes de Android. Tanto a
criao da parte logica como dos elementos grficos so criados atravs da insero de blocos,
ou seja o utilizador trabalha como se fossem peas de lego, sem necessitar de conhecer o
contedo e a programao por detrs de cada uma. Existe mesmo uma biblioteca grfica s
dedicada a esse objectivo e chamada de OpenBloks.

Formatos
O principal formato representante nas aplicaes no mundo Android o formato APK. Nele so
inseridos todos os recursos e funcionalidades para a instalao e execuo de uma aplicao.
Desta forma um formato auto-suficiente, pois contm internamente tudo o que necessita
para executar.
O APK acaba por ser semelhante aos ficheiros JAR de Java e aos XAP de Silverlight. Desta forma
o APK tambm um formato comprimido com diversas pastas e ficheiros no seu interior. Essa
compresso efectuada para a transmisso destes pacotes por rede ser mais compacta e
rpida.
A partir do APK no se consegue obter facilmente o cdigo fonte original da aplicao, pois este
j se encontra compilado.

Linguagens
Como j foi visto anteriormente as aplicaes para Android podem ser construdas com recurso
a vrias tecnologias. No entanto a mais utilizada o JAVA. No entanto quando se constri uma
aplicao para Android no se tem a tradicional API JAVA SE ou mesmo o Java EE. Isto acontece
porque sendo os dispositivos Android dispositivos mveis com capacidades limitadas, tanto as
APIs EE e SE seriam demasiado genricas e demasiado pesadas para estarem presentes neste
ambiente. Desta forma a API disponibilizada no SDK de Android mais leve e especialmente
orientada para o contexto de utilizao mobile. J a sintaxe de programao exactamente a
mesma do JAVA convencional.

Projeto em curso com o apoio de:

SmartContentProvider | Entidade Promotora:

Projeto em curso com o apoio de:

Parceiros:

SmartContentProvider | Entidade Promotora:

Parceiros:

iOS
O iOS um dos sistemas mobile com mais utilizadores actualmente. No entanto este sistema
no est limitado a dispositivos Smartphone, sendo tambm utilizado em dispositivos tablet.
desenvolvido pela Apple e o seu cdigo fonte fechado e proprietrio. J a sua utilizao
tambm est vedada outros fabricantes de hardware que no a prpria Apple. Desta forma
acaba por se observar uma maior homogeneidade em relao ao que acontece no ambiente
Android, que existem dezenas de fabricantes, cada um com diversos dispositivos e
configuraes de hardware diferentes.
Este factor de maior homogeneidade e controlo de hardware, por um lado criticado pelo facto
da Apple obter um monoplio dos dispositivos, mas por outro lado, aplaudido por desta
forma, assegurar uma maior performance, robustez e segurana em todos os seus dispositivos
mobile e tablet.

Historicamente o iOS foi apresentado conjuntamente com o iPhone na "Macworld Conference


& Expo" em 9 de Janeiro de 2007. No entanto, no inicio no se podiam desenvolver outras
aplicaes para o iPhone, apenas utilizar as oficiais fornecidas pela Apple ou outras empresas
associadas. S a 6 de Maro de 2008, que foi lanada a primeira beta do SDK de
desenvolvimento. A 27 de Janeiro de 2010, a Apple anunciou o iPad, e assim o ambiente iOS
passou a estar tambm disponvel no segmento tablet.

Actualmente o iOS j vai na sua sexta verso. Por norma todos os anos em Junho ou Julho
sempre lanada uma nova verso major, contendo diversas novidades e novas actualizaes.

Tabela 2: Diferentes verses de iOS e respectivas datas de lanamento

Verso
iOS 1.x
iOS 2.x
iOS 3.x
iOS 4.x

Projeto em curso com o apoio de:

Data de lanamento
29/06/2007
11/07/2008
17/06/2009
21/06/2010

SDK
Push Notifications
Multitask
Facetime
Retina Display
Home Screen Folders
Game Center

SmartContentProvider | Entidade Promotora:

Parceiros:

iOS 5.x

06/06/2011

iOS 6.x

11/06/2012

Personal Hotspot
Siri
Notification
iMessage
iCloud
Mapas nativos da Apple
Melhoramentos no Siri
Aplicao nativa para o
Facebook

Ao nvel da fragmentao das verses utilizadas pelos diferentes utilizadores, tambm se assiste
a uma fragmentao menor, pois mesmo os dispositivos mais antigos tm recebido updates
para as verses mais recentes de iOS. No entanto, o facto dos dispositivos antigos receberem
as novas verses do iOS no recebem todas as novidades presentes nessas verses. Em parte
por o hardware no as suportar, ou por deciso da Apple.

Desde o inicio que o iOS assenta num conceito de abstraco em 4 camadas. A base a primeira
camada e a core do sistema operativo, onde efectuada a gesto interna do prprio sistema
operativo. A segunda camada a dedicada aos servios, que por exemplo permite manter o
email actualizado ou o dispositivo sincronizado com diversas aplicaes. A terceira camada
dedicada aos servios de mdia, nomeadamente reproduo de vdeos e de udio. Por fim a
ltima camada a designada de Cocoa Touch e dedicada a controlar e receber toda a
interaco proveniente do utilizador por via do touchscreen do dispositivo. Na Figura 4 so
apresentadas as referidas camadas do iOS.

Figura 4: Abstraco em 4 camadas do iOS

Projeto em curso com o apoio de:

SmartContentProvider | Entidade Promotora:

Parceiros:

Na Figura 5 so apresentados dispositivos de diferentes tamanhos com iOS. Da esquerda para


a direita; iPad 4, iPad Mini e iPhone 5, respectivamente.

Figura 5: iOS em dispositivos de diferentes tamanhos

Ferramentas
Em 2008 foi lanado pela Apple o SDK de desenvolvimento de aplicaes para o iOS,
possibilitando assim que qualquer utilizador, com conhecimentos para tal, pudesse desenvolver
a sua prpria aplicao. No entanto, o acesso a tal ferramenta no livre e para se poder
efectuar a criao de aplicaes necessrio pagar uma licena de developer anual Apple.
Desde 2008 tm surgido novas verses do SDK que acompanham o surgimento das diversas
verses do iOS.

Projeto em curso com o apoio de:

SmartContentProvider | Entidade Promotora:

Parceiros:

O IDE por excelncia para desenvolver aplicaes para o iOS o Xcode. Inicialmente o Xcode
era designado por Project Builder e foi em primeira mo desenvolvido para auxiliar na criao
de aplicaes para o Mac OS X. S mais tarde que passou a suportar o SDK para iOS e a poder
desenvolver aplicaes para o contexto mobile. As linguagens que podem ser utilizadas no
Xcode so o Objective-C e o Apple-Script.
Na Figura 6 possvel observar um exemplo de desenvolvimento de uma aplicao para iOS.
Neste caso concreto possvel observar o modo de edio misto, em que possvel editar os
elementos visualmente ou directamente no cdigo fonte.

Figura 6: Exemplo de desenvolvimento de aplicao para o iOS

Formatos
A nvel de formatos das aplicaes existe o APP que essencialmente um pacote (do ingls
package) obtido da store e pronto a instalar a aplicao. Esse APP essencialmente um
Projeto em curso com o apoio de:

SmartContentProvider | Entidade Promotora:

Parceiros:

pacote comprimido com todos os contedos e cdigo fonte compilado necessrios instalao
e funcionamento de uma determinada aplicao.
Existe tambm o formato IPA que bastante equivalente ao formato APP mas sem os binrios
da compilao do cdigo fonte. E serve essencialmente para distribuir a aplicao em fase de
desenvolvimento por diferentes programadores/computadores.

Linguagens
O Objective-C uma linguagem de programao imperativa e orientada ao paradigma de
programao por objectos. uma linguagem que tem como base o C, no entanto conta com
algumas alteraes na sua sintaxe. Como um superconjunto de C, um compilador de
Objective-C tambm capaz de compilar C puro sem qualquer dificuldade.
A sua compilao por norma efectuado no Xcode mas tambm pode ser compilada no
compilador open source gcc.

Projeto em curso com o apoio de:

SmartContentProvider | Entidade Promotora:

Parceiros:

Windows Phone
O Windows Phone o sistema operativo da Microsoft para ambientes mobile. um sistema
operativo proprietrio e o seu cdigo fonte no de domnio publico. A sua core desenvolvida
em C e em C++.
Historicamente o Windows Phone sucede a anterior aposta da Microsoft no segmento mobile,
esse sistema que agora se encontra descontinuado era o Windows Mobile.
Esta vertente de sistemas operativos da Microsoft comeou em 1990 com os primeiros
desenvolvimentos do Windows CE destinado ao WinPad, dispositivo que nunca chegou ao
grande pblico devido aos seus problemas de performance e devido ao seu preo demasiado
elevado.
Em 2000 surge uma nova abordagem, designada por Pocket PC 2000, destinada a dispositivos
ARM e com displays de resolues de 240x320. O aspecto deste sistema era semelhante s do
Windows 2000, mas em verso mobile.
Na Figura 7 observvel o aspecto grfico desse sistema. Que tanto em funcionalidades como
em design era bastante primitiva em comparao com os sistemas e as interfaces grficas dos
dispositivos moveis de hoje em dia. Posteriormente, em 2002, foi lanado o Pocket PC 2002
com algumas melhorias.

Projeto em curso com o apoio de:

SmartContentProvider | Entidade Promotora:

Parceiros:

Figura 7: Aspecto grfico do Pocket PC 2000

Em 2003 surgiu a primeira verso de sistema operativo sobre o nome de Windows Mobile,
nomeadamente o Windows Mobile 2003, onde se observavam algumas melhorias significativas
tanto ao nvel da performance, da reproduo de contedos multimdia e das interfaces
grficas. Esta verso do sistema operativo mobile da Microsoft ainda teve outra evoluo em
2004 com o Windows Mobile 2003 SE.
Mais tarde em 2005 surgiu a verso Windows Mobile 5 que j suportava dispositivos com GPS
e teclados QWERTY, assim como uma nova verso do Microsoft Office Mobile, verso criada
propositadamente para os dispositivos com Windows Mobile. A interface grfica, embora
mantivesse as mesmas bases, encontrava-se bastante melhorada, como possvel observar na
Figura 8.

Projeto em curso com o apoio de:

SmartContentProvider | Entidade Promotora:

Parceiros:

Figura 8: Aspecto grfico do Windows Mobile 5.0

A ltima gerao de Windows Mobile foi a verso 6, lanada em 2007. Esta verso major ainda
teve mais duas subverses, o Windows Mobile 6.1 e o 6.5, lanados em 2008 e em 2010,
respectivamente.
Estas verses foram o fim da linhagem Windows Mobile, sendo sucedidas pelo Windows Phone
7 e Windows Phone 8. Esta alterao da linhagem Windows Mobile para Windows Phone
no foi uma simples alterao esttica de nome. Todo o paradigma de utilizao e interaco
foi alterado, pois anteriormente o Windows Mobile sempre foi muito orientada para o mercado
profissional e empresarial, enquanto que o Windows Phone j orientado para o consumidor
geral. A disrupo foi de tal ordem que todas as aplicaes para Windows Mobile deixaram de
ser compatveis com o Windows Phone.
A par do surgimento do Windows Mobile tambm foi firmado um acordo entre a Microsoft e a
Nokia de modo a criar uma simbiose forte e dessa forma conseguir-se impor num mercado j
dominado pelo iOS e pelo Android. Desse acordo, tambm ficou decidido que o Symbian iria
ser substitudo pelo Windows Phone na maioria dos terminais de gama media e gama alta da
Nokia.

Projeto em curso com o apoio de:

SmartContentProvider | Entidade Promotora:

Parceiros:

Figura 9: Exemplo da interface Metro do Windows Phone 8

A Figura 9 apresenta um exemplo da interface grfica do Windows Phone 8. Como possvel


observar, existe uma grande diferena em relao interface grfica utilizada na linhagem do
Windows Mobile.

Ferramentas
A principal ferramenta de desenvolvimento para o ambiente Windows Mobile o seu SDK e o
IDE de desenvolvimento da Microsoft, o Visual Studio.
Em relao ao IDE Visual Studio, no ser efectuada aqui uma anlise em profundidade, pois tal
j foi efectuado no contexto das Ferramentas de Silverlight. No entanto, este IDE, por omisso
no permite desenvolver para Windows Mobile, sendo necessrio instalar o SDK de Windows
Phone, pois, durante essa instalao so adicionados componentes e templates especificas para
permitir o desenvolvimento nesta tecnologia. Tambm adicionado um simulador especifico
de Windows Phone para permitir que os programadores testem as suas aplicaes mesmo sem
Projeto em curso com o apoio de:

SmartContentProvider | Entidade Promotora:

Parceiros:

terem um dispositivo real Windows Phone. Esse simulador no efectua uma simples simulao
de interface, efectua uma simulao profunda da prpria arquitectura do hardware ARM do
tipo RISC. Essa simulao absoluta, considerada bastante boa e realmente representativa do
real comportamento das aplicaes testadas. Como desvantagem, implica que no funciona em
computadores mais antigos que no suportem virtualizao por hardware, o que pode limitar
o fluxo de trabalho de alguns programadores.

Formatos
O formato utilizado para distribuir uma aplicao o formato XAP que um pacote comprimido
com todos os elementos necessrios execuo da aplicao. O formato XAP j foi analisado
em maior profundidade na Seco dos formatos do Silverlight.

Linguagens
As aplicaes para Windows Phone podem ser desenvolvidas em diversas linguagens,
nomeadamente em C#, VisualBasic, C ou C++, dando assim bastante liberdade ao
programadores de escolher na sua linguagem preferida. No entanto a linguagem mais
amplamente utilizada o C# devido a ser um bom compromisso entre simplicidade e
expressividade. O C# no ser aprofundado novamente, pois j foi analisado na seo da
linguagem Silverlight.

Projeto em curso com o apoio de:

SmartContentProvider | Entidade Promotora:

Parceiros:

Windows 8
O Windows 8 a ltima verso do sistema operativo da Microsoft em que ocorreram
significativas alteraes de paradigma em relao s verses anteriores. Por um lado a nvel da
arquitectura do sistema em que no exclusivo das arquitecturas de desktop como acontecia
anteriormente, nomeadamente as arquitecturas CISC x86 de 32 e de 64 bits. Este Windows o
primeiro a correr em arquitecturas por norma destinas a ambiente mobile, nomeadamente os
RISC ARM.
Mantendo o posicionamento da Microsoft no mercado, este sistema operativo proprietrio e
pago.
J ao nvel de concepo do kernel do sistema operativo tambm se verificam alteraes. Em
todas as verses anteriores desde o Windows 95 o kernel monoltico, no entanto o Windows
8 apresenta um Kernel designado por hibrido, em que assenta numa base monoltica com
recurso a componentes modulares como ocorre nas abordagens de microkernel. Esta alterao
tem muito a ver com o facto deste novo sistema operativo funcionar nas arquitecturas ARM
dos dispositivos mveis.
O Windows 8 conta ainda com novas funcionalidades, nomeadamente o reconhecimento de
voz para permitir e execuo de comandos, pesquisas ou lanamento de aplicaes apenas com
a fala do utilizador. Esta funcionalidade, mais uma vez, claramente vocacionada
especialmente para o contexto mobile em que o Windows 8 pode ser aplicado.
A nvel de funcionalidades ligadas ao hardware, o Windows 8 o primeiro da famlia Windows
a suportar nativamente a norma USB 3.0 e tambm permite efectuar boot (arranque) dos
computadores mais rapidamente.

No entanto, em reas mais visveis para o utilizador final, o Windows 8 tambm tem uma nova
interface grfica designada de Metro/Modern UI como pode ser observada na Figura 10.
Toda esta nova interface grfica volta a ser orientada para o paradigma tctil e mvel. A
Microsoft com esta interface tentou reduzir ao mximo a dependncia de rato e teclado para
se poder interagir com o sistema. Desta forma, tambm fica assegurada a aproximao de
interface entre o Windows 8 e o Windows Mobile, pois este visual j existia nos dispositivos
com Windows Mobile. Assim, observa-se uma notria convergncia entre estes dois sistemas
operativos da Microsoft, deixando em aberto uma futura unio no futuro, tornando cada vez
mais tnue a separao entre sistema operativo mobile e sistema operativo convencional.
Projeto em curso com o apoio de:

SmartContentProvider | Entidade Promotora:

Parceiros:

A designao para esta interface, internamente e inicialmente era designada por Metro, no
entanto devido a problemas de copyright com a empresa Metro AG, a Microsoft alterou esse
nome para Modern UI.
Outra alterao profunda a nvel visual e de controlo da interface que ocorreu no Windows 8
foi a remoo do menu iniciar. Esse recurso estava presente desde os primrdios do Windows.
Todas as funcionalidades que o menu iniciar facultava, esto actualmente, distribudas pelas
funcionalidades da Metro UI.
A recepo a esta nova interface (Modern UI) no foi consensual, sendo elogiada por uns e
criticada por outros. No entanto no h duvidas que uma melhoria assinalvel no contexto
dos dispositivos touch e mobile.
Na Figura 10 apresentado um exemplo da nova interface do Windows 8.

Figura 10: Nova interface do Windows 8

A nvel visual h ainda a destacar a novidade dos Charms. Essencialmente so controlos que
so partilhados e tanto so utilizados no contexto do sistema operativo como no contexto das
aplicaes.

Projeto em curso com o apoio de:

SmartContentProvider | Entidade Promotora:

Parceiros:

Figura 11: Exemplo dos Charms

Esses Charms so sempre os mesmo cinco controlos, nomeadamente a pesquisa, a partilha,


voltar ao menu principal, dispositivos e opes/configuraes.

Ferramentas
A principal ferramenta para desenvolver aplicaes para o Windows 8 o IDE VisualStudio. Com
o VisualStudio possvel criar aplicaes convencionais e compatveis com verses antigas do
Windows e tambm possvel criar aplicaes com o look and feel j no Modern UI.
Para mais detalhes sobre as funcionalidades tcnicas do VisualStudio consultar a Seco das
ferramentas do Silverlight.

Projeto em curso com o apoio de:

SmartContentProvider | Entidade Promotora:

Parceiros:

Formatos
Os formatos referentes s aplicaes para o Windows 8 resumem-se a dois tipos. Aplicaes
convencionais que funcionam em qualquer Windows e so executadas ou instaladas por via de
ficheiros executveis EXE ou instalveis do Windows MSI. J as aplicaes novas para a interface
Modern UI tanto podem ser instaladas e executadas tambm por via de EXE, MSI ou at pelo
formato XAP j apresentado na Seco de formatos do Windows Phone e do Silverlight presente
neste documento.

Linguagens
As linguagens que podem ser utilizadas para o desenvolvimento de aplicaes para o Windows
8 so muito variadas, desde o C# o C++, F# e JavaScript. Este ltimo s est disponvel para
aplicaes completamente no formato Modern UI. Todas as outras linguagens podem ser
utilizadas no desenvolvimento de aplicaes mais convencionais que no sejam integradas com
o look-and-feel do Modern UI.

Projeto em curso com o apoio de:

SmartContentProvider | Entidade Promotora:

Parceiros:

PhoneGap
O PhoneGap uma plataforma de desenvolvimento destinada criao de aplicaes para
dispositivos mveis. No entanto, esta framework polivalente e permite que a mesma
aplicao criada, seja facilmente portada para as principais tecnologias mobile, nomeadamente
iOS, Android, Windows Phone, Symbian, etc.
Esta capacidade da framework muito interessante para empresas e programadores que
desenvolvam aplicaes para mobile. Ela permite que no seja necessrio que os
programadores conhecerem as vrias linguagens nativas dos diversos sistemas e tambm no
necessitam de reimplementar a mesma aplicao diversas vezes para os diferentes sistemas.
Desta forma, consegue-se agilizar e acelerar muito o desenvolvimento de aplicaes que se
pretendam existir nos diferentes sistemas mobile.

Para criar aplicaes nesta framework os programadores utilizam linguagens web,


nomeadamente JavaScript, HTML 5 e CSS3. Desta forma surge outra vantagem, em que os
programadores podem reciclar os seus conhecimentos prvios em desenvolvimento web sem
terem de aprender nenhuma linguagem de programao nova.
As aplicaes criadas com o PhoneGap funcionam em diversos dispositivos e sistemas
operativos mobile porque essencialmente a aplicao construda em formatos web e ao ser
executada nos diferentes dispositivos executada como tal, recorrendo s capacidades nativas
de cada dispositivo para processar e exibir contedos web, por via de WebViews ou de Webkits
nativos.

O facto do desenvolvimento das aplicaes por esta via ser mais rpido e gil tambm implica
alguns pontos menos favorveis. Nomeadamente o facto da performance ser inferior, assim
como a fluidez, interactividade, feedback e tempo de resposta tambm so inferiores,
resultando numa experincia de utilizao menos rica do que se a aplicao fosse desenvolvida
nativamente.
Outro problema, inerente a esta framework de desenvolvimento que nem sempre possvel
aceder directamente aos sensores e a algumas funcionalidades de hardware de cada
Projeto em curso com o apoio de:

SmartContentProvider | Entidade Promotora:

Parceiros:

dispositivo. No caso do PhoneGap, nas suas primeiras verses, em grande parte dos dispositivos
no era possvel aceder a sensores como por exemplo o GPS, acesso rede ou at ao sistema
de notificaes do sistema. No entanto ao longo das verses do PhoneGap, esses problemas
foram sendo melhorados.
Na Tabela 3, apresentado o mapa de compatibilidades dos diversos recursos e sensores dos
diversos sistemas operativos com a ultima verso do PhoneGap. ainda possvel observar que
os principais sistemas (ultimas verses de iOS, Android e Windows Phone) j so inteiramente
suportadas pelo PhoneGap.

Tabela 3: Compatibilidades das diversas funcionalidades nos diversos sistemas

ainda importante referir e deixar explicito que as aplicaes desenvolvidas no PhoneGap no


so executadas visualmente dentro do browser do dispositivo mas sim independentemente
como se de uma aplicao nativa se tratasse. Para o utilizador totalmente transparente que
se trata de uma aplicao baseada em tecnologias web e que no nativa.
Estas aplicaes tambm so distribudas normalmente por via das App Stores, podem ser
instaladas e removidas normalmente, no sendo acedidas via URL como se tratassem de
pginas web.

Projeto em curso com o apoio de:

SmartContentProvider | Entidade Promotora:

Parceiros:

Esta framework gratuita e open source e est sobre a licena Apache 2.0. Nas primeiras
verses do PhoneGap um utilizador que quisesse a sua aplicao a funcionar em iOS necessitava
de ter uma instalao num computador Apple para efectuar a converso/compilao da
aplicao para iOS. O mesmo acontecia se se pretendesse a aplicao a funcionar em Windows
Phone, era necessrio um computador com Windows para efectuar essa operao. Tal
procedimento era bastante desagradvel para os programadores e quebrava bastante o fluxo
de desenvolvimento destas aplicaes polivalentes. Tendo em conta esse problema e aps
esforos para o resolver, as verses do PhoneGap a partir de Setembro de 2012 j tm um
mecanismo designado de PhoneGap Build que um conversor/compilador na cloud que
permite gerar as aplicaes finais para as vrias arquitecturas/sistemas. Desta forma, os
programadores podem recorrer a este servio cloud gratuito, dispensando os computadores
Mac ou Windows e desta forma criar as aplicaes para os vrios sistemas completamente em
software open source e gratuito.

Ferramentas
Nesta seco das ferramentas no sero apresentadas, pois toda a ferramenta esta na
framework do PhoneGap que j foi anteriormente analisado e descrito.

Formatos
Os formatos obtidos por esta aplicao so todos os formatos nativos para os diferentes
sistemas e que j foram anteriormente analisados: APK para Android, APP para iPhone e XAP
para WindowsPhone.

Linguagens

Projeto em curso com o apoio de:

SmartContentProvider | Entidade Promotora:

Parceiros:

As linguagens utilizadas nesta framework j foram anteriormente referidas, sendo elas o


HTML5, o CSS3 e o JavaScript. O JavaScript utilizado para efectuar animaes e alteraes nos
contedos assim como tratar a parte lgica da aplicao. J o HTML5 e o CSS3 so as linguagens
responsveis por criar e definir todos os elementos grficos apresentados na interface da
aplicao.

Prottipos
Na rea de prottipos, sendo o PhoneGap um paradigma diferente das tecnologias anteriores,
aqui, ser apresentado o processo de criao de uma aplicao polivalente para as diversas
plataformas e no ficaremos focados apenas nas funcionalidades/capacidades da tecnologia
em questo.

Para criar uma aplicao por via do PhoneGap, para que esta seja funcional em diversas
plataformas e evitar assim o desenvolvimento nativo para cada plataforma, necessrio
desenvolver a aplicao em HMTL5, CSS e JavaScript.

Esse desenvolvimento inicial em tecnologias Web pode ser efectuado em qualquer editor de
texto simples ou em ferramentas mais complexas tais como IDEs especficos para
desenvolvimento Web. No exemplo concreto deste prottipo, foi utilizado o IDE web
Dreamweaver, simplesmente porque permite uma criao e edio muito visual de contedos
web criados. Este IDE, tambm facilita muito o desenvolvimento das aplicaes web para o
PhoneGap, pois permite simular imediatamente durante o desenvolvimento, as resolues dos
diferentes dispositivos Smartphone e tablet.

Na Figura 12 apresentado um screenshot dos testes e alteraes realizadas neste prottipo


por via do Dreamweaver.

Projeto em curso com o apoio de:

SmartContentProvider | Entidade Promotora:

Parceiros:

Figura 12: Desenvolvimento de aplicao por via do Dreamweaver

Figura 13: Pormenor de visualizao para vrios dispositivos no Dreamweaver

J na Figura 13, apresentado em maior destaque uma funcionalidade bastante til do


Dreamweaver, que permite alternar rapidamente a visualizao do web site construdo para
resolues de um Smartphone, um tablet e um monitor normal.

Aps a aplicao estar desenvolvida em tecnologias web, necessrio efectuar a criao do


pacote da aplicao para as diversas plataformas. Esse pacote, o que ir permitir que a
Projeto em curso com o apoio de:

SmartContentProvider | Entidade Promotora:

Parceiros:

aplicao seja instalada nos diversos dispositivos, por via das diversas AppStores ou
directamente para efeitos de teste e debug.

Neste ponto, o PhoneGap apresenta dois caminhos distintos na obteno dos pacotes das
aplicaes. A primeira abordagem implica a instalao do SDK de desenvolvimento da
plataforma que se pretende obter o pacote. Por exemplo, para obter um .apk para Android
necessrio instalar o SDK de Android. Para criar o pacote para Windows Phone tambm
necessrio instalar o respectivo SDK de desenvolvimento e assim sucessivamente para as
restantes plataformas, para as quais se pretende criar a aplicao. No caso da criao da
aplicao para iOS, para alm do respectivo SDK, tambm necessrio hardware especifico da
Apple, o que complica ainda mais o fluxo de desenvolvimento das aplicaes multiplataforma.
Esta via (recorrendo aos SDKs) tambm um pouco complicada e exige conhecimentos tcnicos
avanados de informtica apenas para configurar os diversos ambientes de desenvolvimento.
Tendo em conta os factores negativos, anteriormente descritos pela via de instalao dos
diversos SDKs de desenvolvimento, a comunidade do PhoneGap em parceria com a Adobe,
desenvolveram outra via, mais simples, para possibilitar a criao dos diversos pacotes para as
diferentes plataformas de uma forma mais gil.
A soluo, passou por criar um multi-compilador para os vrios formatos e j com os respectivos
SDK de desenvolvimento inteiramente alojados na Cloud. Desta forma, o criador da aplicao
mobile, apenas tem de enviar o seu cdigo HTML5, CSS e JavaScript para este servio e obter
passados alguns minutos, os pacotes dessa aplicao para todas as plataformas mobile.

Do ponto de vista mais tcnico, este processo tm vrias fases. Numa primeira etapa
necessrio que o cdigo da aplicao, recorrendo tecnologias Web (HTML5, CSS e JavaScript),
seja colocado no repositrio GitHub.
O GitHub um Servio de Hosting para a partilha de projectos de programao e que utiliza
como sistema de controlo de verses o Git. Este servio um dos mais utilizados pelas
comunidades de desenvolvimento open source, escrito em Ruby-on-Rails, mas permite alojar
cdigo fonte em qualquer linguagem de programao. O GitHub tambm possui planos
comerciais e gratuitos de acordo com as funcionalidades disponveis e consoante se o cdigo
fonte do projecto, diz respeito a aplicaes pblicas ou privadas. O GitHub possui ainda algumas
funcionalidades tpicas de uma rede social como feeds, followers, wikis e grfico que mostram
quantos e como os programadores tm acedido aos projectos. Estas ferramentas so

Projeto em curso com o apoio de:

SmartContentProvider | Entidade Promotora:

Parceiros:

destinadas a facilitar o ambiente colaborativo dos diversos programadores envolvidos nos


projectos.
Na Figura 14 apresentado o repositrio local do GitHub. aqui que o cdigo fonte da aplicao
tem de ser colocado, sendo necessrio previamente criar um novo projecto na instncia local
do GitHub.

Figura 14: Repositrio local do GitHub

Aps o cdigo fonte estar no GitHub local, necessrio efectuar o commit/update desse
projecto para o repositrio web do GitHub. Durante esse processo, so assinaladas as
alteraes no cdigo fonte (como visvel na Figura 15), para permitir aos programadores
validarem e normalizarem as diferentes verses do cdigo. Para alm disso, sempre
necessrio e obrigatrio, colocar um comentrio sobre as novas alteraes.

Projeto em curso com o apoio de:

SmartContentProvider | Entidade Promotora:

Parceiros:

Figura 15: Realizao de um commit/update para o repositrio Web do GitHub

Aps esta etapa de inserir o cdigo fonte no GitHub local e propaga-lo ao repositrio Web do
GitHub necessrio aceder ao site do GitHub e a conta do developer, obtendo o que aparece
na Figura 16, o ecr principal da conta do GitHub. Ai possvel ver um sumrio dos diversos
projectos inseridos pelo prprio dono da conta, ou que o dono da conta foi associado a outros
projectos que no so da sua autoria, mas que tambm colaborador.
Na parte inferior da Figura 16 so apresentadas diversas mtricas e contadores sobre o nmero
de commits, updates e alteraes efectuadas ao longo do tempo.

Projeto em curso com o apoio de:

SmartContentProvider | Entidade Promotora:

Parceiros:

Figura 16: Ecr principal da conta do GitHub

Ainda na Figura 16, aps ser seleccionado um projecto, entra-se ento na vista de detalhe do
mesmo, como possvel observar na Figura 17, onde possvel visualizar e consultar todas as
pastas e ficheiros do cdigo fonte.
Ainda no topo da Figura 17 e em maior destaque na Figura 18, possvel observar o link do
GitHub terminado com a extenso .git. Esse link de extrema importncia para o passo
seguinte, na obteno dos pacotes da aplicao, para as diversas plataformas mobile.

Projeto em curso com o apoio de:

SmartContentProvider | Entidade Promotora:

Parceiros:

Figura 17: Visualizao do contedo de um projecto na conta do GitHub

Figura 18: Link .git para um projecto no repositrio do GitHub

Aps a concluso deste passo, de obter o link GitHub do repositrio com o contedo web da
aplicao, necessrio ento compilar o pacote para as diversas plataformas mobile. Para tal,
e de modo a evitar a instalao local de todos os SDK, utilizou-se um servio na Cloud, designado
por PhoneGap Build.
O servio PhoneGap Build veio revolucionar e simplificar bastante o processo de compilao
dos pacotes de uma aplicao, pois o que antes necessitava de bastantes conhecimentos
tcnicos para cada plataforma e demorava bastante tempo, agora pode ser realizado distancia
Projeto em curso com o apoio de:

SmartContentProvider | Entidade Promotora:

Parceiros:

de um clique com um tempo de espera de 2 ou 3 minutos e com a vantagem, que de uma s


aco, obtm-se ao mesmo tempo e de uma forma paralela, os pacotes da aplicao para as
seguintes plataformas mobile:

iOS, Android
Windows Phone 7
Windows Phone 8
BlackBerry
Sybian
Bada
WebOS

J dentro do PhoneGap Build, o primeiro passo clicar no boto New app, como visvel na
Figura 19.

Figura 19: Adio de nova aplicao

Aps essa aco, surge o formulrio visvel na Figura 20 onde inserido o link proveniente do
GitHub. Facultando esse link ao PhoneGap Build, ele acede ao cdigo fonte da aplicao, como
visvel na Figura 21.
Aps esse loading ser terminado apresentado o que visvel na Figura 22, onde so
apresentadas (do lado inferior esquerdo) vrias opes para o debug e tratamento de
excepes durante a compilao. Do lado inferior direito, so apresentados dois botes, um
para efectuar a remoo do repositrio da aplicao e outro para iniciar a fase de compilao
e gerao dos pacotes para as diferentes plataformas.

Projeto em curso com o apoio de:

SmartContentProvider | Entidade Promotora:

Parceiros:

Figura 20: Campo para a insero do link do repositrio do GitHub

Figura 21: Acesso do PhoneGap Build ao cdigo fonte do GitHub

Figura 22: Repositrio adicionado e pronto a compilar

Projeto em curso com o apoio de:

SmartContentProvider | Entidade Promotora:

Parceiros:

Ao iniciar a fase de compilao, o utilizador do PhoneGap Build pode observar a barra de


progresso para cada uma das plataformas, como visvel na Figura 23. Aqui tambm possvel
dar instrues para actualizar o cdigo fonte, ou iniciar de novo o processo de compilao.

Figura 23: Compilao dos pacotes para as vrias plataformas

Figura 24: Resultado final da criao dos pacotes para as vrias plataformas

Projeto em curso com o apoio de:

SmartContentProvider | Entidade Promotora:

Parceiros:

Na Figura 24 apresentado o resultado final do processo de compilao dos pacotes. Nos casos
dos pacotes para iOS e BlackBerry apresentado um erro no processo. Esse erro, deve-se
simplesmente ao facto de no terem sido inseridas as credenciais de desenvolvimento, visto
nestas plataformas (iOS e BlackBerry) ser necessrio, efectuar previamente, um registo e
pagamento de licena de developers.
Todas as outras plataformas, (Windows 7 e 8, Android, Sybian e WebOS) os pacotes da aplicao
foram gerados com sucesso.
Est tambm disponvel, a opo de recompilar especificamente para uma nica plataforma e
a possibilidade de efectuar o download dos pacotes no formato pretendido consoante a
plataforma em questo. Esses formatos so nomeadamente o .XAP para Windows Mobile, o
.IPK para WebOS, .APK para Android e o .WGZ para Sybian.
Esses pacotes ao ser efectuado o download, a aplicao pode ser testada por via do SDK e do
emulador da respectiva plataforma, ou ento, mais facilmente, pode ser utilizado o QR Code
presente no topo da Figura 24, para instalar directamente a aplicao no dispositivo mvel.

Na Figura 25 apresentado o processo de instalao da aplicao a partir do PhoneGap Build.


Neste caso concreto apresentado, a plataforma escolhida foi o Android 4.2.1 no dispositivo
Nexus S.
No topo da Figura 25 apresentado o processo de captura do QR Code apresentado na pgina
Web do PhoneGap aps a compilao e criao dos pacotes para as diversas plataformas. Na
Figura 25, em baixo esquerda, possvel ver a notificao de concluso do download da
aplicao desencadeado pela leitura do QR Code. J em baixo, do lado direito, apresentado o
ecr seguinte referente instalao da mesma aplicao.

Projeto em curso com o apoio de:

SmartContentProvider | Entidade Promotora:

Parceiros:

Figura 25: Processo de Download e instalao da aplicao directamente para o Smartphone

Projeto em curso com o apoio de:

SmartContentProvider | Entidade Promotora:

Parceiros:

Figura 26: Aplicao a funcionar na verso Android

Para terminar, a Figura 26 apresenta a um screenshot da aplicao a correr no dispositivo


Android. de recordar que esta aplicao a mesma que foi editada no Dreamweaver (Figura
12) no inicio do fluxo de criao da aplicao para multi-plataforma por via do PhoneGap.

O prottipo utilizado para efectuar todo o fluxo de testes uma simples aplicao que foi
escolhida com o propsito de demonstrar que mesmo com tecnologia web possvel criar
aplicaes relativamente complexas e que utilizem a maior parte dos recursos de hardware e
do sistema do dispositivo mvel. O exemplo tambm demonstra que o facto do PhoneGap
trabalhar com tecnologias web, as aplicaes desenvolvidas no ficam limitadas a uma interface
pobre e limitada a formulrios web.
O exemplo demonstra como possvel por via de CSS, HTML5 e JavaScript criar um exemplo
interactivo, dinmico e animado com a construo de um jogo muito simples. Como possvel

Projeto em curso com o apoio de:

SmartContentProvider | Entidade Promotora:

Parceiros:

observar na Figura 26, toda a interface construda com divs de HTML (<div>) que
posteriormente so animadas e controladas com lgica controlado por via de JavaScript.
O prottipo constitudo por uma imagem de fundo que repetida diversas vezes em mosaico
para permitir criar uma superfcie de jogo bastante grande. J a personagem, visvel na imagem,
assim como os objectos que tm de ser colecionados so construdos por simples divs de HTML.
O movimento da personagem tanto pode ser controlado com toque e movimentos de arrastar
o dedo sobre a tela do dispositivo, ou ento, utilizando o acelermetro do dispositivo, e
inclinando simplesmente o dispositivo para o lado que se pretende que a personagem se mova.
Estas duas vias de controlo so j facultadas pela API e funcionalidades fornecidas pelo
PhoneGap.
Ainda na Figura 26, possvel observar no topo e na parte inferior da figura informao textual.
No topo o ttulo, e na parte inferior uma tabela com as diversas pontuaes obtidas. Ambos os
elementos, so criados recorrendo a simples tabelas de HTML (<tr><td>), que tm o seu visual
completamente alterando recorrendo apenas a personalizaes por via de CSS.

Projeto em curso com o apoio de:

SmartContentProvider | Entidade Promotora:

Parceiros:

Appcelerator Titanium
O Appcelerator Titanium uma framework de desenvolvimento dedicada criao de
aplicaes para dispositivos mveis. semelhana do PhoneGap tambm tem o objectivo de
permitir desenvolver uma aplicao uma nica vez e esta, ser compilada nativamente e
distribuda para os diversos sistemas, evitando assim o trabalho moroso de desenvolver a
mesma aplicao vrias vezes para diferentes sistemas. Os sistemas que o Appcelerator
Titanium anuncia que consegue criar as aplicaes nativamente so o iOS, Android e BlackBerry.

O Appcelerator Titanium uma framework open source, gratuita e est sobre a licena Apache
Public License V2. No entanto, para desenvolver aplicaes necessrio ter o SDK dos sistemas
para os quais se quer distribuir a aplicao. No caso do Android o respectivo SDK que tambm
open source e gratuito. No caso do iOS tambm necessrio ter o respectivo SDK. No entanto
o acesso a esse SDK j no gratuito e apenas est disponvel para utilizao em computadores
Apple. Este factor, acaba por dificultar um pouco o objectivo open source do Appcelerator
Titanium. A este nvel o PhoneGap acaba por ser superior e ter uma soluo mais engenhosa
de contornar este problema, colocando o servio de compilao na cloud e evitando que os
developers tenham de ter instalado localmente os diferentes SDKs.

A nvel de evoluo desta framework, inicialmente (2009) o Appcelerator Titanium apenas


conseguia gerar aplicaes nativas para Android e iOS, mais especificamente e apenas para o
dspositivo iPhone. Em 2010 foi ento adicionado o suporte e a capacidade para gerar aplicaes
especificas para as dimenses do iPad. Ainda no fim de 2010 foi anunciada tambm a
capacidade de gerar aplicaes para o sistema BlackBerry, no entanto, essa variante, devido a
diversos problemas tcnicos, tem permanecido em verso beta e destinada apenas a testes
pela comunidade.

Ainda em relao s funcionalidades base do Appcelerator Titanium, elas sofreram vrias


alterao ao longo do tempo e esto relacionadas com um tpico que tem gerado bastante
confuso sobre o real funcionamento do Appcelerator Titanium, nomeadamente se funciona
em WebViews, se realmente compilado ou interpretado para os diferentes sistemas.
Projeto em curso com o apoio de:

SmartContentProvider | Entidade Promotora:

Parceiros:

Inicialmente o funcionamento do Appcelerator Titanium era muito semelhante ao


funcionamento do PhoneGap em que a criao dos componentes da aplicao eram criados em
HTML5, CSS3, JavaScript, uma API especifica em JavaScript do Appcelerator Titanium e qualquer
outra biblioteca auxiliar em JavaScript, como por exemplo o jQuery. Todos os elementos criados
eram de famlia web e eram apresentados numa webView no dispositivo do utilizador final.
Aps o lanamento da verso 1.0 no final de 2010 houve alteraes profundas no
funcionamento do Appcelerator Titanium. As componentes grficas das aplicaes deixaram de
ser de famlia web e passaram a ser exibidas nativamente. Por exemplo, em iOS so exibidas
por via do motor nativo de Interface grfica, nomeadamente o Core Animation. Desta forma
deixou de ser possvel utilizar HTML5, CSS3 e bibliotecas genricas de JavaScript (ex. jQuery) na
criao dos elementos grficos. Passou ento a s se poder utilizar a API do Appcelerator
Titanium em JavaScript, tanto para criar a lgica das aplicaes como de todos os elementos
grficos e respectivas animaes e transies.
Esta medida trs vantagens bvias, nomeadamente o incremento de performance e de fluidez
das aplicaes, visto que desta forma passam a ser executadas nativamente. Como
desvantagem destas alteraes a perda da capacidade de utilizar as linguagens Web comuns
(HTML5, CSS3) j conhecidas dos programadores e passar a ser necessrio aprender e conhecer
a API JavaScript de desenvolvimento do Appcelerator Titanium.
Em relao aplicao no ser realmente compiladas para bytecodes de Objective-C (no caso
do iOS), utilizada uma espcie de linguagem intermdia a partir do JavaScript da API do
Appcelerator Titanium. O funcionamento dessa linguagem intermdia semelhante ao
funcionamento das mquinas virtuais de Java ou do Adobe Air. Desta forma as aplicaes do
Appcelerator Titanium na verdade so interpretadas e no compiladas nativamente. claro que
para cada sistema (iOS/Android) existe um interpretador nativo e optimizado para cada
sistema.

Para desenvolver as aplicaes o Appcelerator conta com um IDE derivado do projecto open
source Aptana. Esta ferramenta j foi analisada em maior profundidade na seco das
ferramenta do HTML5.

Projeto em curso com o apoio de:

SmartContentProvider | Entidade Promotora:

Parceiros:

Ferramentas
Nesta seco das ferramentas no sero apresentadas, pois toda a ferramenta esta na
framework do Appcelerator Titanium que j foi anteriormente analisado e descrito.

Formatos
Os formatos obtidos por esta aplicao so todos os formatos nativos para os diferentes
sistemas e que j foram anteriormente analisados. Por exemplo, APK para Android, APP para
iPhone.

Linguagens
As linguagens utilizadas nesta framework j foram anteriormente referidas, sendo elas na
verso mais recente do Appcelerator Titanium o JavaScript. Toda a sintaxe do JavaScript
respeitada, no entanto todas as instrues e funcionalidades esto contidas na API do prprio
Appcelerator Titanium, no sendo possvel utilizar outras bibliotecas de JavaScipt.

Prottipos
Na rea de prottipos referente ao Appcelerator Titanium ser apresentado um fluxo da
construo de uma aplicao multiplataforma semelhana com o que foi feito com o
PhoneGap.

Para esse fluxo ser executado fundamental, numa primeira fase, ter todos os elementos
necessrios instalao e funcionamento. Em primeira instancia necessrio instalar o SDK da
ou das respectivas plataformas para as quais se pretende desenvolver, no caso do Appcelerator
Titanium as plataformas para as quais pode ser realizado desenvolvimento (instalando o
respectivo SDK) o Android, o iOS, BlackBerry e o Tizen. No caso do iOS e do BlackBerry
necessrio ter uma conta registada de desenvolvimento. Ainda referente ao iOS tambm
Projeto em curso com o apoio de:

SmartContentProvider | Entidade Promotora:

Parceiros:

necessrio dispor de hardware Mac. No caso do Android e do Tizen no necessrio qualquer


licena paga, e todo o software de desenvolvimento open source e gratuito.
No caso do SDK Android, as verses suportadas pelo Appcelerator Titanium so desde a verso
mnima 2.2 de Android at verso 4.1.X de Android.
Para alm da instalao dos SDK das plataformas para onde se pretende compilar a aplicao
tambm necessrio ter instalado o SDK da Oracle para Java, mais conhecido por JDK. A verso
do SDK necessria para funcionar com o Appcelerator Titanium a verso 6.
Este JDK necessrio devido ao IDE do Appcelerator Titanium, chamado de Titanium Studio ser
uma aplicao desenvolvida em JAVA. Essa necessidade ocorre tanto em ambiente Windows,
Apple e Linux, com a agravante que em Linux ainda necessrio adicionar a biblioteca GTK e
em Apple/Macintosh necessrio instalar o Xcode Command Line Tools.
Para o correcto funcionamento do Titanium, ainda necessrio adicionar ao computador de
desenvolvimento, a biblioteca Node.js e referenci-la nas variveis de sistema. Esta biblioteca
foi desenvolvida para auxiliar no desenvolvimento de aplicaes de alta performance e
altamente escalveis no que diz respeito a conexes http e eventos de I/O sem que estes sejam
bloqueantes entre sim.

Aps o cumprimento destes pr-requisitos, ento possvel instalar o Titanium Studio, o IDE
nativo do Appcelerator Titanium. Aps a instalao deste IDE ainda necessrio configurar
manualmente as ligaes com os diversos SDK presentes no sistema.

Projeto em curso com o apoio de:

SmartContentProvider | Entidade Promotora:

Parceiros:

Ao entrar no Titanium Studio, apresentado ao programador um dashboard (i.e. painel de


controlo) dividido por separadores onde possvel efectuar diversas aces (Figura 27). Existe
um separador Get Started onde possvel efectuar configuraes visuais no IDE e validar se
todos os componentes e requisitos esto operacionais. No separador Learn possvel
encontrar diversos URL e canais de vdeos com informao prtica e tutoriais de ajuda a novos
programadores. O separador Marketplace apresenta uma loja online com diversos plug-ins e
funcionalidades que podem ser adicionadas ao Titanium Studio. Algumas delas so gratuitas e
outras pagas.

Figura 27: Dashboard inicial do Titanium Studio

Projeto em curso com o apoio de:

SmartContentProvider | Entidade Promotora:

Parceiros:

Por fim existe o separador Develop, ai que se encontra o ponto de partida para a criao de
uma nova aplicao. A pode-se partir de aplicaes exemplo j criadas, partir de uma aplicao
completamente nova, ou iniciar a criao da aplicao a partir de um template j com a
estrutura visual base da aplicao, como possvel observar na Figura 28.

Figura 28: Escolha de templates para a criao de novas aplicaes

Aps a criao base da aplicao possvel observar no IDE a estrutura do projecto, assim como
visvel na Figura 29. A nvel de pastas principais, existe a pasta i18n onde so colocados os
diversos dicionrios para as diversas lnguas, de modo a ser possvel construir aplicaes com
diversos idiomas. Dessa forma, os textos da interface, no cdigo fonte so colocadas apenas

Projeto em curso com o apoio de:

SmartContentProvider | Entidade Promotora:

Parceiros:

etiquetas, que posteriormente em runtime so traduzidas para palavras concretas, consoante


o idioma do sistema em que o dispositivo mvel se encontra.
Na pasta KindleFire_AndroidManifest utilizada apenas como repositrio de certificados e
manifestos de segurana, no sendo muito importante na fase inicial de desenvolvimento da
aplicao.

Figura 29: Estrutura standard de um projecto

Na pasta do projecto platform onde existem diversas sub-pastas referentes s vrias


plataformas em que a aplicao vai ser compilada e efectuado o deploy. Neste caso concreto
apenas apresentado uma sub-pasta para Android e iOS, no entanto tambm poderiam surgir
mais pastas para BlackBerry e Tizen.
Estas pastas, so os repositrios dos contedos da aplicao, contedos esses que variam
consoante a plataforma devido a diferenas de formatos suportados e s diferenas de
resolues dos displays das diferentes plataformas. Desta forma, tambm separado
conceptualmente, o que visual ou contedo da aplicao do que a parte lgica da mesma.
Esta abordagem permite elasticidade e adaptao dos contedos s diferentes plataformas,
mantendo o comportamento lgico separado, pois ser idntico para todas as plataformas.

Projeto em curso com o apoio de:

SmartContentProvider | Entidade Promotora:

Parceiros:

Por fim, a pasta Resources a pasta onde inserido o ficheiro tiapp.xml responsvel por
estruturar e agregar toda a aplicao/projecto. Nesta pasta, onde tambm se iro adicionar
os diferente ficheiros .js (JavaScript) que iro ser responsveis pela lgica e comportamento de
toda a aplicao. Como j foi visto anteriormente, estes ficheiros lgicos no so misturados
com os contedos da aplicao.
Na Figura 30 possvel observar a edio de cdigo fonte dos ficheiro JavaScript.

Figura 30: Exemplo de edio de cdigo fonte no IDE

ainda de relembrar que o JavaScript utilizado, tem como seria de esperar, uma sintaxe
completamente normal. No entanto no assenta nas funes normais/nativas de JavaScript ou
de jQuery ou de outras bibliotecas comuns de JavaScipt que os programadores esto
habituados a utilizar. As funes e funcionalidades do JavaScript do Appcelerator Titanium so
especificas desta plataforma e obrigam os programadores a passarem por uma curva de
aprendizagem deste dialecto de JavaScript especifico do contexto do Titanium.
Projeto em curso com o apoio de:

SmartContentProvider | Entidade Promotora:

Parceiros:

Figura 31: Chamada do emulador de Android por via do SDK

Na Figura 31 apresentado o menu do Titanium Studio onde se executa o emulador do


dispositivo onde se ir testar a aplicao. Neste caso aparece o emulador web, que uma
ferramenta standard do Titanium Studio. Tambm aparece o emulador de Android, por via do
SDK instalado. Se os outros SDK estivessem instalados, seria possvel ver a possibilidade de
executar a aplicao num emulador de iOS, BlackBerry ou Tizen.

Aps ser chamado o emulador, ele inicializado ao mesmo tempo da maquina virtual Dalvik,
responsvel por correr as aplicaes em qualquer dispositivo. A Figura 32 apresenta essa
inicializao. Do lado esquerdo encontra-se o emulador em inicializao, j do lado direito,
aparece a consola da mquina virtual Dalvik e onde possvel visualizar todos os eventos
ocorridos.

Projeto em curso com o apoio de:

SmartContentProvider | Entidade Promotora:

Parceiros:

Figura 32: Arranque do emulador e mquina virtual Dalvik

Figura 33: Execuo do emulador como se tratasse de um dispositivo mvel convencional

Na Figura 33 j possvel observar o simulador em completo funcionamento. Este simulador


no se limita a apresentar e executar a aplicao criada. O simulador executa todo o sistema
operativo de igual forma que este seria executado num dispositivo mobile.
Projeto em curso com o apoio de:

SmartContentProvider | Entidade Promotora:

Parceiros:

Por fim na Figura 34 apresentado o menu das aplicaes instaladas no dispositivo emulado e
do lado direito apresentada a mesma aplicao aberta e editada no Titanium Studio, mas aqui
a ser executada normalmente como seria num dispositivo real.

Figura 34: Execuo da aplicao de testes

A aplicao escolhida para servir de exemplo no fluxo de criao de uma aplicao


multiplataforma por via do Appcelerator Titanium, uma aplicao bastante simples, mas que
mostra como relativamente fcil utilizar o Appcelerator Titanium para aceder a recursos
especficos do dispositivo, mostrando que possvel aceder a praticamente a todos os recursos
como se se tratasse de uma aplicao nativa.
Neste exemplo concreto, a aplicao apenas permite pesquisar e explorar em mapas
(GoogleMaps). Com este simples exemplo possvel verificar as capacidades e tempos de
resposta interaco de efectuar scroll no mapa por via de toque e de arrastar o dedo no ecr
do dispositivo. Para alm dessa interaco, tambm possvel verificar o acesso da aplicao
dos mapas localizao fornecida por via do sensor GPS do dispositivo mobile.

Projeto em curso com o apoio de: