QREN SmartCP Prototipagem e Comparação de Tecnologias RIA Vol2 1.1

Embed Size (px)

DESCRIPTION

O presente documento “Prototipagem e comparação 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 comparação das principais tecnologias RIA actuais”.

Citation preview

  • SmartContentProvider | Entidade Promotora: Parceiros:

    Projeto em curso com o apoio de:

    18/04/2013

    Prototipagem e Comparao de Tecnologias RIA Vol 2

  • SmartContentProvider | Entidade Promotora: Parceiros:

    Projeto em curso com o apoio de:

    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

  • SmartContentProvider | Entidade Promotora: Parceiros:

    Projeto em curso com o apoio de:

    Ferramentas ............................................................................................................................48

    Formatos .................................................................................................................................48

    Linguagens ...............................................................................................................................48

    Prottipos ................................................................................................................................48

  • SmartContentProvider | Entidade Promotora: Parceiros:

    Projeto em curso com o apoio de:

    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

  • SmartContentProvider | Entidade Promotora: Parceiros:

    Projeto em curso com o apoio de:

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

    Figura 34: Execuo da aplicao de testes ................................................................................56

  • SmartContentProvider | Entidade Promotora: Parceiros:

    Projeto em curso com o apoio de:

    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

  • SmartContentProvider | Entidade Promotora: Parceiros:

    Projeto em curso com o apoio de:

    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.

  • SmartContentProvider | Entidade Promotora: Parceiros:

    Projeto em curso com o apoio de:

    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 Nome Verso API % de Utilizadores

    Android Alpha R2-D2 -

    Android Beta 1 M3-rc22a -

    Android Beta 2 - -

    Android 1.0 - 1 < 0,1%

    Android 1.1 - 2 < 0,1%

    Android 1.5 - Cupcake 3 < 0,1%

    Android 1.6 - Donut 4 0,2%

  • SmartContentProvider | Entidade Promotora: Parceiros:

    Projeto em curso com o apoio de:

    Android 2.0 - 2.1 Eclair 5 6 - 7 1,9%

    Android 2.2.x Froyo 8 7,5%

    Android 2.3.x Gingerbread 9 44,1%

    Android 3.x.x Honeycomb 11 12 - 13 1,2%

    Android 4.0.x Ice Cream Sandwich 14 15 28,6%

    Android 4.1.x - 4.2.x Jelly Bean 16 - 17 16,5%

    Android 5 Key Lime Pie - -

    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.

  • SmartContentProvider | Entidade Promotora: Parceiros:

    Projeto em curso com o apoio de:

    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)

  • SmartContentProvider | Entidade Promotora: Parceiros:

    Projeto em curso com o apoio de:

    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

  • SmartContentProvider | Entidade Promotora: Parceiros:

    Projeto em curso com o apoio de:

    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.

  • SmartContentProvider | Entidade Promotora: Parceiros:

    Projeto em curso com o apoio de:

    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.

  • SmartContentProvider | Entidade Promotora: Parceiros:

    Projeto em curso com o apoio de:

    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.

  • SmartContentProvider | Entidade Promotora: Parceiros:

    Projeto em curso com o apoio de:

  • SmartContentProvider | Entidade Promotora: Parceiros:

    Projeto em curso com o apoio de:

    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 Data de lanamento

    iOS 1.x 29/06/2007 -

    iOS 2.x 11/07/2008 SDK

    iOS 3.x 17/06/2009 Push Notifications

    iOS 4.x 21/06/2010 Multitask Facetime

    Retina Display Home Screen Folders

    Game Center

  • SmartContentProvider | Entidade Promotora: Parceiros:

    Projeto em curso com o apoio de:

    Personal Hotspot

    iOS 5.x 06/06/2011 Siri Notification

    iMessage iCloud

    iOS 6.x 11/06/2012 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

  • SmartContentProvider | Entidade Promotora: Parceiros:

    Projeto em curso com o apoio de:

    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.

  • SmartContentProvider | Entidade Promotora: Parceiros:

    Projeto em curso com o apoio de:

    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

  • SmartContentProvider | Entidade Promotora: Parceiros:

    Projeto em curso com o apoio de:

    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.

  • SmartContentProvider | Entidade Promotora: Parceiros:

    Projeto em curso com o apoio de:

    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.

  • SmartContentProvider | Entidade Promotora: Parceiros:

    Projeto em curso com o apoio de:

    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.

  • SmartContentProvider | Entidade Promotora: Parceiros:

    Projeto em curso com o apoio de:

    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.

  • SmartContentProvider | Entidade Promotora: Parceiros:

    Projeto em curso com o apoio de:

    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

  • SmartContentProvider | Entidade Promotora: Parceiros:

    Projeto em curso com o apoio de:

    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.

  • SmartContentProvider | Entidade Promotora: Parceiros:

    Projeto em curso com o apoio de:

    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.

  • SmartContentProvider | Entidade Promotora: Parceiros:

    Projeto em curso com o apoio de:

    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.

  • SmartContentProvider | Entidade Promotora: Parceiros:

    Projeto em curso com o apoio de:

    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.

  • SmartContentProvider | Entidade Promotora: Parceiros:

    Projeto em curso com o apoio de:

    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.

  • SmartContentProvider | Entidade Promotora: Parceiros:

    Projeto em curso com o apoio de:

    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

  • SmartContentProvider | Entidade Promotora: Parceiros:

    Projeto em curso com o apoio de:

    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.

  • SmartContentProvider | Entidade Promotora: Parceiros:

    Projeto em curso com o apoio de:

    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

  • SmartContentProvider | Entidade Promotora: Parceiros:

    Projeto em curso com o apoio de:

    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.

  • SmartContentProvider | Entidade Promotora: Parceiros:

    Projeto em curso com o apoio de:

    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

  • SmartContentProvider | Entidade Promotora: Parceiros:

    Projeto em curso com o apoio de:

    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

  • SmartContentProvider | Entidade Promotora: Parceiros:

    Projeto em curso com o apoio de:

    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.

  • SmartContentProvider | Entidade Promotora: Parceiros:

    Projeto em curso com o apoio de:

    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.

  • SmartContentProvider | Entidade Promotora: Parceiros:

    Projeto em curso com o apoio de:

    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.

  • SmartContentProvider | Entidade Promotora: Parceiros:

    Projeto em curso com o apoio de:

    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

  • SmartContentProvider | Entidade Promotora: Parceiros:

    Projeto em curso com o apoio de:

    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.

  • SmartContentProvider | Entidade Promotora: Parceiros:

    Projeto em curso com o apoio de:

    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

  • SmartContentProvider | Entidade Promotora: Parceiros:

    Projeto em curso com o apoio de:

    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

  • SmartContentProvider | Entidade Promotora: Parceiros:

    Projeto em curso com o apoio de:

    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.

  • SmartContentProvider | Entidade Promotora: Parceiros:

    Projeto em curso com o apoio de:

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

  • SmartContentProvider | Entidade Promotora: Parceiros:

    Projeto em curso com o apoio de:

    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

  • SmartContentProvider | Entidade Promotora: Parceiros:

    Projeto em curso com o apoio de:

    observar na Figura 26, toda a interface construda com divs de HTML () 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 (), que tm o seu visual

    completamente alterando recorrendo apenas a personalizaes por via de CSS.

  • SmartContentProvider | Entidade Promotora: Parceiros:

    Projeto em curso com o apoio de:

    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.

  • SmartContentProvider | Entidade Promotora: Parceiros:

    Projeto em curso com o apoio de:

    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.

  • SmartContentProvider | Entidade Promotora: Parceiros:

    Projeto em curso com o apoio de:

    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

  • SmartContentProvider | Entidade Promotora: Parceiros:

    Projeto em curso com o apoio de:

    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.

  • SmartContentProvider | Entidade Promotora: Parceiros:

    Projeto em curso com o apoio de:

    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

  • SmartContentProvider | Entidade Promotora: Parceiros:

    Projeto em curso com o apoio de:

    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

  • SmartContentProvider | Entidade Promotora: Parceiros:

    Projeto em curso com o apoio de:

    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.

  • SmartContentProvider | Entidade Promotora: Parceiros:

    Projeto em curso com o apoio de:

    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.

  • SmartContentProvider | Entidade Promotora: Parceiros:

    Projeto em curso com o apoio de:

    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.

  • SmartContentProvider | Entidade Promotora: Parceiros:

    Projeto em curso com o apoio de:

    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.

  • SmartContentProvider | Entidade Promotora: Parceiros:

    Projeto em curso com o apoio de:

    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.