Professional Documents
Culture Documents
MARLIA
2015
Orientador
Prof: Ms. Ricardo Jos Sabatine
MARLIA
2015
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.
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
LISTA DE TABELAS
API
APP
Application
BPM
CSS3
CLI
DOCX
GPS
IOS
HTML5
MODELO 3C
MOBILE FIRST
MVC
REST
SDK
TI
Tecnologia da Informao
WEB
SUMRIO
INTRODUO .................................................................................................................................... 15
1
1.1.1
Linear ............................................................................................................................ 19
1.1.2
rvore ........................................................................................................................... 20
1.1.3
Network ......................................................................................................................... 21
1.2
1.2.1
1.3
1.3.1
1.4
1.4.1
1.4.2
Penflip ........................................................................................................................... 26
1.4.3
Wattpad ......................................................................................................................... 26
1.4.4
Waze .............................................................................................................................. 27
1.5
2
Modelo 3C ..................................................................................................................... 22
TECNOLOGIA ............................................................................................................................. 28
2.1
2.1.1
2.1.2
Ferramentas ................................................................................................................... 32
2.2
2.2.1
2.2.2
2.3
Funcionalidades..................................................................................................................... 43
3.2
Arquitetura ............................................................................................................................ 44
3.2.1
3.2.2
Tcnicas de implementao........................................................................................... 47
3.3
3.4
Ferramentas ........................................................................................................................... 50
3.4.1
3.4.2
Gesto de Livros............................................................................................................ 55
3.4.3
3.5
4
RESULTADOS ............................................................................................................................. 64
4.1
4.1.1
4.1.2
4.1.3
4.1.4
4.1.5
4.1.6
4.1.7
4.1.8
4.1.9
4.1.10
Abrir Chat...................................................................................................................... 73
4.1.11
Pesquisar Livro.............................................................................................................. 74
4.1.12
Seguir Livro................................................................................................................... 75
4.2
4.3
CONCLUSO .............................................................................................................................. 81
5.1
Trabalhos Futuros.................................................................................................................. 82
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
Objetivos Gerais
17
Objetivos Especficos
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;
Organizao do Trabalho
18
SISTEMAS COLABORATIVOS
19
1.1.1 Linear
20
1.1.2 rvore
21
1.1.3 Network
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.
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
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:
23
24
25
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.
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
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.
28
TECNOLOGIA
29
30
2.1.1.1 Comunicao
2.1.1.2 Coordenao
31
2.1.1.3 Cooperao
32
2.1.2 Ferramentas
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.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:
34
35
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.
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:
37
38
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
39
Vantagens:
Documentao da API;
Comunidade Online;
Desvantagens:
Tempo de compilao;
Tamanho da aplicao;
Velocidade da aplicao;
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:
41
42
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
os
objetivos
que
foram
apresentados,
sero
especificadas
as
Cadastrar uma nova conta: O novo usurio pode realizar um novo cadastro
atravs da aplicao ao preencher os dados: Nome, E-mail e Senha;
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;
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.
3.2 Arquitetura
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
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).
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
Exibir
mensagens
do Chat
Abrir Chat
No
Criar Captulo
Selecionar
Captulo
Lista de livros
Escritor
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
47
48
Figura 12. Dispositivos entregues ao redor do mundo por seguimento, 2012 2017
49
proporcionar uma possibilidade de ampliao futura sem perder qualidade ou fazer limitaes
como aconteceria em outras tcnicas.
50
Leitor
Escritor
COOPERAO DENTRO
DO CHAT
LIVRO
feedback
TROCA DE MENSAGENS
ORGANIZAO E
ANALISE
Escritor e leitores
3.4 Ferramentas
51
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
Inserir dados
Consultar nome de
usurio
Verificar se nome de
usurio existe
Nome de usurio
existe?
Sim
No
Prosseguir cadastro
Persistir dados
Exibir mensagem de
confirmao de
cadastro
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
Inserir dados
Consultar dados
O nome do usurio
existe?
No
No
Verificar se a senha
do usurio confere
A senha do usurio
confere com a
cadasrada?
No
Sim
55
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.
57
Consultar dados
Persistir dados
Deseja escolher um
livro?
No
Sim
Consultar dados do
livro escolhido
Sim
Persistir dados
localmente
Editar detalhes
Alterar dados
No
Abrir captulo
O captulo que deseja
abrir j existia?
No
Criar captulo
Sim
Abrir captulo
Consultar dados
Escrever/ler
contedo do captulo
em tempo real
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.
Pesquisar Livro
Consultar dados
Encontrou o livro?
No
Sim
Selecionar livro
Permanecer na
mesma pagina
Sim
Adicionar livro em
outros
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
Escolher captulo
<<FIREBASE REALTIME SERVER>>
Consultar dados
Abrir Chat
Persistir dados
Consultar dados
Escrever/ler
mensagens em
tempo real
61
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()
buscarCapituloId()
62
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.
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.
65
66
67
68
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.
69
70
71
72
73
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.
74
75
76
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
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;
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;
Complexidade Confiabilidade
Eficincia
Funcionalidade
1012ms
742ms
659ms
188ms
1149ms
3076ms
1015ms
235ms
Livro
Troca de
Mensagens
no Chat
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.
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
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:
83
REFERNCIAS BIBLIOGRAFICAS
ANGULARJS.
Documentao
do
AngularJS
API.
<https://docs.angularjs.org/api>. 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:
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.
IONIC.
Documentao
do
Ionic
Framework.
Disponvel
<http://ionicframework.com/docs/>. Acessado em 06 de Junho de 2015.
em:
85
PHONEGAP.
Documentao
do
Adobe
Phonegap.
<http://docs.phonegap.com/>. Acessado em 12 de setembro de 2015.
Disponvel
em: