Escolar Documentos
Profissional Documentos
Cultura Documentos
18/04/2013
Prototipagem e
Comparao de
Tecnologias RIA
Vol 2
Parceiros:
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:
Parceiros:
Ferramentas ............................................................................................................................48
Formatos .................................................................................................................................48
Linguagens ...............................................................................................................................48
Prottipos ................................................................................................................................48
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:
Parceiros:
Figura 33: Execuo do emulador como se tratasse de um dispositivo mvel convencional ....55
Figura 34: Execuo da aplicao de testes ................................................................................56
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
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:
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.
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%
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.
Parceiros:
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)
Parceiros:
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.
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.
Parceiros:
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:
Parceiros:
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.
Parceiros:
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.
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.
Verso
iOS 1.x
iOS 2.x
iOS 3.x
iOS 4.x
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
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.
Parceiros:
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.
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.
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:
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.
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.
Parceiros:
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.
Parceiros:
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.
Parceiros:
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:
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.
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:
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.
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.
Parceiros:
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.
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.
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.
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:
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.
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
Parceiros:
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.
Parceiros:
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
Parceiros:
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.
Parceiros:
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.
Parceiros:
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.
Parceiros:
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:
Parceiros:
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.
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.
Parceiros:
Parceiros:
Figura 24: Resultado final da criao dos pacotes para as vrias plataformas
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.
Parceiros:
Parceiros:
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
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.
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.
Parceiros:
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.
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:
Parceiros:
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.
Parceiros:
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.
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
Parceiros:
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.
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:
Parceiros:
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.
Parceiros:
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.