Você está na página 1de 85

FUNDAO DE ENSINO EURPIDES SOARES DA ROCHA

CENTRO UNIVERSITRIO EURPIDES DE MARLIA UNIVEM


CURSO DE BACHARELADO EM SISTEMAS DE INFORMAO

DIOGO HENRIQUE LIMA GONALVES DA SILVA

APLICATIVO MULTIPLATAFORMA DE ESCRITA COLABORATIVA


EM TEMPO REAL

MARLIA
2015

DIOGO HENRIQUE LIMA GONALVES DA SILVA

APLICATIVO MULTIPLATAFORMA DE ESCRITA COLABORATIVA


EM TEMPO REAL

Trabalho de Curso apresentado ao Curso de


Bacharelado em Sistemas de Informao da
Fundao de Ensino Eurpides Soares da
Rocha, mantenedora do Centro Universitrio
Eurpides de Marlia UNIVEM, como
requisito parcial para obteno do grau de
Bacharel em Sistemas de Informao.

Orientador
Prof: Ms. Ricardo Jos Sabatine

MARLIA
2015

SILVA, Diogo Henrique


Aplicativo Multiplataforma de Escrita Colaborativa em Tempo
Real/ Diogo Henrique Silva; orientador: Prof. Ms. Ricardo Jos Sabatine.
Marlia, SP: [s.n.], 2015.
84 folhas

Monografia (Bacharelado em Sistemas de Informao): Centro


Universitrio Eurpides de Marlia.

1.

2.3.

CDD: 005.2

AGRADECIMENTOS
Agradeo a Deus,
Por ter me dado a sabedoria, a coragem e a fora necessria para realizar esse sonho.

Aos meus Pais, Silvana e Paulo,


Por sempre estarem ao meu lado, sempre auxiliando em minhas decises e acreditando na
minha capacidade, torcendo por mim.

minha companheira Marina,


Agradeo imensamente pelo companheirismo, por me fortalecer em todas as vezes que pensei
em desistir, pelo apoio e dedicao ao me ajudar em etapas importantes do trabalho.

Aos meus sogros, Roselli e Waldomiro,


Por sempre me apoiarem, me passando dicas importantes e pela motivao necessrio para
realizao desse sonho.

Aos meus amigos de sala,


Pela motivao, pela fora e principalmente por sempre manterem o bom humor em
momentos difceis que passamos.

Ao meu Professor/Orientador Ricardo Sabatine,


Por ter acreditado na minha ideia, pela orientao deste trabalho, por seus ensinamentos, pela
motivao e pelo conhecimento adquirido em sua disciplina do curso de sistemas de
informao.

Aos professores do Curso de Sistemas de Informao,


Pela importante participao no conhecimento e habilidades adquiridos ao longo da graduao

Aos meus colegas de trabalho da empresa Interfocus,


Pela compreenso, apoio e por disponibilizar um tempo para que fosse possvel finalizar este
trabalho.

"O sucesso nasce do querer, da determinao e persistncia em se chegar a um objetivo.


Mesmo no atingindo o alvo, quem busca e vence obstculos, no mnimo far coisas
admirveis."
Jos de Alencar

RESUMO

O caminho para se tornar um escritor profissional ainda uma tarefa muito burocrtica, por
conta disso alguns escritores internacionais esto buscando novas formas de se lanarem no
mercado, uma delas a escrita colaborativa. Sendo assim, o objetivo deste o
desenvolvimento de uma aplicao multiplataforma que contempla funcionalidades de escrita
colaborativa, onde o diferencial consiste em como acontece a colaborao, pois tudo em
tempo real. O desenvolvimento se guiou pela metodologia Mobile First, a qual segue a
tendncia do mercado mvel, e busca atender todas as funcionalidade por igual entre os
dispositivos, iniciando por telas menores. Como resultado, foi possvel obter uma aplicao
que pode ser utilizada nas plataformas iOS e Android, que conseguiu atender como uma
soluo escrita de livros colaborativa, que possui disponibilidade imediata do contedo
escrito em cada captulo e um alto nvel de interao entre os usurios. O projeto foi
elaborado com base em pesquisas que permitiram obter conhecimento sobre novas
tecnologias existentes no desenvolvimento mvel, alm disso, foi realizado um
aprofundamento em metodologias de trabalho colaborativo, as quais serviram de alicerce
fundamental para a criao de um mtodo de colaborao eficiente.
Palavras-Chave: Aplicao Mvel, Multiplataforma, Colaborao, Escrita, Livros, Tempo
Real.

ABSTRACT

The road to become a professional writer is stills a bureaucratic task, because of this some
international writers are looking for new ways to launch on the market, and one of them is the
collaborative writing. Therefore, the main objective is the development of a multiplatform
application that contains collaborative writing functionalities, where the differential consists
on how collaboration happens, because everything is in real-time. The development guide was
the Mobile First methodology, which fallows the mobile market trending, and seeks to deliver
all the functionalities between devices equally, starting with small screens ones. As result, it
was possible to get an application that is available on iOS and Android platforms, which
could attend as a solution to collaborative books writing that, have the availability of written
content in each chapter and a high level of interaction between users. The project base was a
research, that allowed obtaining knowledge about existing new technologies on the mobile
development, furthermore, a deepening held in collaborative work methodologies, which
served as a solid key for the creation of an efficient method of collaboration.
Keywords: Mobile Application, Multiplatform, Collaboration, Writing, Books, Real-Time.

LISTA DE ILUSTRAES

Figura 1. Estrutura Linear ......................................................................................................... 19


Figura 2. Estrutura Forma de rvore........................................................................................ 20
Figura 3. Estrutura Network ..................................................................................................... 21
Figura 4. Modelo 3C de Colaborao ....................................................................................... 22
Figura 5. Grfico de Funcionalidade ........................................................................................ 24
Figura 6. Frmula para determinar IF ...................................................................................... 24
Figura 7. Compartilhamento de um arquivo ............................................................................. 29
Figura 8. Website do Boston Globe visualizado em diversos dispositivos, um exemplo de um
design responsivo ..................................................................................................................... 36
Figura 9. Aumento no trafego de dados da AT&T entre 2006 e 2009 ..................................... 37
Figura 10. Arquitetura da Aplicao ........................................................................................ 44
Figura 11 Diagrama das Regras de Negcio da Aplicao ................................................... 46
Figura 12. Dispositivos entregues ao redor do mundo por seguimento, 2012 2017 ............. 48
Figura 13. Modelo 3C de colaborao na aplicao ................................................................. 50
Figura 14. Diagrama do Mtodo de Criao de Usurio .......................................................... 52
Figura 15. Diagrama do Mtodo de Login ............................................................................... 54
Figura 16. Diagrama dos Mtodos de Gerncia de Livros ....................................................... 57
Figura 17. Pesquisa de livros .................................................................................................... 58
Figura 18. Diagrama do Mtodo de Chat ................................................................................. 60
Figura 19 Diagrama de Requisies da Aplicao ................................................................ 61
Figura 20. Cadastro de Usuario ................................................................................................ 64
Figura 21. Login de Usurio ..................................................................................................... 65
Figura 22. Menu de Opes ...................................................................................................... 66
Figura 23. Lista de Livros do Usurio ...................................................................................... 67
Figura 24. Criao de Livros .................................................................................................... 68
Figura 25. Detalhes do Livro .................................................................................................... 69
Figura 26. Edio Detalhes do Livro ........................................................................................ 70
Figura 27. Criao de Captulos ............................................................................................... 71
Figura 28. Editor de Captulo ................................................................................................... 72
Figura 29. Chat do Captulo ..................................................................................................... 73

Figura 30. Pesquisa de Livros................................................................................................... 74


Figura 31. Seguir Livro ............................................................................................................ 75

LISTA DE TABELAS

Tabela 1. Resultado da avaliao da aplicao

LISTA DE ABREVIATURAS E SIGLAS

API

Application Programming Interface

APP

Application

BPM

Business Process Management

CSS3

Cascading Style Sheets 3

CLI

Command Line Interface

DOCX

Extenso de arquivos do Office Word

GPS

Global Positioning System

IOS

Sistema operacional de dispositivos mveis da Apple

HTML5

HyperText Markup Language 5

MODELO 3C

Modelo de Comunicao, Coordenao e Cooperao

MOBILE FIRST

Metodologia de desenvolvimento que prioriza os dispositivos mveis

MVC

Model - View - Controller ou Modelo Visualizao - Controle

REST

Representational State Transfer

SDK

Software Development Kit

TI

Tecnologia da Informao

WEB

Rede retirado de World Wide Web

SUMRIO

INTRODUO .................................................................................................................................... 15
1

SISTEMAS COLABORATIVOS ................................................................................................. 18


1.1

Estruturas de Sistemas Colaborativos ................................................................................... 19

1.1.1

Linear ............................................................................................................................ 19

1.1.2

rvore ........................................................................................................................... 20

1.1.3

Network ......................................................................................................................... 21

1.2

Modelo de interao em Sistemas Colaborativos.................................................................. 21

1.2.1
1.3

Mtricas de Qualidade ........................................................................................................... 23

1.3.1
1.4

Medindo a Qualidade .................................................................................................... 23

Exemplos de Aplicaes Colaborativas ................................................................................ 25

1.4.1

Google Docs .................................................................................................................. 25

1.4.2

Penflip ........................................................................................................................... 26

1.4.3

Wattpad ......................................................................................................................... 26

1.4.4

Waze .............................................................................................................................. 27

1.5
2

Modelo 3C ..................................................................................................................... 22

Consideraes finais .............................................................................................................. 27

TECNOLOGIA ............................................................................................................................. 28
2.1

Tecnologia para Sistemas Colaborativos .............................................................................. 28

2.1.1

Tcnicas de sistemas colaborativos ............................................................................... 29

2.1.2

Ferramentas ................................................................................................................... 32

2.2

Tecnologia para Desenvolvimento Multiplataforma ............................................................. 34

2.2.1

Principais Tcnicas ........................................................................................................ 35

2.2.2

Ferramentas disponveis no mercado ............................................................................ 38

2.3

Consideraes Finais ............................................................................................................. 41

3 DESENVOLVIMENTO DE UM APLICATIVO MULTIPLATAFORMA DE ESCRITA


COLABORATIVA EM TEMPO REAL .............................................................................................. 42
3.1

Funcionalidades..................................................................................................................... 43

3.2

Arquitetura ............................................................................................................................ 44

3.2.1

Modelagem das regras de negcio ................................................................................ 46

3.2.2

Tcnicas de implementao........................................................................................... 47

3.3

Escrita de Livros Colaborativa .............................................................................................. 49

3.4

Ferramentas ........................................................................................................................... 50

3.4.1

Gesto de Usurios ........................................................................................................ 51

3.4.2

Gesto de Livros............................................................................................................ 55

3.4.3

Escrita de Livro em Tempo real .................................................................................... 61

3.5
4

RESULTADOS ............................................................................................................................. 64
4.1

Consideraes Finais ............................................................................................................. 62

Aplicao Multiplataforma ................................................................................................... 64

4.1.1

Cadastro de Usurio ...................................................................................................... 64

4.1.2

Login de Usurio ........................................................................................................... 65

4.1.3

Menu de Opes ............................................................................................................ 66

4.1.4

Lista de Livros do usurio ............................................................................................. 67

4.1.5

Criar Livro ..................................................................................................................... 68

4.1.6

Detalhes do Livro .......................................................................................................... 69

4.1.7

Editar Detalhes do Livro ............................................................................................... 70

4.1.8

Criar captulos do livro .................................................................................................. 71

4.1.9

Escrever Capitulo .......................................................................................................... 72

4.1.10

Abrir Chat...................................................................................................................... 73

4.1.11

Pesquisar Livro.............................................................................................................. 74

4.1.12

Seguir Livro................................................................................................................... 75

4.2

Anlise dos Resultados.......................................................................................................... 76

4.3

Consideraes Finais ............................................................................................................. 79

CONCLUSO .............................................................................................................................. 81
5.1

Trabalhos Futuros.................................................................................................................. 82

REFERNCIAS BIBLIOGRAFICAS .................................................................................................. 83

15

INTRODUO
Escrever um livro exige muita confiana no prprio trabalho e persistncia por parte
dos escritores, pois necessrio ter um bom contedo para que uma editora o avalie e
possivelmente entre em contato com o autor para apoia-lo na divulgao e publicao. Assim
como ocorre com qualquer produto, os livros passam por especificaes, revises e so
projetados desde o princpio. Entretanto, uma das maiores dificuldades em meio aos projetos
atingir os possveis requisitos de um leitor.
Quando se fala de atingir os requisitos de um leitor necessrio lembrar que o
primeiro leitor a avaliar um contedo que foi escrito o prprio escritor, que por sua vez pode
no possuir experincia necessria para verificar a autenticidade e valor da obra que est
desenvolvendo, como faria um autor (KIEFER, 2010).
Segundo Hartmann, Esta uma incrvel oportunidade para mim como autora a
romper as barreiras na relao autor/leitor. Ser incrvel escrever sabendo que as pessoas
estaro visualizando cada palavra, pargrafo e capitulo... (HARTMANN, 2012). Assim como
essa autora, outros escritores esto partindo para novas prticas de escrita, a fim de ultrapassar
as barreiras entre escritor e leitor, para isso, utilizam uma das ferramentas disponibilizadas
pelo Google. O Google Docs possui recursos de compartilhamento e sincronizao em tempo
real que so vistos como uma oportunidade de interagir com o pblico e tornar o
desenvolvimento de um livro um trabalho colaborativo (GOOGLE DOCS, 2015).
Essa ferramenta possui recursos para edio de texto e pode ser utilizado em
ambiente colaborativo utilizando opes de compartilhamento, entretanto, no contexto de
desenvolvimento de livros pode conter diversas limitaes que existem porque este recurso
foi criado para ser utilizado apenas como um editor de textos, sem a finalidade especfica de
desenvolvimento de livros, portanto, no um ambiente centralizado. Sendo assim, no
possvel que o usurio realize pesquisas por livros e autores (GOOGLE DOCS, 2015).
Tais limitaes vo alm do mencionado, pois o que caracteriza um sistema
colaborativo a interao entre usurios que, deve ocorrer de maneira organizada, sem
complexidade, e principalmente sem delay (espera) na atualizao de contedo, algo que
no explorado pela ferramenta. Assim como ocorre em redes sociais, os usurios possuem
uma liberdade para explorar todo tipo de assunto e interagir como querem, expressando suas
opinies e colaborando em assuntos especficos sem quaisquer formalidades.

16

J a sincronizao de textos em tempo real deve acontecer com o menor tempo de


resposta possvel, portanto, o desenvolvimento de uma aplicao multiplataforma com o
princpio de centralizar as funcionalidades de escrita em tempo real voltadas ao
desenvolvimento textual em um ambiente com recursos especficos, deve tanto elevar o nvel
de interao entre os usurios quanto diminuir a curva de produo de um livro
(JARAMILLO et al, 2014).
Para o desenvolvimento da aplicao, foi utilizado como base a metodologia Mobile
First, a qual determina que o desenvolvimento deve priorizar dispositivos com telas menores,
com o propsito de entregar todos, os recursos de forma igual (HARB et al, 2011). Sendo
assim, as tecnologias de desenvolvimento foram definidas, onde o framework de
desenvolvimento escolhido, o Ionic, que permitiu a criao de uma aplicao hbrida
multiplataforma, em que a camada de visualizao web e as regras de negcio so nativas
(IONIC, 2015).
O projeto teve como principal objetivo o desenvolvimento de uma aplicao
multiplataforma, que proveu um ambiente voltado para escrita de livros colaborativa, onde
permite que os usurios possam criar seus livros e interagir entre si atravs de um chat
disponvel em cada captulo, este chat possui o intuito de aproximar as pessoas para aumentar
o nvel de colaborao na criao de contedo.

Objetivos Gerais

O objetivo geral desse trabalho desenvolver uma aplicao voltada ao pblico de


escritores profissionais, pessoas que desejam se tornar escritores e tambm aqueles possuem o
habito da leitura. Esta aplicao permitir que essas pessoas realizem o trabalho de escrever
livros como uma atividade em grupo, onde o escritor fica responsvel por desenvolver o
contedo, os leitores que o acompanham por discutir assuntos sobre este contedo, e com isso,
proporcionar uma rica troca de informaes e feedbacks que o escritor precisa para alavancar
sua carreira.
De modo a contribuir para ambos, escritor e leitor, j que o escritor pode contar com
esses recursos para saber o que o leitor estar pensando sobre seu livro, e o leitor recebe em
troca um contedo cada vez melhor.

17

Objetivos Especficos

Os objetivos especficos so:

Aproximar os escritores e leitores para que possam trabalhar em conjunto,


para diminuir o tempo de feedback;

Contribuir para a diminuio da burocracia que lanar um livro, no sendo


mais necessrio que este seja aprovado por uma editora antes de ser lanado;

Oferecer um espao para que o pblico geral que possui o hbito de ler,
possam tambm se expressar sobre o que estar lendo diretamente ao autor;

Aumentar o alcance que um escritor iniciando pode ter, ao compartilhar a


aplicao com outras pessoas;

Introduzir uma maneira diferente de colaborar em um trabalho escrito em


tempo real, sendo este organizado e atrativo por quem participa;

Organizao do Trabalho

A estrutura desta monografia composta por cinco captulos.


No captulo 1 feita uma reviso bibliogrfica sobre sistemas colaborativos e
solues no mercado.
No captulo 2 feita uma anlise das principais tecnologias para desenvolvimento
multiplataforma e sincronizao de texto em tempo real.
No captulo 3 so apresentados os detalhes da implementao da aplicao
multiplataforma e suas funcionalidades.
No captulo 4 so apresentados os resultados obtidos.
No captulo 5 apresentada a concluso do trabalho.

18

SISTEMAS COLABORATIVOS

Um sistema colaborativo constitui em um ambiente virtual especfico, que possibilita


o trabalho em grupo e interao social, um novo local para convivncia humana. Sendo assim,
conhecimentos tcnicos sobre a rea se tornam menos essenciais, j que preciso entender as
necessidades das pessoas, e identificar as caractersticas que os novos seres humanos digitais
agora possuem (NICOLACI, 2012).
Essas caractersticas influenciam em como um sistema deve ser planejado e
desenvolvido para permitir a colaborao entre os integrantes de um grupo. E essa interao
deve ocorrer de forma natural, para isso no deve ser exigido ou forado qualquer tipo de
formalidade que se torne uma barreira aos usurios. Assim como ocorre em redes sociais, os
usurios possuem uma liberdade para explorar todo tipo de assunto, interagir como quiserem
e, expressar suas opinies colaborando em assuntos especficos (NICOLACI, 2012).
Alm de possibilitar a liberdade e interao entre os usurios, os sistemas
colaborativos se tornaram uma ferramenta indispensvel no desenvolvimento criativo em
grupo. De acordo com Ivan e Ciurea, eles ... representam um novo domnio interdisciplinar,
que a interseco entre as reas de Tecnologia da Informao, Administrao, Sociologia e
etc. (IVAN e CIUREA, 2009).
Como bom exemplo de aplicao para esse tipo de conceito no mercado, temos o
Google Docs, uma aplicao web que conta com todos os recursos de edio que so
conhecidos em ferramentas de edio como o Microsoft Word e Open Writer, sem a
necessidade de ser instalado localmente. Essa aplicao acabou com a dependncia de
plataformas especficas para ser utilizada, alm do mais, a Google incluiu recursos de
compartilhamento e edio em grupo o que a princpio no era prioridade e atualmente se
tornou um dos melhores recursos da ferramenta auxiliando na sua popularizao (GOOGLE
DOCS, 2015).
Assim como utilizado no desenvolvimento de aplicaes como esta, diversas APIs
(Application Programming Interface) que oferecem mtodos prontos para adicionar recursos
de escrita em tempo real so facilmente encontradas ao realizar uma pesquisa sobre esse tipo
de soluo. Porm, um dos que mais se destacam dentre tais tecnologias o Firebase, j que
possibilita uma utilizao de conceitos de transmisso em tempo real atravs de uma API
REST e persistncia de dados em um banco de dados no relacional. Alm da transmisso dos
dados em tempo real, a utilizao de webservices permite uma alta escalabilidade na

19

integrao entre as aplicaes e servidor (FIREBASE, 2015).


Assim, essa interseco deve ser medida e, para isso existem mtricas e indicadores
com o propsito de avaliar a qualidade da colaborao e nvel de interao em um sistema
colaborativo. A partir de cada estrutura de sistemas colaborativos possvel definir mtricas
que buscaro avaliar se o desenvolvimento de um contedo est ou no ocorrendo de maneira
colaborativa conforme suas definies.

1.1 Estruturas de Sistemas Colaborativos

Existem diversas maneiras de classificar um sistema colaborativo, a orientao de


como ocorre a interao e transferncia de informaes o que deve definir cada tipo de
estrutura.

1.1.1 Linear

Conforme a Figura 1, em sistemas colaborativos lineares existe uma sequncia de


entradas e sadas que determinam como deve ocorrer a colaborao.

Figura 1. Estrutura Linear

Fonte: IVAN e CIUREA, 2009


Em cada crculo existe um subsistema, as entradas so representadas por In e as sada
On, seguindo de forma sequencial. J os nveis intermedirios so representados por k, que
seriam os subsistemas envolvidos, ou seja, Ik e Ok.
Normalmente este tipo de sistema pode ser encontrado em meio acadmico, pois so
estruturados de forma linear e hierrquica, onde cada subsistema representa uma escola.

20

1.1.2 rvore

Na Figura 2 est a estrutura em forma de rvore, onde as mensagens so transmitidas


a partir do ponto CS1, e precisa passar por todos os ns at chegar ao limite esquerda e
direita, que no caso representa cada camada da hierarquia.

Figura 2. Estrutura Forma de rvore

Fonte: IVAN e CIUREA, 2009

Normalmente possvel encontrar este tipo de estrutura colaborativa no


gerenciamento de corporaes, pois em todo processo existe uma cadeia hierrquica a seguir
para que seja possvel girar uma informao pelos setores da organizao.

21

1.1.3 Network

Na estrutura de network todos os subsistemas se comunicam e participam da


colaborao conforme demonstrado na Figura 3.
Figura 3. Estrutura Network

Fonte: IVAN e CIUREA, 2009

Assim como ocorrem em redes sociais e sistemas que permitem a interao sem
barreiras ou restries, em uma network o trabalho ser desenvolvido inteiramente
colaborativo, pois todos os integrantes podero interagir e opinar sem qualquer tipo de
formalidade ou hierarquia.

1.2 Modelo de interao em Sistemas Colaborativos

Um modelo de interao define um conjunto de dimenses para que de fato acontea


a colaborao em um trabalho especifico, de forma produtiva e com melhoria contnua. E
atravs deste, possvel definir quais atividades um sistema possuir, pois nele tambm so
relacionados os tipos de interao que podem atuar em conjunto e gerar um produto final
melhor (FUKS et al, 2009).

22

O modelo padro definido pelo autor, foi criado com a misso de identificar quais
seriam as dimenses de um sistema colaborativo para que pudesse haver eficincia quando
trabalham em conjunto e, com o Modelo 3C foi possvel definir trs tipos que sero
especificados neste captulo.

1.2.1 Modelo 3C

O Modelo 3C de colaborao certifica a colaborao em trs dimenses:


comunicao, coordenao e cooperao. Conforme esquematizado na Figura 4, as dimenses
so divididas para que sejam analisadas em sua colaborao especfica, porm, elas trabalham
de forma conjunta para que ento a colaborao acontea (FUKS et al, 2009).

Figura 4. Modelo 3C de Colaborao

Fonte: FUKS et al, 2009

Essas dimenses possuem funes especficas que colaboram entre si para que o
resultado final seja um contedo que passou por etapas dentro de um processo sequencial,
conforme descrito abaixo:

Comunicao: A comunicao responsvel pela troca de mensagens,


conversao, e principalmente pela argumentao e negociao entre os
integrantes (FUKS et al, 2009).

23

Coordenao: A coordenao, responsvel pelo gerenciamento da


interao entre as pessoas, no deixando que ocorra desperdcio de tempo em
conversas alheias, focando nas atividades principais e recursos (FUKS et al,
2009).

Cooperao: A cooperao caracterizada pela interao entre as pessoas


dentro de um espao onde esto trabalhando em conjunto, para a produo de
contedo (FUKS et al, 2009).

1.3 Mtricas de Qualidade

Para que seja possvel medir a qualidade de sistemas colaborativos, necessrio


entender quais as caractersticas que este deve possuir, pois essas definem padres que
auxiliaro em sua manuteno e futuras alteraes desse sistema, alm oferecer uma
importante ateno para o nvel de segurana das informaes, so elas: complexidade,
confiabilidade, manutenibilidade, funcionalidade, usabilidade e estabilidade (IVAN e
CIUREA, 2009).

1.3.1 Medindo a Qualidade

Para analisar a validade dessas caractersticas, deve-se verificar fatores como o


tamanho da mensagem a ser transmitida e a rota que ir percorrer. Dessa forma, possvel
descobrir se o sistema est cuidando para que esta mensagem no se perca no caminho ou at
mesmo seja alterada. (IVAN e CIUREA, 2009)
A confiabilidade medida atravs da anlise do nmero de problemas resolvidos
pelo prprio sistema e o nmero total de problemas especificados.
A manutenibilidade uma etapa importante no desenvolvimento de um software,
pois necessrio levar em considerao o tempo em que ser utilizado, j que em se tratando
de sistemas colaborativos normalmente utilizados por mais de trs anos, deve-se avaliar a
necessidade de alterar e programar novas funcionalidades a longo prazo.

24

J a complexidade trata-se de como so medidas as interdependncias, recursos


externos e entrada e sadas do sistema. Para isso analisado o fluxo de informaes de cada
tipo separadamente, para que seja avaliada a carga de componentes para identificar o nvel
aceitvel.
Conforme a Figura 5, onde C1 representa a complexidade, C2 a confiabilidade e C3
a manutenibilidade, e de acordo com os limites S1 e S2, possvel avaliar o nvel
funcionalidade de um sistema colaborativo. Os limites S1 e S2 so divididos entre mnimo e
mximo para determinar a interseco entre as caractersticas e chegar a um valor aceitvel
conforme estiver descrito nos testes do projeto.

Figura 5. Grfico de Funcionalidade

Fonte: IVAN e CIUREA, 2009


A interseco desse grfico obtida pelo resultado de IF, ndice de funcionalidade, e
a formula para chegar a tal ndice pode ser representado atravs da Figura 6:

Figura 6. Frmula para determinar IF

Fonte: IVAN e CIUREA, 2009

25

1.4 Exemplos de Aplicaes Colaborativas

Neste captulo sero apresentados trabalhos relacionados que por sua vez possuem
recursos para possibilitar o trabalho colaborativo e assim como proposto no projeto pretendem
resolver os problemas da escrita colaborativa.
Dessa forma, o Google Docs possui recursos que permitem a edio e colaborao na
escrita de textos em tempo real, entretanto, no uma ferramenta totalmente dedicada ao
desenvolvimento de livros. Assim, aplicaes tais como o Penflip e Wattpad, podem ser
consideradas como as que possuem mais recursos e um ambiente preparado para atender
nesse contexto.
Portanto, sero observadas as informaes disponibilizadas pelas empresas
desenvolvedoras dessas aplicaes, com o intuito de obter um estudo de mercado sobre o que
j existe para atender esta necessidade.

1.4.1 Google Docs

O Google Docs um conjunto de ferramentas desenvolvido pela Google, que


possuem recursos que vo alm desde um simples editor de textos, j que atravs do Docs
possvel criar documentos em formato docx, utilizado pelo Word da Microsoft e edita-los
sem a necessidade de instalao local. Alm de tambm conta com todos os recursos que o de
seu concorrente, a Google tambm incluiu opes de compartilhamento e edio por
mltiplos usurio simultneos, tornando o desenvolvimento de trabalhos colaborativos de
forma simples (GOOGLEDOCS, 2015).
A princpio essa ferramenta no tinha um foco colaborativo, entretanto, acabou
tornando-se popular em ambientes tanto profissionais quanto educacionais. Dessa forma, para
o acesso total aos recursos, necessrio um e-mail cadastrado no Gmail que est dentro dos
produtos que a empresa possui.

26

1.4.2 Penflip

O Penflip uma aplicao web para desenvolvimento textual online ou offline, que
contm ferramentas de edio para auxiliar os usurios. Este tambm conta com recursos
colaborativos, sendo que em um deles os usurios que esto lendo um texto podem deixar
comentrios em frases e palavras do texto, responder questionrios feitos pelo autor e at
mesmo deixar comentrios sobre captulos (PENFLIP, 2015).
Por conseguinte, as alteraes da ferramenta no so em tempo real, ou seja, um
usurio somente consegue visualizar as alteraes aps recarregar a pgina. Outro detalhe est
para a falta de centralizao e afirmao sobre o tipo de contedo que pode ser produzido pela
ferramenta, tratando qualquer contedo como um projeto.

1.4.3 Wattpad

Esta aplicao foi desenvolvida com o propsito de prover um ambiente de


desenvolvimento textual e leitura de contedo gratuito para qualquer pessoa. Para tal, a
aplicao possui recursos de edio textual, leitura de contedo de outros usurios e interao
entre os usurios atravs de trocas de mensagens (WATTPAD, 2015).
Entretanto a ferramenta no possui como proposta principal o trabalho colaborativo,
e em tempo real, mas permite que os usurios comentem em cada captulo escrito das
histrias. Outro fator que se torna uma barreira para o desenvolvimento em grupo a
atualizao de contedo em tempo real, pois os usurios podero ler contedo desatualizado e
classificando de forma antecipada algo que ainda estaria em desenvolvimento.
Por fim, no se trata de um ambiente focado no desenvolvimento de livros, e sim um
lugar onde qualquer um poderia escrever uma histria e ler contedo gratuito.

27

1.4.4 Waze

O Waze um aplicativo de GPS, que a princpio comeou como uma ideia de trazer
algo mais leve com interface limpa para facilitar a navegao nos mapas. Mas, alguns
recursos de colaborao passiva e ativa foram adicionados, tornando-o um GPS com
interaes sociais (WAZE, 2015).
Como ocorre em uma rede social, os usurios interagem entre si de duas maneiras, de
forma ativa, ao cadastrar avisos sobre acidentes, policias, rotas bloqueadas e etc. Passiva, ao
passar pelos avisos que foram adicionados por outros usurio, o app reconhece e valida a
informao, a tornando verdadeira e popular.

1.5 Consideraes finais

Um sistema colaborativo precisa conter elementos sociais que possibilitam o


desenvolvimento de contedo em grupo de maneira natural. Assim como utilizado em
exemplos como o Google Docs e Penflip, o desenvolvimento textual em grupo se tornou
popular e possvel em qualquer contexto, algo que comeou a chamar a ateno das empresas
e principalmente das pessoas que desejam desenvolver e compartilhar seu trabalho.
No entanto, cada sistema colaborativo deve ser caracterizado por sua estrutura, j que
alguns no utilizam seus recursos como meio, mas sim como forma de permitir que as
informaes circulem em seu sistema. E a melhor maneira de se obter uma boa colaborao
em um desenvolvimento quando no existem barreiras, ou processos hierrquicos para que
isso ocorra, tudo deve ser interligado como em uma rede social.
Sobretudo, todo sistema deve ser avaliado e medido para que seja possvel
comprovar sua eficincia e segurana. Os sistemas colaborativos tambm entram nesse
conjunto, pois por se tratar de um sistema que ser utilizado por uma quantidade grande de
usurios e por tempo indeterminado, necessrio que este tenha as caractersticas bsicas:
confiabilidade, manutenibilidade e complexidade.

28

TECNOLOGIA

Como visto no captulo anterior, os sistemas colaborativos possuem caractersticas


especificas que o definem, e so justamente elas que possibilitam que ocorra o trabalho em
conjunto. Ainda foram apresentados diversos casos no mercado de aplicaes que possuem o
mesmo foco, o trabalho conjunto no desenvolvimento textual.
Alm de focar neste tipo de sistema, o projeto tem como objetivo principal criar uma
aplicao que poder ser utilizada em diferentes sistemas operacionais de dispositivos mveis,
para diminuir a deficincia existente no mercado referente a escrita colaborativa.
Seguindo o objetivo de oferecer funcionalidades que iro aproximar mais as pessoas,
surge a ideia de que tudo deve ocorrer em tempo real, ou seja, cada palavra escrita por um
usurio j pode ser visualizada pelos demais, e para isso existe uma gama de tecnologias
disponveis que sero apresentadas neste captulo.
Por fim, a escolha de boas ferramentas e tcnicas de desenvolvimento define a
melhor forma de iniciar o desenvolvimento do projeto, facilitando assim o entendimento de
tcnicas que sero aprofundadas.

2.1 Tecnologia para Sistemas Colaborativos

O desenvolvimento de um sistema colaborativo deve ser planejado, seguindo os


requisitos essenciais para efetivamente garantir o seu funcionamento. Para tal propsito devese buscar conhecer as tecnologias disponveis no mercado para utilizar a que melhor ir
atender neste projeto (LIMA et al, 2009).
Conforme apresentado na Figura 7, possvel verificar o funcionamento de um
sistema distribudo, onde vrios usurios compartilham um mesmo arquivo ou dado.

29

Figura 7. Compartilhamento de um arquivo

Fonte: LIMA et al, 2009

De acordo com a autora, vrios dos desafios esto relacionados ao ambiente


computacional distribudo, formado pelos computadores utilizados pelos membros do grupo e
toda a infraestrutura bsica de comunicao entre as mquinas (LIMA et al, 2009). Portanto
de grande importncia a contextualizao de alguns conceitos sobre a comunicao entre
cliente e servidor, para que assim seja analisado o formato mais adequado ao sistema
colaborativo.

2.1.1 Tcnicas de sistemas colaborativos

As tcnicas de sistemas colaborativos so vrias dimenses de um processo de


colaborao que quando ocorrem de forma conjunta, obedecendo o Modelo 3C, enriquecem o
desenvolvimento de contedo, garantindo que o trabalho tenha um nico foco e traga o
melhor resultado (SANTAROSA E CRISTINA, 2009).
Com base no Modelo 3C, ser apresentado um conjunto de conceitos sobre cada
dimenso do modelo, tornando vivel a obteno de uma base tcnica do que ser
implementado em cada funcionalidade da aplicao onde houver interao entre os usurios e,
com isso refinar o conceito de escrita de livros colaborativa.

30

2.1.1.1 Comunicao

A comunicao o elemento principal de um trabalho conjunto, pois nela que


ocorre a troca de informaes entre duas ou mais pessoas em um grupo. Ento, toda troca de
mensagem deve conter as informaes codificadas no envio para ser decodificada no receptor,
o qual tem a funo de interpretar as mesmas
Alm de mensagens em formato textual e verbal, h tambm outras formas
lingusticas para comunicao, tais como a linguagem corporal e sinais. Sendo assim,
necessrio a definio de um formato de linguagem ou protocolo compartilhado, de tal
maneira que ser interpretado por ambas as partes (SANTAROSA E CRISTINA, 2009).
Dessa forma, aps definir o formato lingustico para que ocorra a comunicao entre
as pessoas, tambm preciso definir como ser feito a interao, podendo ser atravs de:
mensagens de texto em um comunicador aberto, comentrios individuais, ou at mesmo
avaliao do contedo atravs de notas e revises.

2.1.1.2 Coordenao

Na coordenao fundamental que seja feito um planejamento aps a definio do


objetivo principal que ser desenvolvido pelo grupo. O planejamento deve incluir de forma
distribuda todas as tarefas que iro ocorrer durante o desenvolvimento de um contedo.
Entretanto, o foco principal da coordenao administrar e gerenciar as atividades que esto
em execuo, verificando sempre o contedo das mensagens que esto sendo trocadas para
que haja conexo contnua com o assunto tratado (SANTAROSA E CRISTINA, 2009).
O grupo pode ser organizado em uma diviso de papis, onde existir algum
responsvel por gerenciar as atividades e funes de cada integrante e outro para analisar as
informaes que esto sendo trocadas, verificando cada deciso tomada. As funes so
definidas de forma dinmica, podendo ser fixas ou temporrias, podero ser empregadas
conforme a necessidade de um contexto, mas principalmente de acordo com o tipo de
interao que existir disponvel no sistema em questo (SANTAROSA E CRISTINA, 2009).

31

Ainda existem trs maneiras de executar a coordenao em um grupo:

Individualmente: aqui cada integrante tem uma responsabilidade, e executa suas


tarefas da melhor maneira possvel, e por fim os resultados so somados para
formar o contedo final (SANTAROSA E CRISTINA, 2009).

Repassando as tarefas: nesta forma as tarefas so executadas de maneira


conjunta entre os integrantes, onde sempre h necessidade de troca da ideias e os
resultados so passados entre eles (SANTAROSA E CRISTINA, 2009).

Orquestrando: em tal forma de organizao todas as atividades so de forte


dependncia entre si, e precisam ser coordenadas para que todo o esforo conjunto
esteja sincronizado e com isso chegar ao resultado esperado (SANTAROSA E
CRISTINA, 2009).

2.1.1.3 Cooperao

A cooperao tem como principal objetivo o trabalho em grupo com o intuito de


produzir contedo de forma colaborativa, e para isso preciso ter um espao que ser
compartilhado pelos integrantes, mesmo que este seja um recurso de comunicao de uma
aplicao, o importante que todos possam trabalhar em equipe (SANTAROSA E
CRISTINA, 2009).
Sobre o espao em que ser compartilhado pelas pessoas, existem duas situaes em
que se difere como deve ocorrer a cooperao: primeiro, quando todos os participantes esto
no mesmo local, ou seja, no existe atraso na interao e, segundo, quando os participantes
esto fisicamente distantes e precisam de algum meio para estabelecer a interao
(SANTAROSA E CRISTINA, 2009).
Portanto, no caso de uma aplicao colaborativa, os recursos de interao precisam
ocorrer de forma sncrona para que as atividades em grupo ocorram fluidamente, e com isso
as decises sejam tomadas de maneira mais pratica com o conhecimento de todos os
interessados.

32

2.1.2 Ferramentas

Na composio da arquitetura de um sistema colaborativo pode ser comum a procura


por solues existentes no mercado que proporcionam uma experincia padronizada por uma
comunidade ou empresa. Tendo em vista o prazo para desenvolvimento de tal tipo de
aplicao, a escolha desse tipo de ferramenta torna possvel a entrega do produto final com a
qualidade e especificaes propostas.

2.1.2.1 Etherpad
Lanado em novembro de 2008, o software Etherpad foi comprado pela Google em
2009 para ser incorporado s ferramentas da empresa, que em seguida o tornou open-source.
Ao se tornar open-source atraiu a ateno de desenvolvedores que criaram suas prprias
aplicaes e ajudaram aperfeioar os recursos do Etherpad (ETHERPAD, 2015).
A proposta a princpio era oferecer um editor de textos colaborativo em tempo real,
algo que proporcionaria facilidade na realizao de trabalhos em grupo, escrita de artigos,
compartilhamento de ideias, escrita de livros, e tudo isso funcionando direto do navegador.
Qualquer pessoa pode utilizar a ferramenta para criar seus prprios documentos colaborativos,
seja instanciando o servio em um servidor local, ou atravs de outras aplicaes que j
utilizam o Etherpad.
Para incorpora-lo em outras aplicaes, a empresa criou uma API bem documentada
que oferece mtodos para manipular todos os seus recursos, e foi desta forma que surgiram as
empresas como Telecomix Pad, Framapad, Mozilla Pad, Titan pad, QikPad, etc. Estas
empresas oferecem novas possibilidades de uso desses recursos, e muitas delas possuem
planos gratuitos para empresas e pblico geral. (ETHERPAD, 2015)
Por fim, qualquer desenvolvedor que esteja interessado em contribuir com novas
ideias, aprimoramento de funes, criao de novos mtodos ou melhorias na documentao
da API, pode acessar o projeto disponibilizado no Github, e l todo cdigo que foi adicionado
ou modificado, dever ser revisado e possivelmente lanado em prximas verses.

33

2.1.2.2 Google Drive API

O Google Drive Real-Time API foi desenvolvido para permitir que os


desenvolvedores desenvolvam sistemas que faa o compartilhamento de dados em tempo real
como se estivesse funcionando localmente. Porm, toda a sincronizao ocorre somente
visualmente na web, ou seja, quando existe uma modificao por um usurio, o modelo de
dados alterado automaticamente para todos os usurios que estiverem editando o documento
(GOOGLE DRIVE, 2015).
Entretanto, existem algumas aplicaes especficas para esse tipo de recurso, pois por
no se tratar de uma sincronizao de dados realizada do lado do servidor, mas sim do lado do
cliente, acaba tornando limitado em alguns casos (GOOGLE DRIVE, 2015).
Aplicaes que no necessitam que a persistncia seja assncrona, tais como editores
de texto colaborativos, cadastros colaborativos (cada usurio escolhe uma opo), chat
temporrio, so exemplos de boas formas de utilizar os recursos da API.
Levando-se isso em considerao, aplicaes que precisam que os dados sejam
persistidos a todo momento e que tudo que foi alterado seja sincronizado diretamente do lado
do servidor, ou seja, utilizando tecnologias de comunicao assncrona, no so aplicveis
com esta API.

2.1.2.3 FireBase
De acordo com a documentao, o Firebase uma plataforma baseada em conceito
de nuvem, que fornece servios de hospedagem de dados atravs de diversas integraes para
o desenvolvimento de aplicaes nativas ou Web. Tornou tambm possvel a integrao com
aplicaes Web Mobile que utilizam as diretrizes do AngularJS, entre outras, aplicaes
nativas para as plataformas Android e iOS (FIREBASE, 2015).
Os servios de integrao so fornecidos atravs de uma API que possui uma rica
documentao para todos os recursos de sincronizao entre os servios e aplicaes.
Exemplos de utilizao do servio:

Aplicaes que precisam que os dados sejam sincronizados em tempo real


entre vrios tipos de plataformas (HILTON et al, 2014).

Ambiente web para desenvolvimento de software colaborativo (HILTON et al,


2014).

34

Projetos em que seja necessrio que o contedo mostrado esteja sincronizado


em ter todas as aplicaes (HILTON et al, 2014).

De acordo com Hilton (2014), Como a aplicao funciona na nuvem, existe um


potencial enorme para educao e colaborao distncia. Sendo assim, o fato do servio
funcionar em nuvem se torna um diferencial no desenvolvimento de uma aplicao
colaborativa independentemente da plataforma em que a aplicao ser executada.

2.2 Tecnologia para Desenvolvimento Multiplataforma

Por conta da grande quantidade de tecnologias disponveis no mercado, encontra-se


necessrio o estudo de cada uma para avaliao individual e enquadramento com os requisitos
do projeto.
[...]escrever um software especificamente para dispositivos mveis algo trabalhoso,
pois grande parte do trabalho precisa ser duplicado para que seja possvel escrever aplicaes
nativas para desktops, Android, e iOS (HILTON et al, 2014). Segundo o autor, o
desenvolvimento nativo e especifico por plataforma pode ser algo que necessita muito
trabalho duro, com isso o processo se torna extenso.
Sendo assim, o intuito do desenvolvimento multiplataforma ampliar o alcance da
aplicao, portando a qualquer plataforma disponvel sem restries e com tempo de
desenvolvimento menor o possvel.
Ainda existem ferramentas disponveis no mercado que possuem recursos e
ambientes preparados para a reutilizao de cdigo e compilao para diversas plataformas, a
essas ferramentas d-se o nome de Cross-platform frameworks, e neste captulo sero
apresentadas algumas opes e tcnicas para um melhor emprego de tal desenvolvimento
neste projeto.

35

2.2.1 Principais Tcnicas

O incio de um projeto que pretende atender mltiplas plataformas precisa ser muito
bem avaliado em alguns aspectos, para com isso poder direcionar o desenvolvimento a um
ponto de partida que no ter implicaes negativas em um futuro crescimento. Aps tomar
tal conhecimento, pode ser notvel que tornem mais claros quais sero os passos a seguir,
portanto, uma pesquisa sobre as principais tcnicas de desenvolvimento multiplataforma
servir como guia para o andamento linear do projeto.

2.2.1.1 M.

Inicialmente no existiam maneiras para visualizar um contedo disponvel para telas


de computadores em dispositivos mveis, e para tornar isso possvel foi criado o conceito
Mdot ou M. como conhecido no Brasil. Basicamente, todo o contedo apresentado
completamente diferente e reduzido para que o usurio consiga visualizar em telas pequenas
de dispositivos moveis (MOHOROVICIC, 2013).
A princpio, essa tcnica era uma tima maneira de introduzir a navegao web em
dispositivos mveis, j que na poca ainda no era uma prioridade para o desenvolvimento
web criar pginas com interface prpria para esses dispositivos. Sendo assim, a tcnica foi
perdendo cada vez mais sua popularidade com o crescimento do mercado mvel.

2.2.1.2 RESS (Responsive Web Design)

O RESS ou Design Web Responsivo foi criado com o objetivo de adequar a forma
como consumido o contedo de uma pgina web em diversos dispositivos e formatos de tela.
O conceito define que o dispositivo deve ser reconhecido conforme estiver definido no CSS3
Media Queries, dessa forma quando um dispositivo tiver uma tela menor, o mesmo
automaticamente ajusta o contedo para ser apresentado e adaptado para seu uso
(MOHOROVICIC, 2013).

36

Os recursos mais importantes para uma pgina com design responsivo so:

Uma grid flexvel;

Imagens com tamanho flexvel;

CSS3 Media Queries;

Grid e imagens flexveis consistem em elementos que possuem caractersticas de


redimensionar sua estrutura de maneira proporcional e sem perder a qualidade. No caso da
Grid a rea que estiver disponvel para uso preenchida pelo contedo da pgina conforme
o tamanho da tela. J no caso das imagens, conforme o tamanho da tela sua proporo ser
alterada sem perda de qualidade ou deformao da estrutura inicial (MOHOROVICIC, 2013).
Na F apresentado um exemplo de como o funcionamento da adaptao que esse
tipo de design assume em diferentes dispositivos, telas e orientaes.

Figura 8. Website do Boston Globe visualizado em diversos dispositivos, um


exemplo de um design responsivo

Fonte: HARB et al, 2011.

37

2.2.1.3 Mobile First


Diferente do que acontece no design responsivo, tudo que for desenvolvido partindo
pelo conceito do Mobile First, dever priorizar primeiro os dispositivos mveis e ento seguir
para os dispositivos com telas maiores, tais como tablets e em seguida os desktops.
O Mobile First uma nova forma de pensar que est seguindo uma tendncia no
mercado, o que aponta o crescimento relativo na utilizao de dispositivos mveis. E ao
utilizar esta tcnica, o desenvolvedor conseguir padronizar os recursos de uma aplicao ou
pgina web em todas as plataformas, j que sero desenvolvidos com base em telas pequenas
primeiramente (HARB et al, 2011).
Conforme apresentado na Figura 9, aps o lanamento do dispositivo mvel da
empresa Apple, o iPhone, houve um crescimento muito alto no consumo de dados mveis,
algo que indicava que o mercado estava mudando, e precisava ainda mais de contedo
adequado para o consumo em telas pequenas.

Figura 9. Aumento no trafego de dados da AT&T entre 2006 e 2009

Fonte: HARB et al, 2011.


Logo, o propsito principal basear todo o projeto na capacidade que um dispositivo
mvel consegue comportar para que no sejam necessrias futuras adaptaes ao ter que
utilizar uma aplicao web feita para desktop que possuem telas maiores e podem comportar
muitos componentes visuais, para a tela pequena de um celular.

38

2.2.2 Ferramentas disponveis no mercado

Assim como visto anteriormente, cada tecnologia possui uma particularidade que
define como ser o processo de desenvolvimento, que por sua vez pode ser algo demorado e
requerer um maior aprofundamento, ou ento ser simples e rpido para obter resultados
satisfatrios. Seguindo esse caminho, analisar as ferramentas de desenvolvimento
multiplataforma disponveis no mercado se faz necessrio para o total aproveitamento do
tempo disponvel, alm do cumprimento com todas as funcionalidades propostas para a
concluso do projeto.

2.2.2.1 PhoneGAP

O PhoneGap um framework open source para desenvolvimento de aplicaes


hibridas multiplataforma. As aplicaes so hibridas, pois so desenvolvidas usando
tecnologias web como HTML5, CSS e JavaScript, em seguida todo o contedo encapsulado
em um pacote nativo especifico para cada plataforma, entretanto, possvel desenvolver uma
aplicaes funcionais nos ambientes online ou off-line (PHONEGAP, 2015).
Existe a possibilidade de utilizar combinaes de scripts para desenvolver uma
interface, utilizando Jquery, MooTools e XUI. Mas toda sua lgica de programao e acesso
recursos do dispositivo deve ser feito utilizando a linguagem Javascript (PHONEGAP, 2015).
Este acesso aos recursos do dispositivo provido atravs do PhoneGap API, que
possui uma camada a camada de visualizao e hardware. Para a utilizao dos recursos a API
disponibiliza uma biblioteca em Javascript para cada item do dispositivo (PHONEGAP, 2015).
Como exemplo do uso de tal ferramenta, pode-se mencionar sistemas bancrios para
gerenciamento conta pessoal, aplicaes de marketing e consulta a dados online. Em geral
so aplicaes que no utilizaro muitos recursos do dispositivo mvel para exercer suas
funes e no precisam ser constantemente utilizadas sem conexo com a internet.

39

2.2.2.2 Appcelerator Framework

O Appcelerator um framework que possui uma grade de ferramentas para auxiliar


no desenvolvimento de aplicaes nativas multiplataforma. Basicamente o funcionamento das
aplicaes criadas por este framework ocorrem da seguinte maneira, o cdigo todo escrito
na linguagem JavaScript, e ento interpretado atravs do SDK Appcelerator, que integra na
linguagem do dispositivo de destino.
Em tempo de execuo, o cdigo avaliado atravs do interpretador JavaScript j
existente na plataforma do dispositivo. Quando o aplicativo aberto, o JavaScript executado
dentro da plataforma nativa, os cdigos na linguagem so injetados como um pacote em
tempo de execuo. No caso o SDK Appcelerator trabalha como um intermediador entre os
componentes e recursos prprios e o cdigo em JS(APPCELERATOR,2015).
O maior diferencial entre o PhoneGap e o Appcelerator, que tudo acontece em
tempo de execuo sem a necessidade de utilizar componentes web para funcionar.

Vantagens:

Reutilizao de cdigos para plataformas diferentes (Android, iOS, Windows


Phone e HTML5);

Tempo de produo das aplicaes;

Utilizao de tecnologias WEB conhecidas;

No usa Browser para execuo;

Documentao da API;

Comunidade Online;

Desvantagens:

No oferece acesso a todos os recursos dos dispositivos;

Tempo de compilao;

Tamanho da aplicao;

Velocidade da aplicao;

Dificuldade para iniciar o desenvolvimento muito avanada;

Documentao pouco organizada;

40

2.2.2.3 IONIC
O Ionic foi criado em 2013 com o objetivo de criao de aplicaes hbridas para
dispositivos mveis, especificamente para as plataformas Android e IOS. Este framework est
repleto de componentes e ferramentas, e estas so:

Apache Cordova: um conjunto de APIs que permitem que o desenvolvedor


de aplicaes mveis tenha acesso aos recursos nativos dos dispositivos como
cmera e sensores de movimento apenas utilizando JavaScript (CORDOVA,
2015);

AngularJS: um framework javascript MVC que possui diversos mdulos


para a criao da camada de visualizao Web e integrao com a regra de
negcio da aplicao (ANGULARJS, 2015);

Ionic CLI: um conjunto de linhas de comando para controlar a aplicao


atravs do terminal, por l possvel iniciar a aplicao, fazer um Debug e
at mesmo iniciar novos projetos (IONIC, 2015);

O tempo de desenvolvimento utilizando este framework relativamente curto,


quando comparado com os demais apresentado pode se tornar uma tima alternativa, e
atualmente vista como uma oportunidade para quem nunca desenvolveu aplicativos mveis,
j que comear um projeto extremamente fcil e a enorme quantidade de tutoriais online
ajuda muito.
O frum disponibilizado pela IONIC muito rico em informao e colaborao por
parte de milhares de desenvolvedores, que ajudam em cada dvida, algo que conta muito para
quem quer comear a trabalhar com o framework e no sabe como resolver problemas, e
tambm para desenvolvedores experientes que precisam de novas ideias.
Um dos maiores incentivos para utilizar o IONIC so a documentao e tutoriais que
a prpria empresa disponibiliza para os usurios, todas as ferramentas e recursos esto
documentados e exemplificados para que o usurio consiga aprender e solucionar problemas
que possam ocorrer durante o desenvolvimento (IONIC, 2015).

41

2.3 Consideraes Finais

No desenvolvimento de uma aplicao colaborativa existem diversas tcnicas que


podem servir como base para as funcionalidades que possuiro recursos colaborativos. Essas
tcnicas so baseadas no Modelo 3C, onde o processo de colaborao acontece com a unio
entre a comunicao, a coordenao e a colaborao, para que assim um trabalho colaborativo
seja realizado de maneira mais produtiva e eficiente.
Alm de tcnicas para desenvolvimento colaborativo, uma aplicao tambm deve
possuir recursos que facilite a interao entre as pessoas. Para isso, existem solues no
mercado que podem ser integradas em aplicaes e serem utilizadas com pouco tempo de
desenvolvimento, mas totalmente funcionais.
E para implementar tais recursos, o desenvolvimento da aplicao pode partir de um
dispositivo desktop, priorizando primeiro telas maiores para ento adaptador aos dispositivos
mveis com telas menores, usando a tcnica de design responsivo, ou ento, partir de um
dispositivo mvel priorizando as telas menores e a partir disso trazer a aplicao para
dispositivos com telas menores, algo que segue as tendncias do mercado.
Portanto, para atingir tambm outras plataformas mveis e possibilitar que mais
pessoas consigam ter acesso aplicao, existem ferramentas no mercado que visam a
reutilizao de cdigo e exportao para mltiplas plataformas, de forma que economize no
tempo de desenvolvimento sem deixar de obter uma aplicao completa e com recursos que
uma aplicao nativa possuiria.

42

DESENVOLVIMENTO DE UM APLICATIVO MULTIPLATAFORMA


DE ESCRITA COLABORATIVA EM TEMPO REAL

O trabalho colaborativo uma forma muito rica para criao de contedo, onde mais
de uma mente est conectada e diferentes perspectivas de algo so apresentadas, dessa forma
h menos risco de ocorrerem falhas que venham a atrapalhar atingir o objetivo proposto. Com
este pensamento foram desenvolvidos os sistemas colaborativos, que so vistos como
ferramentas fundamentais para proporcionar o trabalho em grupo em ambientes corporativos.
Ao utilizar um sistema colaborativo a empresa deve ter em mente que o seu funcionamento
depende da total liberdade de expresso de seus colaboradores, ou seja, no devem existir
barreiras que possam inibir a criatividade dos participantes.
Esses sistemas possuem caractersticas especficas que definem como deve ocorrer a
interao entre os usurios para que haja colaborao em uma tarefa especfica, tais como a
liberdade de cada participante ou at mesmo o nvel de interao entre os mesmos, que mede
o tempo de resposta entre cada interao, onde quanto mais prximo de tempo real maior
ser este nvel.
No mercado existem solues tanto corporativas quanto sociais para que exista uma
interao colaborativa em diversas reas, as mais conhecidas so as Redes Sociais, onde todo
o contedo existente desenvolvido pela comunidade atravs da interao entre milhes de
pessoas. Alm do uso social, existe tambm a colaborao em meio acadmico, onde
surgiram aplicaes voltadas para o desenvolvimento de software em equipe, sendo que todo
o cdigo editado em tempo real por todos os participantes, havendo assim um alto nvel de
colaborao e aumento da qualidade.
Atravs dessa anlise foi possvel enxergar o melhor caminho para o
desenvolvimento da aplicao proposta no projeto, sendo esta uma soluo para a escrita de
livros de forma colaborativa voltada para o meio comum da profisso de escritor e buscando
aumentar o nvel de interao entre leitor e escritor, para que assim cresa tambm a produo
de contedo com maior relevncia ao seu pblico.
O objetivo principal deste projeto o desenvolvimento de uma aplicao
multiplataforma que proporcione tal interao e possua as funcionalidades que representam o
ncleo da ideia que o define, ou seja, a escrita e colaborao em tempo real. Para isso, foram

43

utilizadas ferramentas que j possuem alguns desses recursos bem definidos e prontos para
serem utilizados, e assim houve uma reduo do tempo para obter a aplicao totalmente
funcional.

3.1 Funcionalidades

As funcionalidades de uma aplicao devem representar o principal motivo para uma


pessoa desejar utiliz-la, portanto, elas devem ser limitadas sobre quais sero as
possibilidades de seu uso.
Seguindo

os

objetivos

que

foram

apresentados,

sero

especificadas

as

funcionalidades que representam a ideia do projeto atravs de recursos que permitiro a


escrita em tempo real de maneira colaborativa:

Cadastrar uma nova conta: O novo usurio pode realizar um novo cadastro
atravs da aplicao ao preencher os dados: Nome, E-mail e Senha;

Realizar Login: Aps o usurio cadastrar na aplicao, ele consegue realizar o


login com seus dados persistidos na base de dados;

Criar um Livro: O usurio cadastrado pode criar seus prprios livros em sua
pgina principal, onde deve clicar em um boto + e digitar o nome do livro;

Adicionar detalhes sobre o Livro: Ao clicar em um livro da lista, o usurio


levado para uma tela onde o mesmo deve incluir dados adicionais sobre o livro
que est escrevendo, bastando apenas clicar no boto Editar no canto superior
direito.

Criar novos Captulos: Ao criar um novo livro, o usurio pode criar um novo
captulo, clicando no boto Novo Captulo, onde ir surgir um boto Capitulo
1 e assim por diante.

Escrever Livro: Com o novo captulo criado, o usurio pode escrever seu livro
normalmente, j que a aplicao o leva para um editor de textos, seja para
comear um novo contedo ou continuar de onde parou.

44

Pesquisar Livros: possvel pesquisar por novos livros para ler e colaborar
atravs de um campo de pesquisa.

Seguir Livro: Ao conhecer o contedo escrito por um autor, o usurio tambm


consegue seguir o livro, que ser adicionado a uma lista de livros que esto
sendo seguidos.

Comentar Livro: Alm de acompanhar o contedo sendo escrito, o usurio


consegue comentar e discutir com outros para obter novas ideias ou melhorar o
que j foi escrito.

3.2 Arquitetura

A arquitetura de uma aplicao consiste em satisfazer todas as camadas que sero


utilizadas para o funcionamento da mesma. Sendo assim, na Figura 10 esto alinhadas as
tecnologias e como interagem para que um usurio consiga utilizar a aplicao.

Figura 10. Arquitetura da Aplicao

Fonte: Desenvolvido pelo autor

45

Para descrever seus componentes preciso seguir o fluxo entre as camadas, que
iniciam a partir da visualizao, onde os usurios conseguem acessar e interagir a partir de
qualquer dispositivo mvel j que o Ionic Framework torna possvel o desenvolvimento
multiplataforma. J a camada de controle, representada pelo Writo App, responsvel pelos
componentes de sincronizao e validao onde est integrada a API Firebase para a
persistncia e sincronizao dos dados em tempo real. Sendo assim, toda a camada de modelo
abstrada pelo servio Firebase, que armazena e oferece recursos para a manipulao dos
dados persistidos e recuperao dos dados atravs de Websockets em tempo real.

46

3.2.1 Modelagem das regras de negcio

A aplicao foi desenvolvida com base em uma viso estratgica de negcio, a qual
poder auxiliar em uma futura ampliao. Esta viso pode ser obtida a partir da elaborao de
um diagrama de BPM, onde foram expostas todas as regras de negcio da aplicao, de
acordo com a Figura 11 (BRAMBILLA et al, 2011).

Figura 11 Diagrama das Regras de Negcio da Aplicao


Receber
novas
mensagens

Iniciar sesso

Lista de Captulos

Iniciar Leitura

Leitor

Selecionar
Captulo

Sim

Enviar
mensagens

Exibir contedo
escrito no captulo

Deseja ler?

No

Adicionar
Detalhes ao
Livro

Iniciar sesso

Atualizar
Informaes

Lista de Livros

Selecionar Livro

Atualizar
detalhes?

Deseja criar
capitulo?

No

Sim

Sim

Criar novo livro

Exibir
mensagens
do Chat

Abrir Chat

No

Criar Captulo

Selecionar
Captulo

Lista de livros

Escritor

Processo de escrita/leitura de livros e interao na aplicao

Selecionar Livro

Lista de Livros

Receber
novas
mensagens

Exibir
ferramenta
de escrita

Deseja
escrever?

Sim

Iniciar Escrita

No

Enviar
mensagens

Exibir
mensagens
do Chat

Abrir Chat

Fonte: Desenvolvido pelo Autor

Com o diagrama, possvel identificar como ocorre cada processo na aplicao,


desde as operaes manuais que so realizadas pelo usurio, at os processos automticos que
so executados pela aplicao.

47

3.2.2 Tcnicas de implementao

As tcnicas de desenvolvimento existentes foram apresentadas com o intuito de


identificar a trajetria do mercado referente ao desenvolvimento para mltiplas plataformas,
dessa forma foram contempladas as que so habitualmente utilizadas e tambm as que esto
deixando de existir por no mais atender ao mercado.
Para o desenvolvimento deste projeto foram analisadas as tcnicas de
desenvolvimento Responsive Web Design e Mobile First, onde a primeiro visa a
adaptao do que j existe para diferentes plataformas, e a segunda o desenvolvimento
iniciando primeiramente para as plataformas mveis. As vantagens do desenvolvimento
responsivo aparecem quando um contedo j existe e possui recursos que no foram
desenvolvidos para serem executados em diferentes plataformas alm do ambiente web, sendo
assim, pode ser vantajosa adaptao utilizando essa tcnica. Entretanto, existem algumas
desvantagens que tornam o design responsivo no ser uma boa alternativa para um projeto
que se inicia.
As desvantagens esto presentes na quantidade de elementos que uma pgina Web
para desktops pode suportar e que em dispositivos mveis no so suportados. E foi
analisando esses pontos que tornou o Mobile First a melhor opo para o desenvolvimento
da aplicao do projeto. Essa tcnica tem como propsito principal priorizar o
desenvolvimento mobile, e o objetivo tornar possvel atender todas as plataformas sem que
haja problemas ou adaptaes para diferentes tamanhos de telas onde o contedo ser
consumido.

48

O desenvolvimento priorizando os dispositivos mveis segue uma tendncia


conforme demonstrado na Figura 12, onde at 2017 haver at oito vezes mais celulares do
que computadores pessoais, ou seja, todo o contedo disponibilizado ser visualizado
primeiro a partir desses dispositivos, algo que comprova a grande importncia de investir em
tal tcnica de desenvolvimento.

Figura 12. Dispositivos entregues ao redor do mundo por seguimento, 2012 2017

Fonte: MOHOROVICIC, 2013

A aplicao dos conceitos do Mobile First partiram da escolha do framework de


desenvolvimento, o qual foi escolhido o Ionic, uma ferramenta que permite o desenvolver
aplicaes hbridas para mltiplas plataformas mveis, inicialmente para iOS e Android.
Durante o desenvolvimento, foram criadas funcionalidades que podem ser acessados em
qualquer tamanho de tela de dispositivo mvel, e tambm facilmente adequado telas
maiores.
Alm disso, a utilizao de tal framework, permite que uma pgina web utilize as
mesmas regras de negcio que uma aplicao mvel, j que a camada de visualizao
totalmente web. Com isso, faz valer a possibilidade de ampliao para aplicaes web que
sero utilizadas em desktops e notebooks, sem que haja necessidade fazer limitaes nas
funcionalidades que j so utilizadas na aplicao mvel.
Sendo assim, a utilizao do Mobile First como tcnica de desenvolvimento, foi
essencial nas decises de escolha das tecnologias que fizeram parte da aplicao, alm de

49

proporcionar uma possibilidade de ampliao futura sem perder qualidade ou fazer limitaes
como aconteceria em outras tcnicas.

3.3 Escrita de Livros Colaborativa

A escrita de livros tradicional para pessoas que no possuem experincia na rea


pode ser muito desafiadora e frustrante, isto ocorre porque a primeira interao entre o
escritor e o leitor somente acontece quando o livro finalmente disponibilizado oficialmente
por alguma editora para o pblico. Dessa forma, o leitor pode no gostar do resultado final e
isso pode levar a muitos lanamentos at que finalmente o escritor seja notado por ter
encontrado aquilo que o leitor procure em um livro seu.
Para que seja possvel diminuir a quase zero o tempo de resposta dos leitores, foi
adotado na aplicao a partir do Modelo 3C de colaborao, uma estrutura de colaborao
entre escritores e leitores.

Esta estrutura consiste da seguinte maneira (Figura 13):

1. O escritor escreve o captulo de seu livro que em tempo real persistido e


disponibilizado ao pblico.
2. Os leitores acompanham o livro e compartilham suas ideias e sugestes
atravs do chat disponvel dentro de cada captulo, tudo em tempo real.
3. O escritor participa e analisa as discusses com os leitores e as organiza para
que seja mais produtivo e o assunto voltado ao livro/captulo que est sendo
escrito.

50

Figura 13. Modelo 3C de colaborao na aplicao

Leitor

Escritor

COOPERAO DENTRO
DO CHAT

Gera novas ideias e

LIVRO

pontos de vista pela

feedback

TROCA DE MENSAGENS

ORGANIZAO E
ANALISE

Escritor e leitores

Organiza as discusses para

Fonte: Elaborado pelo autor

A vantagem de se utilizar o Modelo 3C que a colaborao deve ocorrer de forma


natural, j que o mesmo modelo j foi empregado em outras aplicaes colaborativas e em
redes sociais. Sendo assim, o conceito do Modelo 3C deve ser caracterizado como uma
estrutura de sistema colaborativo network, onde no existem restries, hierarquia e
principalmente qualquer tipo de formalidade.

3.4 Ferramentas

As ferramentas de desenvolvimento tais como frameworks e bibliotecas que j


possuem um aprofundamento maior em recursos que podem ser utilizados de maneira
instantnea, certamente so timos para um ponto de partida com mais garantia, sendo assim
possvel implementar uma aplicao funcional de menor custo/tempo e maior nvel de
qualidade.
Dentre as ferramentas apresentadas durante a reviso bibliogrfica as que mais se
mostraram ser adequadas para o projeto foram: Ionic Framework, Firebase e suas bibliotecas
Angularfire e tambm o Firepad para a sincronizao de texto. As ferramentas escolhidas

51

possuem um conjunto de funcionalidades e recursos que facilitam o desenvolvimento


multiplataforma e principalmente que atendeu aos requisitos do projeto, o que inclui o
comunicao assncrona.
Logo, este captulo determinou cada processo de desenvolvimento utilizando cada
tecnologia para se obter a aplicao esperada, dessa forma, cada etapa determinou como foi
possvel implementar todos os recursos a serem utilizados pelo usurio e suas limitaes.

3.4.1 Gesto de Usurios

Cadastro de Usurios: Mtodo utilizado para cadastrar novos usurios. Devem ser
inseridos os dados de login e senha que o novo usurio desejar. Para verificar a existncia
de um possvel cadastro existente com o mesmo nome inserido, o processo de cadastro
validado conforme a seguir (Figura 14):
a) O futuro usurio informa seu nome de login.
b) A aplicao faz comunicao com a base dados atravs de mtodos disponibilizados
pelo servio Firebase atravs de uma API REST.
c) O nome que o usurio inseriu comparado em tempo real para verificar a existncia
na base de dados;
d) Caso a verificao encontre o nome, exibido um alerta que o nome j est sendo
utilizado.
e) Caso a verificao no encontre o nome, o usurio liberado para prosseguir com o
cadastro.
f) O usurio deve clicar no boto disponvel para prosseguir com o cadastro aps a
confirmao do login, e ter inserido uma senha.
g) Aps prosseguir com o cadastro, os dados so persistidos no banco de dados a partir
de uma conexo utilizando os mtodos da API REST, e uma mensagem de
confirmao de cadastro exibida na tela.

52

Figura 14. Diagrama do Mtodo de Criao de Usurio

Inserir dados

Consultar nome de
usurio

<<FIREBASE REALTIME SERVER>>

Verificar se nome de
usurio existe
Nome de usurio
existe?

Sim

Exibir alerta que nome de usurio


ja esta sendo utilizado

No

Liberar usurio para finalizar


processo de cadastro

Prosseguir cadastro

Persistir dados

<<FIREBASE REALTIME SERVER>>

Exibir mensagem de
confirmao de
cadastro

Fonte: Elaborado pelo autor

53

Fazer Login: Mtodo utilizado para acessar a aplicao. Deve ser inserido o login e a
senha do usurio. Para validar os dados do usurio e garantir que o mesmo esteja
cadastrado no sistema antes de liberar o acesso, o processo acontece conforme
apresentado na Figura 15.
a) O usurio informa os dados de acesso.
b) Os dados do usurio so consultados na base de dados atravs de mtodos
disponibilizados pelo servio Firebase atravs de uma API REST.
c) Caso o nome esteja cadastrado, a senha do usurio comparada com os dados
armazenados na DOM do Angular localmente.
d) Caso o nome no conferir, a aplicao exibe uma mensagem informando que o mesmo
no est cadastrado no sistema.
e) Caso a senha conferir, o tolken do cadastro do usurio enviado atravs de uma lista
remota e libera o acesso aplicao ao usurio.
f) Caso a senha no conferir, a aplicao exibe uma mensagem informando que a senha
invlida.

54

Figura 15. Diagrama do Mtodo de Login

Inserir dados

Consultar dados

<<FIREBASE REALTIME SERVER>>

O nome do usurio
existe?
No

Exibir alerta de usurio no


cadastrado

No

Verificar se a senha
do usurio confere

Consulta dados armazenados


localmente

A senha do usurio
confere com a
cadasrada?
No

Liberar usurio para finalizar


processo de cadastro

Sim

Consulta dados armazenados


localmente

Fonte: elaborado pelo autor

55

3.4.2 Gesto de Livros

Criar Livro: Este mtodo utilizado para criar novos livros. O usurio pode criar um
novo livro, que sincronizado em todos os dispositivos em tempo real, conforme a seguir
(Figura 16)
a) O usurio clica no boto com o smbolo + no canto superior direito para criar um
novo livro em sua lista.
b) Uma caixa de texto solicita o nome do livro a ser criado e o usurio deve informar e
clicar em OK para confirmar.
c) Aps confirmar, o mtodo que adiciona o livro recebe o nome informado e utilizando
um mtodo de comunicao com a base de dados, o mesmo persistido.
d) O livro sincronizado na lista de livros que o usurio possui utilizando os mtodos da
API REST.

Editar Detalhes: Este mtodo utilizado para adicionar detalhes ao livro adicionado
pelo usurio. Aps ter criado o livro, o usurio o seleciona para ento adicionar detalhes
como: ttulo, tema e sinopse. O processo ocorre conforme apresentado abaixo (Figura 16):
a) O usurio seleciona o mesmo e clica no boto editar no canto superior direito.
b) O aplicativo abre uma pgina com campos referente aos detalhes do livro, com dados
existentes para serem alterados.
c) O usurio insere as informaes que sero atualizadas e clica em Salvar Alteraes.
d) Um mtodo que recebe localmente os dados atualiza as informaes no banco de dados
utilizando mtodos disponibilizados pelo servio Firebase atravs de uma API REST.
e) O aplicativos consulta os dados do livro selecionado e apresenta na tela utilizando os
mtodos da API REST.

56

Criar Captulo: Nessa funcionalidade possvel criar captulos para o livro. Dentro do
livro selecionado, possvel criar captulos onde o mesmo pode inserir contedo ao
mesmo. O processo ocorre conforme apresentado abaixo (Figura 16):
a) O usurio clica no boto Adicionar Captulo para criar um novo captulo.
b) O mtodo responsvel por adicionar o captulo cria um nmero sequencial que
representa o captulo dentro do livro no servio de persistncia Firebase.
c) Para cada captulo criado, um novo boto dever aparecer na lista de captulos do livro,
utilizando os mtodos de consulta da API REST.

Editar/Visualizar Contedo do Captulo: Esta funcionalidade responsvel pela


edio e visualizao do contedo escrito em um captulo. Ao abrir um captulo,
possvel o usurio escrever e editar o contedo do mesmo, onde os usurios que no so
proprietrios do livro podem apenas visualiza-lo. O processo deve acontecer conforme a
seguir (Figura 16):
a) Ao clicar em um captulo, o mtodo responsvel por consulta e persistncia de texto
busca o contedo escrito pelo usurio e posiciona o ponteiro onde o mesmo parou da
ltima vez.
b) O contedo escrito pelo usurio persistido em tempo real, para isto um canal de
comunicao bidirecional aberto, o qual responsvel por transmitir as requisies do
mtodo da API REST que verifica as alteraes no contedo escrito e o atualiza no
registro do Firebase.

57

Figura 16. Diagrama dos Mtodos de Gerncia de Livros

Adicionar novo livro


<<FIREBASE REALTIME SERVER>>

Consultar dados

Persistir dados

Deseja escolher um
livro?

No

Continuar na mesma pagina e manter


sincronizada a lista de livros

Sim
Consultar dados do
livro escolhido

Deseja alterar detalhes do


livro?

Sim

Persistir dados
localmente

Editar detalhes

Alterar dados

No
Abrir captulo
O captulo que deseja
abrir j existia?

No
Criar captulo

Criar registro de primeiro


acesso aos dados do captulo

Sim
Abrir captulo

Consultar dados

Escrever/ler
contedo do captulo
em tempo real

Fonte: Desenvolvido pelo autor

Persistir dados

58

Pesquisar Livros: Este mtodo utilizado para pesquisar outros livros e segui-los. Esta
funcionalidade permite que o usurio pesquise novos livros para que possam acompanhar
e adiciona-los a uma lista. O processo de pesquisa e adicionar livros a lista ocorre da
seguinte forma (Figura 17):
a) O usurios abre o menu de opes e seleciona a opo pesquisar.
b) Digita o nome do livro desejado.
c) Seleciona um livro.
d) Caso o usurio decidir acompanhar o livro escolhido, ele poder clicar em seguir livro,
ento o livro ser adicionado lista de outros livros.
e) Caso o mesmo no tenha interesse em seguir, ele permanecer na mesma tela.

Figura 17. Pesquisa de livros

Pesquisar Livro

<<FIREBASE REALTIME SERVER>>

Consultar dados

Encontrou o livro?

No

Sim

Continuar na mesma pagina para


pesquisar novamente

Deseja seguir livro?


No

Selecionar livro

Permanecer na
mesma pagina

Sim
Adicionar livro em
outros

Fonte: Desenvolvido pelo autor

59

Abrir Chat: Este mtodo utilizado para iniciar o chat do captulo. Esta funcionalidade
d incio a um chat onde os usurios podem discutir sobre o captulo que esto lendo e
passam informaes que so analisadas pelo autor do livro. O processo para abrir o chat e
interagir ocorre conforme descrito abaixo (Figura 18):
f) O usurio abre um captulo e clica no boto Chat.
g) Uma janela aberta e o mtodo da API REST realiza uma consulta para buscar o
contedo escrito por outros usurios.
h) Um canal de comunicao bidirecional aberto para receber novas conversas.
i) O usurio pode utilizar o campo localizado na parte inferior da tela para escrever, e
clicar no boto Enviar para enviar o que foi escrito.
j) O contedo recebido pelo mtodo da API REST responsvel por persistir os dados ao
chat.

60

Figura 18. Diagrama do Mtodo de Chat

Escolher captulo
<<FIREBASE REALTIME SERVER>>

Consultar dados

Abrir Chat

Persistir dados

Consultar dados

Escrever/ler
mensagens em
tempo real

Fonte: Desenvolvido pelo autor

61

3.4.3 Escrita de Livro em Tempo real


A sincronizao em tempo real um dos recursos que eleva o nvel interao entre os
usurios, e com isso, aproxima os leitores dos escritores, trazendo os para dentro do projeto de
escrita do livro que esto lendo e interagindo.
A princpio todas as requisies so sincronizadas em tempo real atravs de canais
bidirecionais chamados WebSockets, os principais recursos so: criao de novos livros,
criao de captulos, escrita, leitura, chat e recuperao das informaes que so exibidas na
tela. Esses canais so responsveis por levar cada requisio que a aplicao faz ao mesmo
tempo que receber dados que foram solicitados.
Uma API REST oferecida pelo servio Firebase, permite controlar a persistncia e
recuperao de dados de maneira muito gil, e por se tratar de um banco no relacional que
possui recursos para atender mltiplas requisies em tempo real, o servio aliado aos canais
bidirecionais permitiram a implementao dos recursos de escrita da aplicao.
Para exemplificar como ocorre a comunicao e troca de requisies, foi elaborado
um diagrama de sequncia, conforme Figura 19 (MILICEV, 2009).

Figura 19 Diagrama de Requisies da Aplicao

Leitor/
Escritor

Aplicao

REST API
Firebase

Websocket
iniciarComunicacao(Tolken)

requisitarLivros()

solicitarLivrosUsuario(Tolken)
adicionarLivro(Tolken)

persistirNovoLivro(Tolken)

buscarTolken()

retornarListaLivros()

criarLivro()

atualizarListaLivros()

iniciarComunicacao(capId)
abrirCapitulo()

identificarCheckpoint(capId)

solicitarDadosLivro(capId)

escreverCapitulo()

adicionarDados(capId)

alterarDadosLivro(capId)

lerCapitulo()

verificarAlteracoes(capId)

buscarCapituloId()

retornarDadosLivro()

atualizarDadosCapitulo()
abrirChat()

escreverMensagem()
lerMensagens()

iniciarComunicacao(capId)
verificarMensagens(capId)

solicitarMensagens(capId)

persistirMensagem(capId)
enviarMensagem(capId)

retornarMensagens()

atualizarMensagens()

Fonte: Desenvolvido pelo autor

buscarCapituloId()

62

O uso de ferramentas como o Firebase e a API Firepad, foram essenciais na


implementao dos mecanismos de sincronizao para o desenvolvimento das principais
funcionalidades da aplicao, e dessa forma, o foco principal passou a ser a apenas o
conhecimento de como deveria ser implementado e utilizado cada mtodo disponvel para
consumir tais recursos.

3.5 Consideraes Finais

A aplicao possui um conjunto de funcionalidades que adicionam e enriquecem a


utilizao da mesma, de forma que seja fcil criar livros, adicionar detalhes ao livro, criar
captulos personalizados, escrever e formatar o contedo de cada captulo e interagir com
outros usurios atravs do chat dentro de cada captulo.
J a arquitetura, foi possvel verificar como funciona cada camada da aplicao,
sento ela dividida entre visualizao, controle e modelo, onde a primeira pode ser utilizada a
partir de dispositivos mveis que possuem telas e sistemas operacionais distintos, a segunda
responsvel pelas regras de negcio, ou seja, onde todos as requisies so gerenciadas e
passadas para a prxima camada, a qual recebe e atende cada requisio de dados, persistindo
e realizando alteraes.
O desenvolvimento foi guiado pela tcnica Mobile first, o qual prioriza iniciar a
partir de dispositivos mveis, para garantir que os recursos implementados na aplicao
possam estar disponveis em todos os dispositivos que possurem telas menores, e serem
adaptados para maiores sem que haja necessidade de limitar os recursos j implementados.
Sobre a escrita colaborativa, foi elaborado com base no Modelo 3C de colaborao,
um mtodo padronizado de como poder acontecer o trabalho conjunto aliado escrita de
livros, para isso, so distribudos papeis para cada usurio, sendo o escritor e o leitor
responsveis pela comunicao, em seguida o escritor por coordenar as discusses, e por
ltimo o leitor por colaborar com o escritor, passando seu feedback sobre o contedo.
As ferramentas escolhidas para implementao foram baseadas na tcnica de
desenvolvimento, e por priorizar os dispositivos mveis, o Ionic Framework foi elegido como
a melhor ferramenta por ser possvel desenvolver para mltiplas plataformas e oferecer muito
contedo que ajudou na resoluo de cada desafio. Alm dessa ferramenta, tambm foi
escolhido o Firebase, um servio para persistncia e recuperao de dados em tempo real, o

63

qual oferece uma API que ajudou na implementao dos recursos colaborativos em tempo real.
Por fim, foi especificado como ocorrem cada requisio em tempo real, sendo essas
sincronizadas atravs de canais bidirecionais chamados Websockets, os quais so utilizados
para chamar mtodos da API Rest fornecida pelo servio Firebase, que recebe e atende a todas
as requisies em tempo real.

64

RESULTADOS

O resultado desse trabalho foi uma aplicao mvel multiplataforma, que pode ser
acessada nas plataformas Android e iOS. Como resultado, ser apresentado o uso da aplicao
em imagens que exemplificam cada funcionalidade.

4.1 Aplicao Multiplataforma

A aplicao foi desenvolvida uma nica vez para ambas as plataformas, sendo assim,
em cada imagem exibe como a interface se comporta no iOS e ao lado no Android, imagens
que foram obtidas a partir de um servio do framework que permite a visualizao pelo
navegador.

4.1.1 Cadastro de Usurio


Na Figura 20 ilustra a tela de cadastro de usurios da aplicao que permite o registro
de novos usurios, assim como escolher fazer o login caso o mesmo j possua cadastro.
Figura 20. Cadastro de Usuario

65

4.1.2 Login de Usurio

Na Figura 21 ilustra o login da aplicao, que permite o acesso a aplicao mediante


a autenticao dos dados de usurio e senha.

Figura 21. Login de Usurio

66

4.1.3 Menu de Opes

Na Figura 22 apresentado o menu de opes que o usurio possui acesso aps


realizar login, para exibi-lo basta apenas clicar no boto superior esquerdo da tela.

Figura 22. Menu de Opes

67

4.1.4 Lista de Livros do usurio

Na Figura 23 ilustra a lista de livros do usurio, que carrega a aps o incio da


sesso e permanece sincronizada enquanto aberta.

Figura 23. Lista de Livros do Usurio

68

4.1.5 Criar Livro

Na Figura 24 ilustra a criao de novos livros, que pode ser iniciada ao clicar no
boto localizado no canto direito da tela, ento a aplicao solicitar um nome.

Figura 24. Criao de Livros

69

4.1.6 Detalhes do Livro

Na Figura 25 ilustra a tela de detalhes do livro, esses detalhes podem a desejo do


usurio.

Figura 25. Detalhes do Livro

70

4.1.7 Editar Detalhes do Livro

Na Figura 26 ilustra o funcionamento da edio de detalhes do livro que foi criado,


dessa forma o usurio poder alterar as informaes que inseriu na criao e adicionar outras
informaes

Figura 26. Edio Detalhes do Livro

71

4.1.8 Criar captulos do livro

Na Figura 27 ilustra o funcionamento da criao de captulos de um livro, onde o


usurio deve clicar no boto adicionar captulo para que a aplicao solicite um nome para
captulo.

Figura 27. Criao de Captulos

72

4.1.9 Escrever Capitulo


Na Figura 28 exibe o editor de captulo, onde o usurio dono do livro pode editar o
contedo de seus captulos que ser exibido aos leitores.

Figura 28. Editor de Captulo

73

4.1.10 Abrir Chat

Como possvel observar na Figura 29, a aplicao permite que o usurio que estiver
escrevendo ou lendo um captulo acesse o chat para interagir com outras pessoas.

Figura 29. Chat do Captulo

74

4.1.11 Pesquisar Livro

Na Figura 30 apresentado a opo de pesquisa por novos livros, onde o usurio


pode conhecer novos livros.

Figura 30. Pesquisa de Livros

75

4.1.12 Seguir Livro

Conforme apresentado na Figura 31, a aplicao permite que o usurio siga um


livro de outro usurio, a partir disso o livro ser includo na opo Outros Livros do menu.

Figura 31. Seguir Livro

76

4.2 Anlise dos Resultados

Para analisar os resultados desse trabalho, foi realizado uma verificao de cada
recurso colaborativo da aplicao, onde o objetivo principal era avaliar o tempo de cada
requisio, e com isso obter um nvel de qualidade da colaborao na aplicao.
Uma aplicao colaborativa deve possuir recursos que possibilitam o trabalho entre
vrios usurios sem aumentar o tempo gasto em cada atividade em relao ao que levaria caso
tivesse sido realizado individualmente. Sendo assim, necessrio avaliar o tempo utilizado
em cada recurso colaborativo, e com isso obter um ponto de referncia na utilizao de tais
recursos (GOLDMAN et al, 2011).
Na anlise da aplicao, a qualidade da colaborao foi avaliada a partir da medio
do tempo de resposta para cada requisio realizada por recursos colaborativos, tais como a
escrita em tempo real e a troca de mensagens atravs do chat. Com isso foi possvel afirmar a
possibilidade de haver sinergia em um livro escrito em tempo real e colaborado atravs de
troca de mensagens.
A medio desses dados foram obtidos utilizando as ferramentas de desenvolvimento
disponveis no navegador Google Chrome, assim como tambm presentes no Firefox, para
isso, foram analisadas as requisies dos recursos colaborativos acompanhando os canais
Websockets para obter o tempo gasto em cada um. Sendo assim, esses dados foram
adequados a um conjunto de critrios para avaliao do tempo em cada situao.

O processo para obter tais dados ocorre conforme os passos apresentados a seguir:
a) Abrir tela desejada;
b) Clicar com o boto direito no componente desejado;
c) Selecionar a opo "Inspecionar elemento";
d) Clicar na aba "Network";
e) Selecionar o filtro "WS";
f) Escolher um dos canais listados;
g) Selecionar a aba "Frames";
h) Observar que a cada alterao no contedo, o canal envia uma requisio de
persistncia (marcado em verde) e em seguida uma requisio dos mesmos
dados que foram persistidos;

77

i) Utilizar os dados da coluna Time para aplicar os critrios de avaliao;

Os critrios a seguir foram utilizados para classificar o tempo gasto em cada


requisio referente a um tipo de anlise conforme especificados a seguir:

1. Complexidade: So analisados os recursos externos de entrada e sada do


sistema para obter a carga dos componentes individualmente.

2. Confiabilidade: analisada atravs do nmero de problemas resolvidos pelo


prprio sistema e o nmero total de problemas especficos.

3. Eficincia: So analisadas as caractersticas que definem a capacidade da


aplicao em relao a performance.

4. Funcionalidade: analisado as funcionalidades para definir a capacidade de


recuperao, incluso e alterao das informaes.
Na escrita de livros e troca de mensagens, no deve haver um tempo de delay
muito alto por se tratar de requisies em tempo real, portanto, absolutamente crtico se este
no atualizar as informaes que foram alteradas em menos de 1000 milsimos de segundo. O
motivo de ter definido 1000 milsimos de segundo como atraso porque, quando um dado
transmitido com um delay maior que esse tempo, ele acaba sendo cortado e transmitido em
pacotes por segundo, classificando como atraso de resposta, e para ser considerado tempo real.
Os critrios da Escrita de Livro foram avaliados da seguinte maneira:

Complexidade: Foram somados o tempo de escrita e o tempo para o contedo ser


visualizao pelo segundo usurio;

Confiabilidade: Para simular uma recuperao de erro, 16384 caracteres foram


apagados e colados novamente mltiplas vezes at tentar exceder as requisies
suportadas;

Eficincia: Foi testado o tempo que leva para carregar todo o contedo de um
captulo com 16384 caracteres;

78

Funcionalidade: Foi testado tempo que leva para digitar, apagar e ser visualizado
uma letra pelo segundo usurio;

Os critrios da Troca de mensagens no Chat foram avaliados da seguinte maneira:

Complexidade: Foram somados o tempo de envio e o de recebimento pelo segundo


usurio;

Confiabilidade: Para simular uma recuperao de erro, uma mensagem de 16384


caracteres foi enviada, pela anlise do WebSocket, a mensagem foi quebrada em
vrios pacotes para que no houvesse um problema maior;

Eficincia: Foi testado o tempo que leva para carregar 10 mensagens recebidas;

Funcionalidade: Foi testado tempo que leva para uma mensagem ser recebida pelo
segundo usurio;

Para avaliao da aplicao, utilizando os critrios e metodologia citados, a aplicao


foi testada em uma simulao no prprio navegador em modo de desenvolvimento, e os
resultados podem ser observados na Tabela 1.

Tabela 1. Resultado da avaliao da aplicao


Recurso
Escrita de

Complexidade Confiabilidade

Eficincia

Funcionalidade

1012ms

742ms

659ms

188ms

1149ms

3076ms

1015ms

235ms

Livro
Troca de
Mensagens
no Chat

1) Quais foram os pontos negativos da soluo e problema no desenvolvimento.

Houveram pontos negativos referente a como a interao teve que ser implementada,
j que a princpio a ideia era uma sesso de comentrios, assim como encontrada em outras
aplicaes sociais, mas devido complexidade que h em tal implementao utilizando o
servio Firebase, foi decidido que seria melhor implementarmos um chat com mensagens
armazenadas por captulo, o qual possui mensagens que so armazenadas por captulo.

79

Outro ponto negativo, foi a interface da aplicao ser web, ou seja, necessita que o
usurio esteja sempre conectado internet para que consiga visualiza-la. Porm, foi
identificado que a partir da primeira vez em que a aplicao aberta, tudo permanece
disponvel off-line, e o contedo escrito atualizado quando o dispositivo se conecta
novamente rede.
Por fim, o nico problema encontrado no desenvolvimento, foi a implementao
utilizando os mtodos de sincronizao em tempo real que o Firebase oferece, pois alguns
mtodos tiveram que ser adaptados ao AngularJS que foi adaptado pelo Ionic framework.

2) Quais foram as lies aprendidas.

Uma das principais lies foi o reconhecimento da capacidade de superao, de ir


alm dos limites que jamais teria conhecido se no tivesse passado por tal desafio, j que em
muitos momentos foi necessrio exceder essa capacidade, passando noites em claro para
incorporar pensamentos e pesquisas em texto acadmico.
Alm do excelente ganho que conhecer seus limites, com as pesquisas e o
desenvolvimento da aplicao foi possvel obter um nvel de aprendizagem que vai muito
alm das salas de aula, aliado a necessidade de ter um conhecimento tcnico prvio, que j
havia sido transmitido pelos professores durante a graduao.
Profissionalmente, estar em meio a pesquisas de novas tecnologias foi uma grande
oportunidade para encontrar um caminho no mercado de tecnologia a ser seguido, sendo este
o desenvolvimento para dispositivos mveis, e com isso foram encontradas formas de se
destacar ao escolher ferramentas que esto em alta neste meio.

4.3 Consideraes Finais

Como resultado, foi obtido uma aplicao multiplataforma, sendo ela disponibilizada
para as plataformas Android e iOS, e que contemplou os objetivos do projeto. E, a partir das
imagens, foram apresentados todos os recursos disponveis na aplicao, demonstrando o e
indicando como funcionam.
Para avaliar se o nvel de colaborao poder ser eficiente em relao ao tempo

80

necessrio para executar funcionalidades colaborativas como a escrita de livros em tempo real
e a troca de mensagens via chat, foi realizado uma anlise das requisies utilizando critrios
que buscam apontar se o nvel de qualidade satisfatrio.
Dentre os pontos negativos da soluo, esto a forma como foi implementada a
interao na aplicao e a aplicao possui a camada de visualizao web, ambas foram
contornadas a um ponto que no houvesse tanta influncia no resultado final da aplicao.
Alm disso, houve um problema que impactou na forma que foi desenvolvido a
funcionalidade de escrita, onde a sincronizao e visualizao precisou ser adaptado ao
AngularJS oferecido pelo Ionic Framework.
Por fim, este captulo apresentou todos os resultados que foram obtidos com o
desenvolvimento da aplicao, os quais passaram por uma anlise onde foi obtido o tempo das
requisies dentro de critrios que buscam avaliar a qualidade da aplicao. Ento, foram
apontados os pontos negativos da soluo obtida e o problema ocorrido durante o
desenvolvimento.

81

CONCLUSO

Para esse projeto, o desenvolvimento foi composto por uma aplicao mvel
multiplataforma, atendendo as plataformas Android e iOS, que faz integrao com a base de
dados atravs de uma API Rest oferecido pelo servio Firebase.
Com este estudo, foi possvel ter conhecimento sobre as novas tecnologias que
existem para desenvolvimento mvel, e como o mercado tecnolgico foi influenciado
seguindo uma tendncia atravs do aumento de dispositivos mveis.
Em relao implementao da aplicao multiplataforma utilizando o framework
Ionic, foi identificado no aprendizado da linguagem Javascript que essa possui diversas
variaes para usos especficos tais como o AngularJS, que foi utilizado tanto na visualizao
quando nas regras de negcio, existe sempre um universo de informaes que so
concentradas em fruns internacionais e vdeo aulas em ingls j que o material escasso em
portugus.
Tambm foi possvel notar que existem aplicaes mveis no mercado que tambm
so voltadas para a escrita de contedo online, assim como livros e artigos, tornando assim a
existncia de um novo nicho dentro do mercado de aplicaes moveis.
J em relao ao servio de persistncia em tempo real, o Firebase, foi possvel notar
que outras empresas e desenvolvedores tambm esto aderindo a este tipo de servio, j que a
pouco tempo a Google fechou parceria com este servio, para fim de promover e demonstrar
novas utilizaes do mesmo.
Por fim, houveram momentos em que foi necessrio discutir maneiras de resolver
possveis problemas de indisponibilidade de internet, j que a aplicao possui a camada de
visualizao web, os problemas precisaram ser contornados atravs de persistncia local, at
que a aplicao volte a se conectar e ento sincronize as informaes.
Com tudo o que foi descrito, conclui-se que possvel criar uma aplicao
multiplataforma de escrita colaborativa de livros para que novos escritores tenham uma
alternativa que ir alavancar sua carreira como escritor de forma que ele possa adquirir
experincias interagindo com outros usurios ao disponibilizar seu contedo publicamente e
conversar atravs de um chat.

82

5.1 Trabalhos Futuros

A aplicao desenvolvida possibilita que uma pessoa seja um escritor mesmo sem
uma editora e consiga um feedback imediato, alm de possibilitar a interao e colaborao
entre os escritores e leitores, mas este trabalho poder evoluir recebendo novas
funcionalidades deixando o sistema mais completo.
Das novas funcionalidades, foi possvel identificar:

Permisses de acesso: A aplicao foi desenvolvida para que um usurio possa


escrever e ler livros de outros usurios. O prximo passo implementar
permisses que iro restringir que um usurio no altere ou visualize controles
de alterao que o proprietrio possui.

Integrao com redes sociais: Seguindo uma tendncia do mercado, a integrao


da aplicao com redes sociais um passo adiante na popularizao do contedo
desenvolvido pelos usurios, tornando possvel compartilhar livros, cadastrar
atravs de um perfil da rede social na aplicao, entre outros.

Melhorias na interface: Adicionar uma introduo, que ter funo de instruir os


usurios na primeira utilizao, alm de realizar estudos de personas, para
identificar novas maneiras de tornar a aplicao simples e fcil de ser utilizada.

Mensagens de Push: Adicionar recursos que iro notificar os usurios que


seguiram um livro, quando o mesmo estiver sendo escrito, para que assim possa
se juntar ao grupo de discusses e colaborar.

83

REFERNCIAS BIBLIOGRAFICAS
ANGULARJS.
Documentao
do
AngularJS
API.
<https://docs.angularjs.org/api>. Acessado em 06 de Junho de 2015.

APPCELERATOR. Documentao do Appcelerator Platform.


<https://docs.appcelerator.com/>. Acessado em 06 de Junho de 2015.

Disponvel

Disponvel

em:

em:

BRAMBILLA, M et al; BPMN and Design Patterns for Engineering Social BPM Solutions.
In: Daniel, F; Barkoui, K; Dustdar, S. Business Process Management Workshops: BPM 2011
International Workshops, 2011. p 270 - 281.

CORDOVA.
Documentao
do
Cordova.
Disponvel
em:
<https://cordova.apache.org/docs/en/latest/guide/overview/>. Acessado em 06 de Junho de
2015.

ETHERPAD.
Documentao
da
Etherpad
API.
<http://etherpad.org/doc/v1.5.7/>. Acessado em 06 de Junho de 2015.

Disponvel

em:

FIREBASE. Documentao do Servio Firebase para Persistncia de dados e Sincronizao


em Teampo Real. Disponvel em: <https://www.firebase.com/docs/>. Acessado em 06 de
Junho de 2015.

FUKS, H et al; Teorias e Modelos de Colaborao. In: PIMENTEL, M; FUKS, H. (Org.).


Sistemas Colaborativos. Rio de Janeiro: Campus, 2012. p 24- 26.

GOOGLE DOCS. Disponvel em:<https://www.google.com/docs/about/>. Acessado em 25


de maio de 2015.

GOOGLE DRIVE. Documentao da Google Drive Realtime API. Disponvel em:


<https://developers.google.com/google-apps/realtime/>. Acessado em 06 de Junho de 2015.

84

HARB,
E.
et
al.
Responsive
Web
Design.
N.
2011,
http://courses.iicm.tugraz.at/iaweb/surveys/ws2011/g3-survey-resp-web-design.pdf. Acessado
em: 12 de setembro de 2015.

HARTMANN, S. The Naked Writer. Disponvel em: http://silviahartmann.com/live.


Traduo de Diogo Henrique L. G. Da Silva. Acessado em: 28 de fev de 2015.

HILTON, W; LOFARO, et. al. A lightweight, cross-platform, multiuser robot visualization


using the cloud. IEEE, Chicago, p. 1-6, 2014. Traduo de Diogo Henrique L. G. Da Silva.

IONIC.
Documentao
do
Ionic
Framework.
Disponvel
<http://ionicframework.com/docs/>. Acessado em 06 de Junho de 2015.

em:

IVAN, I; CIUREA, C. Quality Characteristics of Collaborative Systems. IEEE, Bucharest, p.


1-5, 2009.

JARAMILO, D.; NYGUYEN, V.; NEWHOOK, R. (2014) Real-time experience techniques


for collaborative tools on mobile. SOUTHEASTCON 2014, p.1-6, Lexington, Kentucky.
Traduo de Diogo Henrique L. G. Da Silva.

KIEFER, C. Para Ser Escritor. So Paulo: Leya, 2010. 115 p.

LIMA, R et al; Arquiteturas Distribuidas para Sistemas Colaborativos. In: PIMENTEL, M;


FUKS, H. (Org.). Sistemas Colaborativos. Rio de Janeiro: Campus, 2012. p 339.

MILICEV, D; Chapter 15: Collaborations and Interactions. In: Milicev, D. Model-Driven


Development with Executable UML: Wrox, 2009. p 519.

MOHOROVICIC, S. Implementing Responsive Web Design for Enhanced Web Presence.


MIPRO 2013, Opatija, Croatia, p. 1-5, 2013.

85

NICOLACI-DA-COSTA, A et al; Sistemas Colaborativos Para uma Nova Sociedade e Um


Novo Ser Humano. In: PIMENTEL, M; FUKS, H. (Org.). Sistemas Colaborativos. Rio de
Janeiro: Campus, 2012. p 3 - 15.

PENFLIP. Nossa Histria. Disponvel em:<https://www.penflip.com>. Acessado em 25 de


maio de 2015.

PHONEGAP.
Documentao
do
Adobe
Phonegap.
<http://docs.phonegap.com/>. Acessado em 12 de setembro de 2015.

Disponvel

em:

SANTAROSA, A; CRISTINA, A; Ontologia de Colaborao. In: PIMENTEL, M; FUKS, H.


(Org.). Sistemas Colaborativos. Rio de Janeiro: Campus, 2012. p 36 - 45.

WATTPAD. Quem Somos. Disponvel em:<https://www.wattpad.com>. Acessado em 25 de


maio de 2015.

WAZE. Sobre Ns. Disponvel em: <https://www.waze.com>. Acessado em 25 de maio de


2015.