Escolar Documentos
Profissional Documentos
Cultura Documentos
18/04/2013
Prototipagem e
Comparao de
Tecnologias RIA
Vol 3
Parceiros:
Parceiros:
ndice
ndice Figuras.................................................................................................................................2
ndice de Tabelas ...........................................................................................................................3
Introduo .....................................................................................................................................4
Prottipos mobile nativos .............................................................................................................5
Nicereader .................................................................................................................................5
Outras reas/tecnologias mobile ..............................................................................................9
Acelermetro ......................................................................................................................10
Giroscpio ...........................................................................................................................12
Multi-Touch .........................................................................................................................15
Armazenamento e Persistncia de Dados ..........................................................................21
Parceiros:
ndice Figuras
Figura 1: Exemplo de aplicao do Nicereader em diferentes plataformas .................................6
Figura 2: Diversos exemplos de contedos do Nicereader ...........................................................7
Figura 3: Esquema do workflows do Nicereader ..........................................................................8
Figura 4: Interactividades e contedos disponveis no Nicereader ..............................................9
Figura 5: Obteno dos dados em bruto do acelermetro.........................................................10
Figura 6: Exemplo de aplicao controlada pelo acelermetro .................................................11
Figura 7: Dados em bruto oriundos do giroscpio ......................................................................13
Figura 8: Rotao sobre os eixos .................................................................................................15
Figura 9: Aplicaes de demonstrao ed capacidades multi-touch..........................................19
Figura 10: Aplicaes que apresentam contedos de bases de dados SQLite ...........................22
Parceiros:
ndice de Tabelas
Tabela 1: Eventos single touch ....................................................................................................16
Tabela 2: Eventos multi-touch ....................................................................................................17
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:
Nicereader
O Nicereader uma plataforma de distribuio de publicaes / documentos, que permite criar
e disponibilizar contedos dinmicos e interactivos para mltiplas plataformas, nomeadamente
por via Web e tablet (iPad, android e windows 8).
O Nicereader uma soluo completa de digital publishing, que suporta formatos definidos
para papel, ou criados especificamente para dispositivos digitais. Neste seguimento, a
plataforma permite a apresentao de contedos de origem documental (e.g. livros, revistas,
jornais, documentos), enriquecidos com elementos multimdia, como udio, vdeo, slide
shows, links internos e externos, grficos, infografias interactivas, hotspots, simuladores,
questionrios e scrolls fluidos e dinmicos. Tambm permite efectuar pesquisas rpidas sobre
os contedos publicados, assim como, permite facilmente estabelecer ligaes com
plataformas de compras online j existentes, permitindo assim inclusive, ser utilizado como um
catlogo.
Para alm do enriquecimento da experincia papel atravs de elementos multimdia,
permite ainda a incluso de apontadores para contedos externos prpria aplicao. Assim
possvel utilizar o contedo documental, como guia para recursos ou servios relacionados, e
que complementem a experincia papel, criando assim um factor de enriquecimento dos
contedos, orientando-os aos RIA, provocando assim uma experincia gratificante imersiva
para o utilizador.
Parceiros:
Com o Nicereader tambm possvel efectuar facilmente a partilha dos diversos contedos
pelas diferentes redes sociais, em que distancia de um clique, o utilizador/consumidor dos
contedos pode facilmente difundir esses contedos.
Parceiros:
Para construir uma publicao para o Nicereader existe um workflow fcil e intuitivo de ser
concretizado geralmente por uma equipa editorial. Esse workflow constitudo por trs etapas,
nomeadamente a composio e edio, a publicao e a distribuio.
Na Figura 3 apresentado esquematicamente o workflow anteriormente referido.
Na primeira fase desse workflow efectuada uma preparao e utilizada a aplicao desktop
Nicereader Composer para o carregamento do documento (com base em contedo existente
como PDFs ou imagens) e posterior enriquecimento. O processo de enriquecimento consiste na
adio de contedos multimdia como imagens, vdeo ou udio, assim como apontadores para
recursos externos (geralmente URLs de sites com informao complementar). Estes
apontadores externos, quando utilizados numa perspectiva comercial podem apontar para
parceiros que pretendam fazer o upselling dos seus produtos (funcionando o documento como
catlogo de servios / produtos).
Finalizada a fase de preparao, o documento enriquecido submetido / publicado na
componente servidor tornando-se disponvel ao utilizador final, mediante o modelo comercial
associado, e definido em Backoffice (e.g. gratuito, pago, publicidade, subscrio).
Parceiros:
Por ltimo, a terceira fase diz respeito disponibilizao e entrega dos contedos em ambiente
multi-dispositivo (e.g. Web, iPad, Android, Windows 8). Nesta etapa tambm efectuada a
recolha de informao de utilizao realizada pelos consumidores e que pode eventualmente
ajudar a refinar o processo de utilizao de toda a plataforma.
Parceiros:
Parceiros:
Acelermetro
O acelermetro um dispositivo elctrico que actualmente instalado em praticamente todos
os dispositivos mobile, tanto smarthphones como tablets. Esse dispositivo permite, como o
nome indica, detectar e quantificar aceleraes e consequentemente movimentos. Com este
dispositivo possvel criar aplicaes e interfaces mais interactivas, que no fiquem
dependentes apenas da interaco por via do teclado ou do ecr tctil, mas tambm possam
receber interaco por via de movimentos induzidos pelo prprio utilizador.
Existem diversas aplicaes para as diversas plataformas mobile que podem servir de exemplo
ao funcionamento do acelermetro e que simplesmente exibem os dados em bruto
provenientes do sensor. Na Figura 5 so apresentadas duas aplicaes que mostram esses
dados em bruto. No lado esquerdo possvel visualizar esses valores na forma numrica, j no
lado direito possvel visualizar esses dados numa forma grfica.
Por sua vez estes dados do sensor podem ser facilmente utilizados noutras aplicaes
interactivas.
Projeto em curso com o apoio de:
Parceiros:
https://play.google.com/store/apps/details?id=uk.co.drdv.AccelerometerChecker&feature=se
arch_result#?t=W251bGwsMSwxLDEsInVrLmNvLmRyZHYuQWNjZWxlcm9tZXRlckNoZWNrZXIiX
Q..
https://play.google.com/store/apps/details?id=com.integer3d.toytruckrally&feature=search_r
esult#?t=W251bGwsMSwxLDEsImNvbS5pbnRlZ2VyM2QudG95dHJ1Y2tyYWxseSJd
No que respeita implementao tcnica e ao nvel de linguagem de programao vai ser dado
o exemplo apenas da plataforma mobile (Android). Para as restantes plataformas, o acesso ao
acelermetro e outros sensores, mesmo com linguagens diferentes, efectuado de forma
bastante semelhante..
Inicialmente necessrio declarar o cdigo dentro de uma classe que implemente o interface
SensorEventListener. Esse interface o que obtm os acessos aos sensores. Obtendo-se algo
do tipo:
Projeto em curso com o apoio de:
Parceiros:
Aps este passo, apenas necessrio declarar um evento que apanha as alteraes nos valores
obtidos pelo sensor em causa, como por exemplo:
public final void onSensorChanged(SensorEvent event)
{
float x = event.values[0];
float y = event.values[1];
float z = event.values[2];
}
Desta forma as variveis x, y e z de tipo float, vo ser actualizadas sempre que o sensor emitir
novos valores referentes aos movimentos sofridos pelo dispositivo. Neste caso so utilizadas
trs variveis (x,y e z) que representam as coordenadas nas 3 dimenses espaciais.
Giroscpio
O giroscpio um outro sensor presente na grande maioria dos dispositivos mobile e por norma
utilizado para melhorar as funcionalidades dos acelermetros. Ele utilizado para determinar
e calcular a direco e a rotao do dispositivo. Em semelhana ao acelermetro, tambm
existem aplicaes simples que exibem simplesmente os dados em bruto, provenientes deste
sensor.
Parceiros:
Em relao ao exemplo de aplicao concreta apresentada na Figura 7, esta pode ser utilizada
para testes e experimentao em
https://play.google.com/store/apps/details?id=com.innoventions.sensorkinetics&feature=sear
ch_result
Parceiros:
Neste caso a interpretao dos resultados provenientes do sensor tem de ser mais cuidada e j
no to obvia. Continua-se a receber trs variveis, no entanto, cada uma diz respeito
rotao em torno de um determinado eixo (x, y, z).
Na Figura 8 apresentado um esquema grfico para facilitar a compreenso do conceito da
rotao sobre os eixos.
Parceiros:
Multi-Touch
No inicio dos dispositivos tcteis, os displays eram bastante limitados e bsicos, permitindo
apenas toque simples com um dedo, em aces semelhantes s elementares efectuadas com o
cursor de um mouse e com clique simples. No entanto, em pouco tempo essa tecnologia passou
a ser considerada obsolenta e rapidamente deu lugar designada por multi-touch ou ecr
multitctil. Essa tecnologia est presente em praticamente todos os dispositivos smartphone
ou tablets e permitiu melhorar bastante esta interface de interaco homem mquina. Dessa
forma, a tecnologia touch j no se limita a um simples cursos com a possibilidade de clique
simples. A possibilidade de utilizar vrios dedos abriu um novo leque de possibilidades.
Na verso single touch estavam disponveis as seguintes interaces, visveis na Tabela 1.
Parceiros:
Clique
Duplo Clique
Clique prelongado
Scroll
Pan
Parceiros:
Flick
Zoom Out
Parceiros:
Zoom In
Rotao
Parceiros:
https://play.google.com/store/apps/details?id=com.the511plus.MultiTouchTester&hl=pt_PT
https://play.google.com/store/apps/details?id=com.electronmagic&feature=related_apps
https://play.google.com/store/apps/details?id=org.metalev.multitouch.visualizer2&feature=se
arch_result
A nvel mais tcnico referente ao cdigo fonte, para detectar a diferena entre a interaco
single touch e multi touch basta criar um objecto MotionEvent o que consiste algo semelhante
a:
Projeto em curso com o apoio de:
Parceiros:
No ACTION DOWN possvel detectar quando o utilizador coloca um dedo sobre a tela. O
ACTION MOVE detecta quando o utilizador aps colocar o dedo na tela e o arrasta efectuando
um movimento. O ACTION UP detecta quando o utilizador volta a tirar o dedo da tela. Por fim,
o ACTION OUTSIDE detecta quando o utilizador toca fora da rea onde se est a efectuar a
monitorizao dos eventos de toque.
Caso seja pretendido obter as coordenadas especificas do toque, continua-se a utilizar a classe
MotionEvent e tambm a classe MotionEventCompat. No exemplo seguinte apresentado
como se obtm as coordenadas (x,y) de um toque na tela e como so guardadas nas variveis
xPos e yPos.
int index = MotionEventCompat.getActionIndex(event);
int xPos = -1;
int yPos = -1;
xPos = (int)MotionEventCompat.getX(event, index);
yPos = (int)MotionEventCompat.getY(event, index);
Parceiros:
Windows Phone 8
iOS
Symbian
Maemo
Android
MeeGo
webOS
Muitas das plataformas mobile acabam por dar ao programadores ferramentas e interfaces
especificas para eles trabalharem com dados que facilitam a implementao do cdigo e
permitem efectuar pesquisas indirectamente sem a necessidade de saberem SQL. No entanto,
essas ferramentas acabam sempre por assentar e ter a sua base de funcionamento em mais
baixo nvel no SQLite.
O SQLite essencialmente uma base de dados relacional compacta e de pequenas dimenses.
Graas a isso, bastante portvel e favorvel instalao em dispositivos mobile.
inteiramente desenvolvida em C a pensar na performance, sendo um projecto open source.
Ao contrrio das bases de dados convencionais que apenas a sua instalao ocupa centenas de
MBytes, o SQLite ocupa apenas 350 KBytes. Outra grande diferena entre o SQLite e as bases
de dados convencionais, que a base de dados e a API/driver geralmente designada por ODBC
(Open DataBase Connectivity) so programas e processos diferentes e separados. Ao
funcionarem em conjunto acaba por haver um maior consumo de memria e de recursos. J no
SQLite, o ODBC est integrado na prpria base de dados, garantindo assim um ligeiro aumento
de performance e uma maior optimizao de recursos.
O SQLite tambm se distingue por permitir que os pedidos de consulta base de dados em
ambientes com concorrncia sejam satisfeitos em paralelo, o que tambm resulta num
Projeto em curso com o apoio de:
Parceiros:
Parceiros:
https://play.google.com/store/apps/details?id=me.jromero.connect2sql&feature=related_app
s
https://play.google.com/store/apps/details?id=compark.fw.hu&feature=search_result#?t=W2
51bGwsMSwyLDEsImNvbXBhcmsuZncuaHUiXQ..
A mais baixo nvel, as chamadas a comandos do SQLite acabam por ser praticamente idnticas
entre as diversas plataformas mobile, visto as querys do SQLite serem iguais em qualquer
sistema. As diferenas esto presentes apenas na maneira como se invocam as classes e as
bibliotecas necessrias para utilizar estas funcionalidades.
Ao nvel de Android basta carregar o seguinte package para se ter acesso a todas as
funcionalidades da base de dados:
android.database.sqlite
Sem se pretender aprofundar muito as noes bsicas de linguagens derivadas de SQL, para
executar uma query, pode ser efectuada pela via RAW, ou seja, aceite uma query normal de
SQL, como por exemplo:
public Cursor getContactos(){
Cursor cursor = database.rawQuery("select _id, nome,
telefone, foto from contactos2", null);
return cursor;
}
J no caso de ser efectuada a query por via estruturada, a forma seria a seguinte:
public Contacto getContacto (int idContacto){
Cursor cursor = database.query(DB.TABLE_NAME, allColumns,
DB.ID + " = " + idContacto, null,null, null, null);
cursor.moveToFirst();
return cursorToContacto(cursor);
}