81
UNIVERSIDADE DO VALE DO ITAJAÍ CENTRO DE CIÊNCIAS TECNOLÓGICAS DA TERRA E DO MAR CURSO DE CIÊNCIA DA COMPUTAÇÃO REDE SOCIAL BASEADA EM LOCALIZAÇÃO GEOGRÁFICA PARA SISTEMAS ANDROID Área de Sistemas de Informação por Thiago Luiz Prux Benjamin Grando Moreira, M. Eng. Orientador Itajaí (SC), julho de 2013

Área de Sistemas de Informação por Thiago Luiz Prux ...siaibib01.univali.br/pdf/Thiago Luiz Prux.pdf · Ranking das redes sociais em maio de 2013 ... 2.1 MÍDIAS SOCIAIS ... O

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Área de Sistemas de Informação por Thiago Luiz Prux ...siaibib01.univali.br/pdf/Thiago Luiz Prux.pdf · Ranking das redes sociais em maio de 2013 ... 2.1 MÍDIAS SOCIAIS ... O

UNIVERSIDADE DO VALE DO ITAJAÍ

CENTRO DE CIÊNCIAS TECNOLÓGICAS DA TERRA E DO MAR

CURSO DE CIÊNCIA DA COMPUTAÇÃO

REDE SOCIAL BASEADA EM LOCALIZAÇÃO GEOGRÁFICA PARA

SISTEMAS ANDROID

Área de Sistemas de Informação

por

Thiago Luiz Prux

Benjamin Grando Moreira, M. Eng.

Orientador

Itajaí (SC), julho de 2013

Page 2: Área de Sistemas de Informação por Thiago Luiz Prux ...siaibib01.univali.br/pdf/Thiago Luiz Prux.pdf · Ranking das redes sociais em maio de 2013 ... 2.1 MÍDIAS SOCIAIS ... O

UNIVERSIDADE DO VALE DO ITAJAÍ

CENTRO DE CIÊNCIAS TECNOLÓGICAS DA TERRA E DO MAR

CURSO DE CIÊNCIA DA COMPUTAÇÃO

REDE SOCIAL BASEADA EM LOCALIZAÇÃO GEOGRÁFICA PARA

SISTEMAS ANDROID

Área de Sistemas de Informação

por

Thiago Luiz Prux

Relatório apresentado à Banca Examinadora do

Trabalho Técnico-científico de Conclusão do

Curso de Ciência da Computação para análise e

aprovação.

Orientador: Benjamin Grando Moreira, M. Eng.

Itajaí (SC), julho de 2013

Page 3: Área de Sistemas de Informação por Thiago Luiz Prux ...siaibib01.univali.br/pdf/Thiago Luiz Prux.pdf · Ranking das redes sociais em maio de 2013 ... 2.1 MÍDIAS SOCIAIS ... O

RESUMO

PRUX, Thiago Luiz. Rede social baseada em localização geográfica para sistemas Android.

Itajaí, 2013. 81 f. Trabalho Técnico-científico de Conclusão de Curso (Graduação em Ciência da

Computação) – Centro de Ciências Tecnológicas da Terra e do Mar, Universidade do Vale do Itajaí,

Itajaí, 2013.

O foco deste projeto é o desenvolvimento de um sistema que ajude o usuário a encontrar outras

pessoas que tenham interesses em comum, e que possibilite visualizar os locais em que seus amigos

mais visitaram. São utilizados funcionalidades para facilitar o encontro dos usuários, como o mapa

de calor, provendo a observação diretamente no mapa dos locais que o usuário mais visita ou histórico

que permite visualizar os locais que o usuário esteve em determinado dia. Para este trabalho foi

utilizado a linguagem de programação Java, tanto para a aplicação cliente, quanto para o

desenvolvimento da aplicação servidor, que utiliza o framework JAX-RS (Java API for RESTful Web

Services) por ser um framework que possibilita a utilização da arquitetura REST (Representational

State Transfer - Transferência de Estado Representacional), que é o protocolo padrão de comunicação

do servidor web. A integração do Facebook com o sistema permite a utilização de usuários já

cadastradas na rede social, permitindo a recuperação de informações já disponibilizadas, o que é útil

para traçar perfis e interligar amigos. Foi escolhido o uso do Sistema Operacional Android por ele ser

de código aberto. O projeto viabiliza uma maior socialização entre seus utilizadores, dando-lhes a

oportunidade de conhecer novas pessoas que compartilhem de suas afinidades.

Palavras-chave: Redes Sociais. Geolocalização. Sistemas Móveis.

Page 4: Área de Sistemas de Informação por Thiago Luiz Prux ...siaibib01.univali.br/pdf/Thiago Luiz Prux.pdf · Ranking das redes sociais em maio de 2013 ... 2.1 MÍDIAS SOCIAIS ... O

ABSTRACT

This project goal is the development of a system that helps the user to find others persons with

common interests, allowing the visualization of the places their friend´s most visited places. The

system utilizes functionalities to help the encounters of the users, like the heat map, giving the view

of the places the users has been directly on the map, or the history, granting the chance to view the

places the user has visited on any day. This project utilized the Java programming language, for both

the client application and the server application, utilizing the JAX-RS framework because it allows

the utilization of the RES architecture, that is the web server communication standard. The

integration of the system with the Facebook allows the usage of the users already registered on the

social network, allowing the recovery of information already given, which is useful to trace profiles

and interconnect friends. The operation system Android was chosen because he is open source. The

project helps a better socialization between its users, granting them the opportunity to meet new

persons who share common interests.

Keywords: Social Networks. Geolocation. Mobile Systems

Page 5: Área de Sistemas de Informação por Thiago Luiz Prux ...siaibib01.univali.br/pdf/Thiago Luiz Prux.pdf · Ranking das redes sociais em maio de 2013 ... 2.1 MÍDIAS SOCIAIS ... O

LISTA DE FIGURAS

Figura 1. Número de usuários do Facebook ativos por mês. ............................................................. 11

Figura 2. Número de usuários móveis ativos no Facebook por mês. ................................................. 12 Figura 3. Utilização de Sistemas Operacionais Móveis ..................................................................... 13 Figura 4. Rede Social vs. Mídia Social. ............................................................................................. 18 Figura 5. Localização por satélites ..................................................................................................... 23 Figura 6. Mapa de Calor ..................................................................................................................... 36

Figura 7. Diagrama do Projeto ........................................................................................................... 37 Figura 8. Casos de Uso da Aplicação ................................................................................................. 42 Figura 9. Tela de Login ...................................................................................................................... 43 Figura 10. Menu Principal e Tela de Mapa ........................................................................................ 44

Figura 11. Tela Perfil/Preferências ..................................................................................................... 45 Figura 12. Tela de Amigos ................................................................................................................. 46 Figura 13. Tela de Histórico ............................................................................................................... 47

Figura 14. Configurações Geral/Facebook ......................................................................................... 48 Figura 15. Configurações de Privacidade .......................................................................................... 49 Figura 16. Casos de uso do WebService ............................................................................................. 52 Figura 17. Esquema do banco de dados ............................................................................................. 53

Figura 18. Resultado sobre quais recursos impactado no desempenho dos testes. ............................ 54 Figura 19. Resultados sobre a navegação do sistema. ........................................................................ 55

Figura 20. Resultados das dúvidas de utilização do sistema. ............................................................. 55 Figura 21. Primeira página do questionário de testes. ........................................................................ 63 Figura 22. Segunda página do questionário de testes. ........................................................................ 64

Figura 23. Terceira página do questionário de testes. ........................................................................ 65

Figura 24. Última página do questionário de testes. .......................................................................... 66 Figura 25. Perguntas um a quatro. ...................................................................................................... 72 Figura 26. Perguntas cinco e seis. ...................................................................................................... 73

Figura 27. Perguntas sete e oito ......................................................................................................... 73 Figura 28. Perguntas nove e dez......................................................................................................... 74 Figura 29. Perguntas onze a treze. ...................................................................................................... 75

Figura 30. Perguntas quatorze a dezesseis. ........................................................................................ 76 Figura 31. Perguntas dezessete a vinte. .............................................................................................. 77

Figura 32. Infográfico 1 de versões do Android ................................................................................ 78 Figura 33. Infográfico 2 de versões do Android ................................................................................ 79 Figura 34. Infográfico 3 de versões do Android ................................................................................ 80

Page 6: Área de Sistemas de Informação por Thiago Luiz Prux ...siaibib01.univali.br/pdf/Thiago Luiz Prux.pdf · Ranking das redes sociais em maio de 2013 ... 2.1 MÍDIAS SOCIAIS ... O

LISTA DE TABELAS

Tabela 1. Ranking das redes sociais em maio de 2013 ...................................................................... 19

Tabela 2. Comparação de Recursos de Redes com Geolocalização .................................................. 22 Tabela 3. Histórico de Versões .......................................................................................................... 25 Tabela 4. Dicionário de dados da tabela usuarios .............................................................................. 67 Tabela 5. Dicionário de dados da tabela historicos ............................................................................ 67 Tabela 6. Dicionário de dados da tabela amizades ............................................................................. 68

Tabela 7. Dicionário de dados da tabela interesses_fb_has_facebook ............................................... 68 Tabela 8. Dicionário de dados da tabela interesses_fb ....................................................................... 69 Tabela 9. Dicionário de dados da tabela amizades_fb ....................................................................... 69 Tabela 10. Dicionário de dados da tabela locais ................................................................................ 69

Tabela 11. Dicionário de dados da tabela preferencias ...................................................................... 70 Tabela 12. Views do sistema .............................................................................................................. 70

Page 7: Área de Sistemas de Informação por Thiago Luiz Prux ...siaibib01.univali.br/pdf/Thiago Luiz Prux.pdf · Ranking das redes sociais em maio de 2013 ... 2.1 MÍDIAS SOCIAIS ... O

LISTA DE QUADROS

Quadro 1. Retorno da API Facebook sem autenticação ..................................................................... 27 Quadro 2. Retorno da API Facebook com autenticação .................................................................... 27 Quadro 3. Endereço para requisição geocoding ................................................................................. 29 Quadro 4. Exemplo de Geocoding ..................................................................................................... 30

Quadro 5. Parâmetros obrigatórios para o Places API ....................................................................... 31 Quadro 6. Requisição Places API ...................................................................................................... 31 Quadro 7. Exemplo Places API .......................................................................................................... 32 Quadro 8. Licenciamento ................................................................................................................... 33

Quadro 9. Exemplo Gson ................................................................................................................... 35

Page 8: Área de Sistemas de Informação por Thiago Luiz Prux ...siaibib01.univali.br/pdf/Thiago Luiz Prux.pdf · Ranking das redes sociais em maio de 2013 ... 2.1 MÍDIAS SOCIAIS ... O

LISTA DE ABREVIATURAS

ADB Android Debug Bridge

A-GPS Assisted Global Positioning System

API Application Programming Interface

CDMA Code Division Multiple Access

EDGE Enhanced Data rates for GSM Evolution

FB Facebook

FBML Facebook Markup Language

FK Foreign Key

FQL Facebook Query Language

GPS Global Positioning System

GSM Global System for Mobile Communications

HTTP Hypertext Transfer Protocol

IDE Integrated Development Environment

IP Internet Protocol

JAX-RS Java API for RESTful Web Services

JSON JavaScript Object Notation

MVC Model-view-controller

PK Primary Key

PPS Precise Positioning Service

REST Representational State Transfer

RFID Radio-frequency identification

RI Recuperação da Informação

SDK Software Development Kit

SGDB Sistema de Gerenciamento de Banco de Dados

SO Sistema Operacional

SPS Standard Positioning Service

TTC Trabalho Técnico-científico de Conclusão de Curso

UNIVALI Universidade do Vale do Itajaí

URI Uniform Resource Identifier

URL Uniform Resource Locator

XML Extensible Markup Language

Page 9: Área de Sistemas de Informação por Thiago Luiz Prux ...siaibib01.univali.br/pdf/Thiago Luiz Prux.pdf · Ranking das redes sociais em maio de 2013 ... 2.1 MÍDIAS SOCIAIS ... O

SUMÁRIO

1 INTRODUÇÃO ..................................................................................................... 10

1.1 PROBLEMATIZAÇÃO ................................................................................... 14

1.1.1 Formulação do Problema ......................................................................... 14

1.1.2 Solução Proposta ....................................................................................... 14

1.2 OBJETIVOS ...................................................................................................... 15

1.2.1 Objetivo Geral ........................................................................................... 15

1.2.2 Objetivos Específicos ................................................................................ 15

1.3 METODOLOGIA ............................................................................................. 15

1.4 ESTRUTURA DO TRABALHO ..................................................................... 17

2 FUNDAMENTAÇÃO TEÓRICA ....................................................................... 18

2.1 MÍDIAS SOCIAIS ............................................................................................ 18

2.1.1 Redes Sociais .............................................................................................. 19

2.1.2 Facebook .................................................................................................... 22

2.2 GEOLOCALIZAÇÃO ...................................................................................... 22

2.3 ANDROID .......................................................................................................... 24

2.3.1 Android API .............................................................................................. 26

2.4 FACEBOOK API .............................................................................................. 26

2.5 GOOGLE MAPS API ....................................................................................... 29

2.5.1 Geocoding................................................................................................... 29

2.5.1.1 Utilização .................................................................................................... 29

2.5.1.2 Limites Geocoding ..................................................................................... 30

2.6 PLACES API ..................................................................................................... 30

2.6.1 Utilização .................................................................................................... 31

2.6.2 Limites Places ............................................................................................ 32

2.6.3 Licenciamento ............................................................................................ 32

2.7 FRAMEWORKS ............................................................................................... 33

2.7.1 JAX-RS ....................................................................................................... 34

2.7.2 Gson ............................................................................................................ 34

2.8 MAPA DE CALOR ........................................................................................... 35

3 DESENVOLVIMENTO ....................................................................................... 37

3.1 FERRAMENTAS NECESSÁRIAS ................................................................. 38

3.2 APLICAÇÃO CLIENTE.................................................................................. 39

3.2.1 Requisitos não Funcionais ........................................................................ 39

3.2.2 Requisitos Funcionais ............................................................................... 40

3.2.3 Regras de Negócio ..................................................................................... 41

3.2.4 Casos de Uso .............................................................................................. 41

3.2.5 Telas da Aplicação Cliente ....................................................................... 43

3.3 APLICAÇÃO SERVIDOR .............................................................................. 50

3.3.1 Padrão de Comunicação ........................................................................... 50

Page 10: Área de Sistemas de Informação por Thiago Luiz Prux ...siaibib01.univali.br/pdf/Thiago Luiz Prux.pdf · Ranking das redes sociais em maio de 2013 ... 2.1 MÍDIAS SOCIAIS ... O

3.3.2 Requisitos não Funcionais ........................................................................ 51

3.3.3 Requisitos Funcionais ............................................................................... 51

3.3.4 Regras de Negócio ..................................................................................... 51

3.3.5 Casos de Uso .............................................................................................. 52

3.3.6 Banco de Dados ......................................................................................... 53

3.4 TESTES .............................................................................................................. 54

3.4.1 Análise dos Testes ...................................................................................... 54

4 CONCLUSÕES ..................................................................................................... 56

REFERÊNCIAS BIBLIOGRÁFICAS ................................................... 58

GLOSSÁRIO ............................................................................................. 62

APÊNDICE A. QUESTIONÁRIO DE TESTES ................................. 63

APÊNDICE B. DICIONÁRIO DE DADOS ......................................... 67

APÊNDICE C. RESULTADOS DO QUESTIONÁRIO .................... 72

ANEXO A. INFOGRÁFICO ................................................................................ 78

Page 11: Área de Sistemas de Informação por Thiago Luiz Prux ...siaibib01.univali.br/pdf/Thiago Luiz Prux.pdf · Ranking das redes sociais em maio de 2013 ... 2.1 MÍDIAS SOCIAIS ... O

1 INTRODUÇÃO

Comunidade e Sociedade são conceitos da sociologia bem distintos, Dantas (2010) os

diferencia da seguinte forma:

As comunidades geralmente são grupos formados por familiares, amigos e vizinhos que

possuem um elevado grau de proximidade uns com os outros. Na sociedade esse contato não

existe, prevalecendo os acordos racionais de interesses. Uma diferenciação clara entre

comunidade e sociedade é quando uma pessoa negocia a venda de uma casa, por exemplo,

com um familiar (comunidade) e com um desconhecido (sociedade). Logicamente, as

relações irão ser bastante distintas entre os dois negócios: no negócio com um familiar irá

prevalecer as relações emotivas e de exclusividade; enquanto que na negociação com um

desconhecido, o que irá valer é o uso da razão.

Sendo assim, existem as comunidades formadas na sociedade no contato real e também as

comunidades formadas nas redes sociais, para esta conexão comunidade x rede social o Dicionário

Priberam da Língua Portuguesa (2011), traz a definição de Redes Sociais como o: “conjunto de

relações e intercâmbios entre indivíduos, grupos ou organizações que partilham interesses, que

funcionam na sua maioria através de plataformas da Internet”.

As redes sociais foram desenvolvidas para manter o contato com pessoas, sejam elas

conhecidas fisicamente ou virtualmente. O mercado das redes sociais está crescendo em um ritmo

muito acelerado, especialmente na rede social Facebook, como pode ser visto na Figura 1, que mostra

a quantidade de usuários únicos ativos no mês. Por exemplo, no mês de setembro de 2012, ultrapassou

a quantidade de 1 bilhão os usuários únicos que fizeram login no Facebook.

Page 12: Área de Sistemas de Informação por Thiago Luiz Prux ...siaibib01.univali.br/pdf/Thiago Luiz Prux.pdf · Ranking das redes sociais em maio de 2013 ... 2.1 MÍDIAS SOCIAIS ... O

11

Figura 1. Número de usuários do Facebook ativos por mês.

Fonte: Protalinski (2013)

A participação desta rede social nos aplicativos móveis também está crescendo mais a cada

momento, e em um ritmo ainda mais acelerado, como pode ser visto no gráfico da Figura 2, onde a

curva de crescimento está mais nítida.

Page 13: Área de Sistemas de Informação por Thiago Luiz Prux ...siaibib01.univali.br/pdf/Thiago Luiz Prux.pdf · Ranking das redes sociais em maio de 2013 ... 2.1 MÍDIAS SOCIAIS ... O

12

Figura 2. Número de usuários móveis ativos no Facebook por mês.

Fonte: Protalinski (2013)

Em 2009 havia no Brasil somente uma rede social baseada em geolocalização, chamada “toaí”

(Schapsis, 2009). Nesta época, celulares com geolocalização não possuíam tanta popularidade quanto

os computadores pessoais, e conforme mostra o site da Info Exame (Reuters, 2009), celulares e outros

equipamentos destes portes estarão a cada dia mais presentes no cotidiano das pessoas.

Uma das mais difundidas redes sociais com geolocalização é o Foursquare, possuindo diversas

funcionalidades como compartilhamento de fotos, sistema de recompensas por badges e de pontos,

que são adquiridos à medida que novos lugares são visitados (Foursquare, 2013). Há também outras

redes sociais deste tipo, como Brightkite (2011) e Loopt (2011), que utilizam do recurso de

localização geográfica em sua rede social, porém, com outras funcionalidades distintas.

Uma das vantagens deste tipo de rede social é a capacidade de encontrar pessoas que

frequentem os mesmos locais do usuário, e de utilizar a grande quantidade de informações que esta

Page 14: Área de Sistemas de Informação por Thiago Luiz Prux ...siaibib01.univali.br/pdf/Thiago Luiz Prux.pdf · Ranking das redes sociais em maio de 2013 ... 2.1 MÍDIAS SOCIAIS ... O

13

rede social disponibiliza para a descoberta das preferências e costumes das pessoas, como o local que

elas geralmente frequentam, o horário em que elas o fazem, e a frequência de visitas a um determinado

local. Isto pode aumentar as chances de socialização de quem tem estas informações de outras

pessoas, sendo que um usuário sabe os locais preferidos dos outros usuários, e, com cuidados

necessários, trazer mais segurança ao conhecer novas pessoas, sabendo antecipadamente seus perfis

e que locais estes costumam frequentar.

O trabalho aqui apresentado busca aproveitar as características das redes sociais e

geolocalização, com o uso destas ferramentas para o benefício dos utilizadores do sistema proposto

neste trabalho, agrupadas com as tecnologias hoje disponíveis, como redes móveis e smartphones,

que possibilitam a criação de aplicativo que necessite estar sempre conectado, independente do local

em que esteja, como o que foi desenvolvido neste projeto, para o sistema Android.

O sistema Android, como pode ser visto em Licenses (2013), é um Sistema Operacional open

source, desenvolvido pelo Google para dispositivos móveis, que tem enorme aceitação pelas

empresas de celulares e tablets, cuja participação conforme observado na Figura 3, está crescendo a

cada ano. Florin (2011) mostra que empresas como HTC, LG, Samsung e outras já adotaramo este

Sistema Operacional.

Figura 3. Utilização de Sistemas Operacionais Móveis

Fonte: Adaptado de Smith (2012).

Page 15: Área de Sistemas de Informação por Thiago Luiz Prux ...siaibib01.univali.br/pdf/Thiago Luiz Prux.pdf · Ranking das redes sociais em maio de 2013 ... 2.1 MÍDIAS SOCIAIS ... O

14

Em meados de 2011, o Sistema Operacional Android possuía 46,9% de utilização em

smartphones contra 18,8% do Apple iOS e 11,5% do BlackBerry, como pode ser observado na Figura

3, e um ano depois, em meados de 2012, o Android já possuía 68% dos smartphones, contra 16,9%

do iOS e 4,8 do BlackBerry, uma ocupação excepcional em apenas um ano.

O objetivo deste projeto foi a criação de um protótipo de rede social de fácil utilização, e que

dá a possibilidade de o utilizador poder encontrar fisicamente outras pessoas que compartilhem de

seus interesses, como músicas, filmes ou livros, ou encontrar seus amigos mais facilmente, sabendo

sua posição atual e reutilizando dados cadastrados na rede social Facebook.

1.1 PROBLEMATIZAÇÃO

1.1.1 Formulação do Problema

É notável a atual expansão das redes sociais, que disponibilizam ambientes de

relacionamentos e interação entre as pessoas. Esta interação pode ocorrer tanto entre pessoas de um

mesmo convívio como entre pessoas desconhecidas, possuindo ou não determinadas preferências em

comum. Porém, atualmente, em outras redes sociais, não são existentes as funcionalidades que

permitem a localização automática de pessoas desconhecidas que tenham interesses em comum ou

pessoas previamente adicionadas à lista de amigos, quando se encontrem próximos a uma mesma

região geográfica em um determinado momento. Estas funcionalidades são importantes para facilitar

o encontro físico de pessoas que se conheçam ou de pessoas que possuem um mesmo perfil e que

possam se socializar utilizando-se dos interesses em comum.

1.1.2 Solução Proposta

Este projeto propôs como solução o desenvolvimento de uma rede social, que aliada a duas

tecnologias presentes nos sistemas móveis – Internet e Geolocalização – permite a localização física

de outros usuários que compartilhem os mesmos interesses ou que se encontrem próximos,

geograficamente, possibilitando também ter o conhecimento dos locais de seus amigos, desde que

permitido por estes.

Convém ressaltar que o aplicativo possui uma simplicidade e praticidade em sua interface, e

dispõe de opções para habilitar ou desabilitar a localização do usuário a qualquer momento e quando

de seu interesse, resguardando sua privacidade.

Page 16: Área de Sistemas de Informação por Thiago Luiz Prux ...siaibib01.univali.br/pdf/Thiago Luiz Prux.pdf · Ranking das redes sociais em maio de 2013 ... 2.1 MÍDIAS SOCIAIS ... O

15

O sistema tem o nome de LoreTrack, junção de duas palavras em inglês “Lore” e “Track” que

significam Conhecimento e Rastro, respectivamente.

1.2 OBJETIVOS

1.2.1 Objetivo Geral

Desenvolver um protótipo de uma rede social baseada em geolocalização.

1.2.2 Objetivos Específicos

pesquisar por recursos existentes em outras redes sociais com geolocalização;

entender o funcionamento da API (Application Programming Interface - Interface de

Programação de Aplicações) do Facebook;

definir recursos e requisitos do sistema;

modelar o banco de dados que será utilizado para o armazenamento das informações;

projetar o software no lado cliente;

projetar o WebService para o lado servidor;

desenvolver os softwares cliente e servidor;

documentar o processo de desenvolvimento; e

testar e avaliar o sistema.

1.3 Metodologia

O trabalho teve início com a descrição dos conceitos necessários para o desenvolvimento do

projeto, com o objetivo de agregar os conhecimentos necessários sobre as técnicas e os conceitos

utilizados no projeto do sistema, fornecendo uma fundamentação para a leitura deste documento.

Foram obtidas informações em sites especializados e livros, incluindo também documentos oficiais

dos desenvolvedores das ferramentas.

Para identificar funcionalidades para a proposta desta ferramenta, foi pesquisado por redes

sociais que ofereciam acesso via dispositivos móveis utilizando-se de recursos de geolocalização, isto

proporcionou uma visão geral das funcionalidades existentes nessas redes sociais. Com isso foi

Page 17: Área de Sistemas de Informação por Thiago Luiz Prux ...siaibib01.univali.br/pdf/Thiago Luiz Prux.pdf · Ranking das redes sociais em maio de 2013 ... 2.1 MÍDIAS SOCIAIS ... O

16

possível concluir quais funcionalidades estariam disponíveis neste projeto e que propiciariam a

utilização do sistema que seria desenvolvido.

A solução proposta necessitou a utilização de APIs, Frameworks e ferramentas para o

desenvolvimento do projeto, sendo algumas obrigatórias para o funcionamento do sistema, como por

exemplo com os mapas do Google, que somente se dá por meio de sua API Google Maps.

A utilização de Frameworks teve o objetivo de padronizar processos, facilitando assim o

desenvolvimento e manutenção do sistema. O uso de ferramentas foi avaliado como necessários para

que o processo de desenvolvimento evolua, e dentro delas estão as IDEs, compiladores, Servidores

Web, dentre muitas outras de igual importância.

Durante o projeto do sistema, foram elaborados diagramas, casos de usos, o modelo do banco

de dados, protótipos de telas e também definidos os requisitos funcionais e não funcionais do

aplicativo cliente e da aplicação servidor.

O desenvolvimento do sistema começou com a aplicação servidor, permitindo assim que

durante a criação do aplicativo cliente fosse possível testá-lo em conjunto com o Web Service.

Durante a etapa de desenvolvimento foram efetuados testes e as devidas correções conforme as

necessidades. Após a criação do Web Service e do aplicativo cliente, também foi necessária a

realização de testes para a verificação da integridade e desempenho dos sistemas. Após a conclusão

dos testes o relatório definitivo do sistema para apresentação à banca foi elaborado.

Com a conclusão dos sistemas, foram testados todos os recursos e conduzida a verificação da

usabilidade, corrigindo os erros e melhorando recursos que foram de difícil utilização.

O sistema foi entregue a alguns usuários para que os mesmos o avaliassem, respondendo um

questionário, que pode ser conferido no APÊNDICE A, com vinte perguntas separadas em três

tópicos:

Perguntas para levantar informações do utilizador que testou o sistema;

Perguntas relacionadas à interação entre o usuário e o sistema; e

Perguntas relacionadas aos resultados dos testes efetuados.

Page 18: Área de Sistemas de Informação por Thiago Luiz Prux ...siaibib01.univali.br/pdf/Thiago Luiz Prux.pdf · Ranking das redes sociais em maio de 2013 ... 2.1 MÍDIAS SOCIAIS ... O

17

1.4 Estrutura do trabalho

O trabalho está estruturado em quatro capítulos, sendo o primeiro para a introdução do projeto,

dando uma visão mais ampla do mesmo e apresentando o seu conceito, que conterá a base do projeto

numa visão geral, descrevendo também o problema, o objetivo e como será alcançado este objetivo

para a resolução do problema.

O segundo capítulo apresenta a descrição das tecnologias e dos dados que serão utilizados no

projeto, incluindo os conceitos teóricos de cada tecnologia e sua utilização, assim como as APIs

utilizadas e como é feita a comunicação com elas, as tecnologias e as ferramentas já existentes mas

que não resolvem o problema proposto para este projeto.

Posteriormente está descrito o desenvolvimento do projeto, com informações do sistema,

quais as linguagens utilizadas, como foi desenvolvido o sistema, as telas do sistema já em

funcionamento, e todos os requisitos e casos de uso do sistema, e informações do banco de dados.

No último capítulo estão dispostas as conclusões do projeto, onde estão relatadas as

dificuldades encontradas e as mudanças ocorridas, e também o que este projeto agregou ao autor, e

como ele evoluiu graças à pesquisa e ao desenvolvimento deste sistema.

Page 19: Área de Sistemas de Informação por Thiago Luiz Prux ...siaibib01.univali.br/pdf/Thiago Luiz Prux.pdf · Ranking das redes sociais em maio de 2013 ... 2.1 MÍDIAS SOCIAIS ... O

18

2 FUNDAMENTAÇÃO TEÓRICA

Para o encaminhamento deste projeto foram necessárias pesquisas a fim de se descobrir os

recursos e as limitações das diversas tecnologias que poderão ser aplicadas, e que serão explicadas

nesta fundamentação teórica.

2.1 Mídias Sociais

Existe uma diferença entre redes sociais e mídias sociais, toda rede social é também uma mídia

social, porém nem toda mídia social é uma rede social, como pode ser visto na Figura 4.

Figura 4. Rede Social vs. Mídia Social.

Fonte: Altermann (2010).

Muitas pessoas confundem redes sociais com mídias sociais, como dito por Telles (2010), que

descreve a diferença:

Várias pessoas confundem os termos Redes Sociais com Mídias Sociais, muitas vezes

usando-as de forma indistinta. Elas não significam a mesma coisa.

O primeiro é uma categoria do último. Os sites de relacionamento ou redes sociais são

ambientes que focam reunir pessoas, os chamados membros, que uma vez inscritos, podem

expor seu perfil com dados como fotos pessoas, textos, mensagens e vídeos, além de interagir

com outros membros, criando listas de amigos e comunidades.

Sendo assim: Facebook, Orkut, MySpace, entre outros = Redes Sociais ou como chamava-

se em 2005 sites de relacionamento.

Redes Sociais ou Mídias Sociais são conceitos antigos, já existindo antes mesmo da Internet,

e são usados para representar relações interpessoais e meios de comunicação. Uma Rede Social pode

ser qualquer grupo de pessoas que compartilhem interesses em comum, como uma sala de conversa

Page 20: Área de Sistemas de Informação por Thiago Luiz Prux ...siaibib01.univali.br/pdf/Thiago Luiz Prux.pdf · Ranking das redes sociais em maio de 2013 ... 2.1 MÍDIAS SOCIAIS ... O

19

online, o Facebook, ou até mesmo e-mails, quando mais de duas pessoas estão se comunicando. Já a

Mídia Social é o meio, a estrutura, em que a Rede Social está baseada, por exemplo, um conjunto de

ferramentas ou meios que facilitem a comunicação entre os usuários que formam a Rede Social

(Altermann, 2010).

2.1.1 Redes Sociais

Segundo Debiase (2010), a primeira rede social foi a Classmates.com (uma rede social para

reencontrar amigos de colégio), após foram surgindo outras redes como Facebook, MySpace, Orkut,

dentre outras. No Brasil, segundo Google Trends (2011), a ascensão das redes sociais decorreu

somente em 2004 devido ao Orkut, alcançando seu auge no início do ano de 2008, onde a grande

massa de pessoas utilizavam desta rede social para o compartilhamento de fotos, vídeos, mensagens,

e diversas outras informações.

As pessoas estão cada vez mais se beneficiando das redes sociais no quesito interação,

conectividade, relacionamentos, amizades. O Facebook, que em 2010 teve um crescimento de 258%,

passando o Orkut em quantidade de usuários (Informática Agora, 2011), já é líder na quantidade de

usuários ativos, como será visto em seguida.

Existem atualmente várias redes sociais fortemente estabelecidas, como mostra a

Tabela 1, contendo informações retiradas do site eBizMBA (2013), que pesquisa a

popularidade dos sites a nível mundial, trazendo uma estimativa baseada em scripts e cookies

encontrados nos sites. As colunas “Posição (Entre redes)” e “Posição (Entre sites)” representam a

posição desta rede social comparada às outras redes sociais e a todos os outros sites registrados,

respectivamente. Como pode ser visualizado, o Facebook lidera a lista das redes sociais e é o segundo

site mais visitado no mundo.

Tabela 1. Ranking das redes sociais em maio de 2013

Rede Social Posição (Entre

redes)

Posição (Entre sites) Visitas (Únicas no mês)

Facebook 1º 2º 750.000.000

Twitter 2º 13º 250.000.000

LinkedIn 3º 27º 110,000,000

MySpace 5º 84º 70,500,000

Orkut 10º 350º 17,500,000

Fonte: eBizMBA (2013)

Page 21: Área de Sistemas de Informação por Thiago Luiz Prux ...siaibib01.univali.br/pdf/Thiago Luiz Prux.pdf · Ranking das redes sociais em maio de 2013 ... 2.1 MÍDIAS SOCIAIS ... O

20

Facebook: maior rede social atualmente, é uma ferramenta social que ajuda as pessoas a se

comunicarem com mais facilidade com seus amigos, família e colegas de trabalho

(Facebook, 2013);

Twitter: microblog que serve como uma rede de informações em tempo real permitindo os

usuários terem as últimas informações sobre o que eles acham interessantes (Twitter,

2013);

Linkedin: rede social para profissionais lançada em 5 de maio de 2003, atualmente possui

mais de 135 milhões de profissionais cadastrados, com mais de 6 milhões somente no

Brasil. Permite aos usuários criarem conexões com outros profissionais da área ou

empresas (Linkedin, 2013);

MySpace: rede social lançada em 2003 que permite a bandas e cantores divulgarem seus

trabalhos, além de criar um espaço de interação entre fãs, artistas e pessoas comuns

(Techtudo, 2011);

Orkut: Rede social criada pelo Google com participação maior de brasileiros (50%),

seguido de indianos, com 20%, os criadores a descrevem da seguinte maneira “O Orkut é

uma comunidade on-line criada para tornar a sua vida social e a de seus amigos mais ativa

e estimulante. A rede social do Orkut pode ajudá-lo a manter contato com seus amigos

atuais por meio de fotos e mensagens, e a conhecer mais pessoas.”. (Google, 2013).

A maior diferença da rede social que está sendo projetada em relação a outras existentes com

geolocalização, são os recursos únicos que facilitam a interação dos usuários. A comparação entre os

recursos é mostrada na Tabela 2 e a seguir estão descrito os recursos avaliados:

Interesses entre usuários: é a possibilidade de encontrar outras pessoas com os mesmos

interesses do usuário, facilitando o relacionamento;

Mapa de Calor: permite a visualização dos locais mais visitados utilizando-se de mapas de

calor. Quanto mais quente, mais frequente é a visita naquele local;

Integração com Facebook: a possibilidade de autenticação no sistema utilizando os

recursos disponíveis pela API do Facebook, como encontrar seus amigos, postar

comentários, fotos e visualizar o perfil de outros usuários;

Page 22: Área de Sistemas de Informação por Thiago Luiz Prux ...siaibib01.univali.br/pdf/Thiago Luiz Prux.pdf · Ranking das redes sociais em maio de 2013 ... 2.1 MÍDIAS SOCIAIS ... O

21

Visualizar amigos: ter uma lista de amigos na qual o utilizador possa visualizar os locais

onde estão seus amigos e seus comentários;

Comentar posição: postar comentários no seu perfil do Facebook, sobre o local em que ele

está atualmente;

Visualizar histórico: permite a visualização dos locais em que o usuário e/ou seus amigos

estiveram;

Prefeito do local: o usuário com maior número de visitas a determinado local recebe o

título de prefeito, podendo ser reconhecido por outros;

Locais mais visitados: mostra os locais em que o usuário e/ou seus amigos, mais estiveram

durante toda a utilização da rede social;

StayPrivate (Ficar privado): possibilita a utilização da rede social em modo escondido,

inibindo a sua localização geográfica. Enquanto o recurso estiver ativado, sua localização

não será salva em seu histórico;

Rotas: permite a criação de rotas entre os usuários ou, entre a posição atual de um usuário

e um local escolhido previamente, trazendo facilidades para a locomoção;

Recompensas: o usuário recebe algum prêmio ou item virtual por completar alguma tarefa

determinada pela rede social, como por exemplo, visitar 5 bares em uma mesma noite; e

Alarmes de interesses: avisa o usuário automaticamente quando outro usuário, que tenha

perfil similar ao seu, encontra-se no mesmo local ou próximo a ele, sem a necessidade de

dar completa atenção ao aplicativo.

Page 23: Área de Sistemas de Informação por Thiago Luiz Prux ...siaibib01.univali.br/pdf/Thiago Luiz Prux.pdf · Ranking das redes sociais em maio de 2013 ... 2.1 MÍDIAS SOCIAIS ... O

22

Tabela 2. Comparação de Recursos de Redes com Geolocalização

Recursos LoreTrack Foursquare Loopt Gowalla Brightkite Whrrl

Interesses entre usuários X

Mapa de Calor X X1

Integração com Facebook X X X X X2 X

Visualizar amigos X X X X X

Prefeito do local X

Comentar posição X X X X X X

Visualizar histórico X X

Locais mais visitados X

StayPrivate X X X X3

Rotas X

Recompensas X X

Alarme de interesses X

2.1.2 Facebook

O Facebook, criado em 4 de fevereiro de 2004 por Mark Zuckerberg, é atualmente a maior

rede social do mundo, começou como um projeto para conectar os alunos da universidade de Harvard,

se espalhando por outras universidades dos Estados Unidos e Europa (Santana, 2011). Segundo Verde

(2011), em fevereiro de 2011, o Facebook possuía mais de 596 milhões de usuários, e destes usuários,

quase 50% acessavam seu perfil a partir de aparelhos móveis, contexto no qual este projeto será

aplicado. Em março de 2013, o Facebook possuía cerca de 1,11 bilhões de usuários ativos por mês,

um crescimento de 93,12% se comparado a 2011, e destes, 751 milhões (68%) acessavam a partir de

seus aparelhos móveis. (Facebook, 2013),

O Facebook disponibiliza uma coleção de ferramentas e bibliotecas chamadas de API,

permitindo e padronizando a utilização de seus serviços. Somente aplicativos com permissões

fornecidas pelo usuário podem acessar suas informações através da API.

2.2 Geolocalização

Geolocalização é a capacidade de determinar onde o usuário está geograficamente em algum

ponto na Terra, seja por algum aparelho com recursos como GPS ou pelo próprio IP do computador,

que pode fornecer uma ideia de onde o usuário possa estar. No entanto, o foco deste projeto é a

1 Somente com ferramentas de terceiros. 2 Somente comentar. 3 Possível esconder de desconhecidos, mas não de amigos.

Page 24: Área de Sistemas de Informação por Thiago Luiz Prux ...siaibib01.univali.br/pdf/Thiago Luiz Prux.pdf · Ranking das redes sociais em maio de 2013 ... 2.1 MÍDIAS SOCIAIS ... O

23

utilização de equipamentos com GPS ou Triangularização para determinar a localização mais

precisamente. Segundo BETZ et. al (2006), o GPS oferece dois tipos de serviços, PPS (Precise

Positioning System – Sistema de Posicionamento Preciso) e SPS (Standard Positioning Service –

Sistema de Posicionamento Padrão), sendo o PPS para uso militar e o SPS para uso civil.

Para determinar a posição geográfica, o aparelho receptor precisa conhecer a posição de pelo

menos quatro satélites, porém, quanto mais satélites disponíveis, maior é a precisão da localização

(Brain & Harris, 2008). Utilizando um princípio matemático, chamado de trilateração, é possível

determinar a posição que o receptor se encontra, como pode ser visto na Figura 5.

Figura 5. Localização por satélites

Fonte: Barbian (2013)

Como visto anteriormente, foi dito que são precisos quatro satélites para a localização correta

de um receptor, porém, utilizando o método de trilateração apresentado na Figura 5, precisaríamos de

somente três satélites para determinar a posição. No entanto, para determinar a posição com somente

três satélites, cada receptor deveria possuir um relógio atômico embutido, pois uma diferença de 0,001

segundo entre os satélites e o receptor significaria um erro de 300km na posição do receptor, por isto

é necessário o sinal de um quarto satélite, procurando um fator de correção para subtrair das outras

medições (Ribeiro, 2008).

Page 25: Área de Sistemas de Informação por Thiago Luiz Prux ...siaibib01.univali.br/pdf/Thiago Luiz Prux.pdf · Ranking das redes sociais em maio de 2013 ... 2.1 MÍDIAS SOCIAIS ... O

24

Existem outras tecnologias que aprimoram a utilização do GPS, como o A-GPS. Morimoto

(2009) descreve essa tecnologia da seguinte forma:

De uma forma geral, os smartphones utilizam antenas de GPS menores e menos sensíveis

e/ou chipsets GPS integrados, com menos recursos. Para reduzir a diferença de sensibilidade

e permitir que o fix dos satélites seja obtido rapidamente, mesmo com a recepção mais fraca,

eles utilizam um sistema híbrido, o A-GPS (Assisted GPS), onde o sinal dos satélites é

combinado com o uso de triangulação celular e de um servidor remoto. Ele fornece

informações sobre o posicionamento dos satélites (reduzindo drasticamente o tempo

necessário para obter o fix4) e outras informações, que facilitam o trabalho do receptor.

Naturalmente, todas as informações são transmitidas usando a rede celular, mas o volume

de dados transferido é pequeno, apenas alguns poucos kbytes por consulta.

2.3 Android

Android é o Sistema Operacional desenvolvido pelo Google para aparelhos móveis como

telefones celulares e tablets, com código aberto distribuído sobre a licença Apache 2.0 (Licenses,

2013).

Lançado em setembro de 2008 com a versão 1.0 (Morrill, 2008) para o aparelho T-Mobile G1

(HTC, 2008), sem suporte a algumas funções básicas, como teclado virtual, Bluetooth, Adobe Flash

e muitas outras.

Desde a primeira versão em setembro de 2008, houve diversos lançamentos de novas versões,

como mostra a Tabela 3, no qual pode ser visto o número da versão, a data de seu lançamento e o

codinome da versão em questão. A cada nova versão foram implementadas melhorias, correções,

funcionalidades e maior segurança, como observado no infográfico encontrado nas figuras do Anexo

A.

4 Fix é conseguir a conexão bem sucedida com o satélite.

Page 26: Área de Sistemas de Informação por Thiago Luiz Prux ...siaibib01.univali.br/pdf/Thiago Luiz Prux.pdf · Ranking das redes sociais em maio de 2013 ... 2.1 MÍDIAS SOCIAIS ... O

25

Tabela 3. Histórico de Versões

Versão Data Codinomes

1.0 23 de setembro de 2008 -----

1.1 9 de fevereiro de 2009 -----

1.5 30 de abril de 2009 Cupcake

1.6 15 de setembro de 2009 Donut

2.0 26 de outubro de 2009 Eclair

2.1 12 de janeiro de 2010 Eclair

2.2 20 de maio de 2010 Froyo

2.3 6 de dezembro de 2010 Gingerbread

3.0 22 de fevereiro de 2011 Honeycomb

3.1 10 de maio de 2011 Honeycomb

3.2 15 de julho de 2011 Honeycomb

4.0 19 de outubro de 2011 Ice Cream Sandwich

4.1 9 de julho de 2012 Jelly Bean

4.2 13 de novembro de 2012 Jelly Bean

Fonte: Android Developers (2013)

Diversas funcionalidades estão presentes no Sistema Operacional Android, sendo que os

desenvolvedores estão lançando novas funcionalidades a cada versão do SO. Abaixo destacam-se

algumas funcionalidades.

Conectividade: Suporte às principais tecnologias de conexão, como CDMA (Code

Division Multiple Access – Acesso Múltiplo por Divisão de Código), GSM (Global

System for Mobile Communications – Sistema Global para Comunicações Móveis),

EDGE (Enhanced Data rates for GSM Evolution – Taxa de Dados Melhoradas para a

Evolução GSM), Bluetooth, Wi-Fi;

Multilíngue: O Android suporta vários idiomas, inclusive o português do Brasil desde a

versão 2.3 (Cooper, 2011);

Suporte a hardware adicional: O Sistema Operacional suporta hardwares como GPS,

touchscreens, acelerômetros, giroscópios, câmeras, sensores de pressão, proximidade,

temperatura e magnetômetros;

Multitouch: Suporte para vários toques simultâneos na tela, disponível desde a versão 2.0

(Memruk, 2010); e

Multitarefa: Possibilidade de execução de vários aplicativos simultaneamente, existente

desde a versão 1.0 (Bray, 2010).

Page 27: Área de Sistemas de Informação por Thiago Luiz Prux ...siaibib01.univali.br/pdf/Thiago Luiz Prux.pdf · Ranking das redes sociais em maio de 2013 ... 2.1 MÍDIAS SOCIAIS ... O

26

2.3.1 Android API

A API do Android fornece as ferramentas necessárias para desenvolvimento de aplicações

para este SO, que são chamadas de Android SDK (Software Development Kit – Kit de

Desenvolvimento de Software) Tools, ferramentas de debug e emuladores (Introduction, 2011).

Emuladores são softwares que permitem a execução de instruções de um hardware em outros

que não possuem as instruções necessárias. O emulador do Android é diferenciado, ele não está

realmente imitando o Android, o que acontece na verdade é o próprio Sistema Operacional executado

virtualmente, o que contribui para a chance de um software executado corretamente dentro do

emulador funcionar exatamente igual no hardware original. (Android Developers, 2011).

Ferramentas de debug que são chamados de ADB (Android Debug Bridge - Ponte de Debug

Android) no Android possibilitam a verificação do estado do aplicativo sendo executado dentro do

dispositivo móvel utilizando-se de emuladores ou até mesmo de um dispositivo real conectado ao

computador. Isto oferece a possibilidade de visualizar ou modificar o estado das variáveis e outras

informações que os debbugers permitem visualizar, como quais instruções estão sendo executadas, e

se o software está sendo executado da maneira correta. (Android Debug Bridge, 2011).

2.4 Facebook API

Chamada de “Graph API”, a API do Facebook permite às aplicações de terceiros recuperar

informações sobre objetos da rede social, como usuários, fotos, eventos e páginas, e a conexão entre

estes objetos, por exemplo: amizades, conteúdos e comentários (Facebook Developers, 2013). Porém,

nem todas as informações são publicamente recuperáveis, sendo necessário anteriormente autenticar-

se no sistema para obter as informações mais privadas, como pode ser visto nas figuras a seguir, em

que foram requisitadas informações básicas do usuário “Thiago Prux” de id “1009084807”, onde o

Quadro 1 mostra o retorno sem autenticação, em que foram solicitadas informações do usuário sem

passar o AccessToken do Facebook como parâmetro, trazendo somente as informações públicas. E o

Quadro 2, que mostra o retorno com autenticação, onde o AccessToken é informado, e traz todas as

informações que o proprietário do Token tem permissões para visualização.

Page 28: Área de Sistemas de Informação por Thiago Luiz Prux ...siaibib01.univali.br/pdf/Thiago Luiz Prux.pdf · Ranking das redes sociais em maio de 2013 ... 2.1 MÍDIAS SOCIAIS ... O

27

{

"id": "1009084807",

"name": "Thiago Prux",

"first_name": "Thiago",

"last_name": "Prux",

"link": "https://www.facebook.com/people/Thiago-Prux/1009084807",

"gender": "male",

"locale": "pt_BR"

}

Quadro 1. Retorno da API Facebook sem autenticação

{

"id": "1009084807",

"name": "Thiago Prux",

"first_name": "Thiago",

"last_name": "Prux",

"link": "https://www.facebook.com/profile.php?id=1009084807",

"birthday": "03/12/1987",

"hometown": {

"id": "106081109431806",

"name": "Blumenau, Santa Catarina, Brazil"

},

"work": [

{

"employer": {

"id": "144584165595708"

"name": "Cootravale"

},

"position": {

"id": "103157443074406",

"name": "Analista de Suporte"

}

}

],

"gender": "male",

"locale": "pt_BR",

"languages": [

{

"id": "108083115891989",

"name": "L\u00edngua portuguesa"

},

{

"id": "168679183164330",

"name": "Ingl\u00eas"

}

],

"verified": true,

}

Quadro 2. Retorno da API Facebook com autenticação

Page 29: Área de Sistemas de Informação por Thiago Luiz Prux ...siaibib01.univali.br/pdf/Thiago Luiz Prux.pdf · Ranking das redes sociais em maio de 2013 ... 2.1 MÍDIAS SOCIAIS ... O

28

Como pôde ser visto, as solicitações de informações ao mesmo usuário mudaram

significativamente, isto ocorre pelo fato de o primeiro pedido visto no Quadro 1 ser uma simples

requisição (https://graph.facebook.com/1009084807) sem informar a variável “access_token”, que

identifica o usuário autenticado no sistema, enquanto no Quadro 2 é informada esta variável

(https://graph.facebook.com/1009084807?access_token=2227470867|2.AQA2ro09VJWtsy2m.36

00.1309464000.0-1009084807|DVdZxAp4IzSZYv-VN9r6EWFH1vE). Segundo o site oficial,

Facebook Permissions (2013), o access_token quando é gerado pelo Facebook, pode ter um período

curto de vida, que permanece ativo enquanto o usuário utiliza o sistema, ou permanente, autorizando

a aplicação executar ações em nome do usuário a qualquer momento, mesmo quando este não estiver

utilizando o sistema. No blog oficial do Facebook, Pansari (2011) relata como é o funcionamento do

access_token, mostrando em quais condições o mesmo expira, invalidando a conexão do aplicativo e

sendo necessário novo login. Simplificando, o access_token, ou AccessToken, é uma chave de

segurança, em que estão contidas informações de quais dados o detentor desta chave pode obter sobre

os outros usuários.

Para ter uma ideia do que o aplicativo pode fazer, na página oficial dos desenvolvedores da

API do Facebook, Facebook Permissions (2011), encontram-se as permissões necessárias e quais suas

funcionalidades perante o perfil do usuário. Entre algumas das permissões que serão necessárias pelo

sistema, pode-se citar:

user_likes: possibilita a recuperação das informações de todas as páginas que o usuário

curtiu, incluindo livros, filmes, fã pages, dentre outras;

user_birthday: permite a obtenção dos dados da data de nascimento do usuário;

user_photos: permite a visualização das fotos que foram disponibilizadas no perfil do

usuário; e

user_interests: permite obter informações sobre os interesses do usuário, que serão as pelo

sistema para encontrar pessoas com perfil semelhante.

Não é necessário solicitar permissões para recuperar informações básicas como nome, id, lista

de amigos, sexo, foto de perfil ou alguma outra informação definida como pública pelo usuário.

Page 30: Área de Sistemas de Informação por Thiago Luiz Prux ...siaibib01.univali.br/pdf/Thiago Luiz Prux.pdf · Ranking das redes sociais em maio de 2013 ... 2.1 MÍDIAS SOCIAIS ... O

29

2.5 Google Maps API

A API do Google Maps permite adicionar mapas baseados no Google Maps a outros sistemas.

A API gerencia automaticamente o acesso aos servidores de mapas do Google, download de dados,

visualização do mapa e resposta a gestos. Também pode ser utilizada para adicionar marcadores,

polígonos, e camadas extras para a visualização de dados. (GOOGLE MAPS, 2013).

2.5.1 Geocoding

Geocoding é o processo de converter endereços em coordenadas geográficas. Também é

possível converter coordenadas geográficas em endereços, este processo se chama “reverse

geocoding” (Google Geocoding, 2013).

2.5.1.1 Utilização

A utilização da API do Google Maps para Geocoding deve ser feita utilizando uma requisição

GET do protocolo HTML, onde o “output” deve ser trocado por xml ou json (JavaScript Object

Notation – Notação de Objeto JavaScript). O endereço para a requisição está no Quadro 3.

http://maps.googleapis.com/maps/api/geocode/output?parameters

Quadro 3. Endereço para requisição geocoding

Para a utilização do endereço de requisição de geocoding, é necessário fornecer o endereço

necessário para recuperar as coordenadas, ou as coordenadas para a recuperação do endereço.

Também é obrigatório informar se o endereço veio através de um aparelho com sensor de localização

ou manualmente. Um exemplo de uma consulta pode ser visto no Quadro 4, onde a localização

solicitada foi: lat,lng(-26.915220, -48.661884), sendo o campus da Univali.

Page 31: Área de Sistemas de Informação por Thiago Luiz Prux ...siaibib01.univali.br/pdf/Thiago Luiz Prux.pdf · Ranking das redes sociais em maio de 2013 ... 2.1 MÍDIAS SOCIAIS ... O

30

"results" : [

{

"address_components" : [

{

"long_name" : "1071-1411",

"short_name" : "1071-1411",

"types" : [ "street_number" ]

},

{

"long_name" : "Avenida Vereador Abrahão João Francisco",

"short_name" : "Av. Ver. Abrahão João Francisco",

"types" : [ "route" ]

},

{

"long_name" : "Itajaí",

"short_name" : "Itajaí",

"types" : [ "locality", "political" ]

},

{

"long_name" : "Santa Catarina",

"short_name" : "SC",

"types" : [ "administrative_area_level_1", "political" ]

},

{

"long_name" : "Brazil",

"short_name" : "BR",

"types" : [ "country", "political" ]

},

{

"long_name" : "88302-102",

"short_name" : "88302-102",

"types" : [ "postal_code" ]

}

]

Quadro 4. Exemplo de Geocoding

2.5.1.2 Limites Geocoding

Os limites da API do Google Maps para Geocoding é de 2.500 requisições diárias, se este

limite é excedido, a API de Geocoding pode parar de funcionar durante o dia corrente, exceto a versão

paga, que aumenta este limite para 100.000. (Google Maps API, 2013)

2.6 Places API

O Google Places API permite a identificação de locais, estabelecimentos e outros pontos de

interesses próximos a uma determinada coordenada geográfica. Permite também obter comentários

de outros usuários para determinados pontos de interesses, e também complementar o banco de dados

enviando novos locais para o Places.

Page 32: Área de Sistemas de Informação por Thiago Luiz Prux ...siaibib01.univali.br/pdf/Thiago Luiz Prux.pdf · Ranking das redes sociais em maio de 2013 ... 2.1 MÍDIAS SOCIAIS ... O

31

Todas as requisições ao Places precisam de uma chave de autenticação chamada de API KEY,

que controla qual o limite de utilização, define se é uma requisição grátis ou paga, e permite controle

por parte dos desenvolvedores e da própria Google. (API do Google Places, 2013)

2.6.1 Utilização

A utilização da API Places é muito similar com a do Geocoding, porém, algumas diferenças

podem ser notadas, as principais delas é a obrigatoriedade da API KEY na requisição ao WebService

do Google, que é a chave para a autenticação do uso da API, e o parâmetro radius que define a área

em que devem ser pesquisados os estabelecimentos ou outros pontos de interesses, como pode ser

visto a seguir no Quadro 5.

key: a chave de API de seu aplicativo. Esta chave identifica seu aplicativo para fins de

gerenciamento de cota e para que os locais adicionados a partir de seu aplicativo sejam

disponibilizados imediatamente para seu aplicativo. Visite o Console de API para criar um

projeto de API e obter sua chave.

location: a latitude/longitude em torno das quais informações do local devem ser

recuperadas. Isso deve ser especificado como latitude,longitude.

radius: define a distância (em metros) dentro da qual os resultados de local devem ser

retornados. O raio máximo permitido é 50.000 metros. O radius não deve ser incluído se

o valor rankby=distance (descrito a seguir em Parâmetros opcionais) for especificado.

sensor: indica se a solicitação de local veio ou não de um dispositivo que utiliza um sensor

de localização (por exemplo, um GPS) para determinar a localização enviada nesta

solicitação. Este valor deve ser true ou false.

Quadro 5. Parâmetros obrigatórios para o Places API

Fonte: API do Google Places (2013)

A requisição deve ser feita no formato mostrado no Quadro 6, onde o campo “output” deve

ser trocado por json ou xml, para obter a resposta em seu respectivo formato.

https://maps.googleapis.com/maps/api/place/search/output?parameters

Quadro 6. Requisição Places API

Page 33: Área de Sistemas de Informação por Thiago Luiz Prux ...siaibib01.univali.br/pdf/Thiago Luiz Prux.pdf · Ranking das redes sociais em maio de 2013 ... 2.1 MÍDIAS SOCIAIS ... O

32

Um exemplo de resposta da utilização do Places API segue abaixo no Quadro 7, onde pode

ser verificado uma resposta para uma requisição a um local.

{

"html_attributions" : [ "Listings by \u003ca

href=\"http://www.telelistas.net/\"\u003eTelelistas\u003c/a\u003e" ],

"results" : [

{

"geometry" : {

"location" : {

"lat" : -26.9153040,

"lng" : -48.6631490

}

},

"icon" :

"http://maps.gstatic.com/mapfiles/place_api/icons/generic_business-71.png",

"id" : "42fb1df510cc465839910432de333f56622121d5",

"name" : "Teatro Adelaide Konder",

"opening_hours" : {

"open_now" : true

},

"reference" :

"CoQBdAAAACkGnHnzTru5ncQUrRWJ63Y7WOSpjQvE0CYABRJOfzkekgDYCwMctmZ3Vb1u9J3WzpJ0F

UVK2FYMLSX8nZgrQRec01-SntyujfULgVsDf-Z0ye9jmZsJSPP6q8A-vLXwOGK3mh6-

nZ9BRs59hsKP-11exzO79UOljUvHkaEkQVv6EhA_sfH-

GuQj6EL0BOGTxFWcGhSeDpv1zwHwaD9TU1ktFJ7OnlNKpg",

"types" : [ "establishment" ],

"vicinity" : "Rua Uruguai - Itajaí"

},

Quadro 7. Exemplo Places API

2.6.2 Limites Places

Os limites de cotas para o Places API são os seguintes (API do Google Places, 2013):

Usuários que possuem uma chave de API têm permissão para fazer 1.000 solicitações por

um período de 24 horas;

Usuários que confirmaram sua identidade por meio do console de APIs têm permissão

para 100 mil solicitações por um período de 24 horas.

2.6.3 Licenciamento

A utilização da API do Google Maps requer a aceitação dos termos de serviço (Google Maps,

2013). A seção 9.1 descreve as regras de como pode ser utilizada a API:

Page 34: Área de Sistemas de Informação por Thiago Luiz Prux ...siaibib01.univali.br/pdf/Thiago Luiz Prux.pdf · Ranking das redes sociais em maio de 2013 ... 2.1 MÍDIAS SOCIAIS ... O

33

9.1 Free, Public Accessibility to Your Maps API Implementation.

9.1.1 General Rules.

(a) Free Access (No Fees). Your Maps API Implementation must be generally accessible to users

without charge and must not require a fee-based subscription or other fee-based restricted

access. This rule applies to Your Content and any other content in your Maps API

Implementation, whether Your Content or the other content is in existence now or is added later.

(b) Public Access (No Firewall). Your Maps API implementation must not operate (i) only behind

a firewall; or (ii) only on an internal network (except during the development and testing phase);

or (iii) in a closed community (for example, through invitation-only access).

9.1.2 Exceptions.

(a) Enterprise Agreement with Google. The rules in Section 9.1.1 (Free Access, Public Access) do

not apply if you have entered into a separate written agreement with Google (such as a Google

Enterprise agreement) or obtained Google's written permission.

(b) Mobile Applications. The rule in Section 9.1.1(a) (Free Access) does not apply if your Maps

API Implementation is used in a mobile application that is sold for a fee through an online store

and is downloadable to a mobile device that can access the online store.

9.1.3 Examples.

(a) You can require users to log in to your Maps API Implementation if you do not require users

to pay a fee.

(b) You can charge a fee for your Maps API Implementation if it is an Android application

downloadable to mobile devices from the Android Market.

(c) If you are a consultant who creates or hosts Maps API Implementations for third party

customers, you may charge such customers a fee for your consulting or hosting services (but not

for the Maps API Implementations themselves, except as permitted under Section 9.1.2

(Exceptions)).

Quadro 8. Licenciamento

Estas regras afirmam que somente poderá ser utilizada a API do Google Maps em softwares

que não necessitem o pagamento de quaisquer taxa, e devem estar publicamente disponível para

qualquer pessoa que deseja utilizar o mesmo. A Sessão 9.1.3(a) afirma que é possível exigir que o

usuário se autentique antes de poder utilizar o mapa, desde que, não seja cobrada nenhuma taxa.

2.7 Frameworks

Segundo Rouse (2005), framework é uma estrutura real ou conceitual com o propósito de

ajudar a construção de algo que expande a estrutura inicial em um resultado final útil. Rouse (2005)

Page 35: Área de Sistemas de Informação por Thiago Luiz Prux ...siaibib01.univali.br/pdf/Thiago Luiz Prux.pdf · Ranking das redes sociais em maio de 2013 ... 2.1 MÍDIAS SOCIAIS ... O

34

também elabora um conceito mais técnico sobre o assunto, em que ele afirma que nos sistema

computacionais, um framework é frequentemente uma estrutura em camadas indicando que tipos de

programas podem ou devem ser construídos, e como eles se entrelaçariam. Alguns frameworks de

sistemas computacionais também incluem outros programas, interfaces de programações específicas,

ou oferecem ferramentas de programação para utilizarem o framework. Um framework pode ser para

um conjunto de funções no interior de um sistema, e como eles se relacionam; as camadas de um

sistema operacional; as camadas de uma subsistema de uma aplicação; como a comunicação deve ser

padronizada em um certo nível de uma rede; e assim por diante. Um framework é geralmente mais

compreensivo que um protocolo e mais prescritivo que uma estrutura.

2.7.1 JAX-RS

JAX-RS é um framework baseado em REST, com o objetivo de vincular padrões de URI

(Uniform Resource Identifier - Identificador Uniforme de Recursos) específicos e operações HTTP

(Hypertext Transfer Protocol - Protocolo de Transferência de Hipertexto) com métodos da classe Java

utilizando de anotações de injeção de parâmetros no código fonte do WebService. Ele possui leitores

e escritores do corpo da mensagem que permitem entrelaçar e desentrelaçar objetos Java. Possui

também mapeadores de exceções, que são erros ocorridos em tempo de execução, podendo enviar

exceções como resposta para as requisições HTTP. (Burke, 2010)

2.7.2 Gson

Gson é uma biblioteca Java, lançada em 22 de maio de 2008 (gson, 2011) utilizada para

converter objetos Java para uma reprodução em JSON (Serialização), e também transformar uma

representação em JSON para um objeto Java equivalente (Deserialização). Foi inicialmente

desenvolvido para ser utilizado internamente pelos projetos Google, porém, é agora utilizado por

diversos projetos públicos e empresas. (Gson User Guide, 2011). Um exemplo do uso da serialização

pode ser visto no Quadro 9.

Page 36: Área de Sistemas de Informação por Thiago Luiz Prux ...siaibib01.univali.br/pdf/Thiago Luiz Prux.pdf · Ranking das redes sociais em maio de 2013 ... 2.1 MÍDIAS SOCIAIS ... O

35

public class Produto {

private int codigo;

private String nome;

private BigDecimal preco;

private Set<Category> categorias;

//Métodos removidos para abreviar

}

public enum Categoria {

FRUTA("FRT", "Fruta"), VEGETAIS("VEG", "Vegetais");

private final String codigo;

private final String nome;

private Categoria(final String codigo, final String nome)

{

this.codigo = codigo;

this.nome = nome;

}

//Métodos removidos para abreviar

}

public class Main {

Produto produto = new Produto ();

produto.setCodigo(10);

produto.setNome("Tomate");

produto.addCategoria(Categoria.FRUTA);

produto.addCategoria(Categoria.VEGETAIS);

produto.setPreco(new BigDecimal("10.23"));

String json = gson.toJson(produto);

}

==> json {

"codigo":10,

"nome":"Tomate",

"preco":10.23,

"categorias":["VEGETAIS","FRUTA"]

}

Quadro 9. Exemplo Gson

2.8 Mapa de Calor

Conforme o site HeatMapAPI (2012), um mapa de calor é uma representação gráfica de dados

bidimensionais (X, Y e Valor) em uma superfície bidimensional utilizando cores. Para representar

um mapa de calor em um mapa, é utilizada uma nova camada gerada a partir de dados que são as

localizações geográficas geradas pelo histórico do usuário.

Uma das formas de utilizar o mapa de calor é para a visualização de locais mais visitados,

destacando os locais mais visitados com cores fortes, permitindo facilmente distinguir os locais mais

Page 37: Área de Sistemas de Informação por Thiago Luiz Prux ...siaibib01.univali.br/pdf/Thiago Luiz Prux.pdf · Ranking das redes sociais em maio de 2013 ... 2.1 MÍDIAS SOCIAIS ... O

36

visitados dos menos visitados. A API do Google para mapas, não apresenta esta funcionalidade

nativamente, porém, com a utilização de bibliotecas isto é possível, e por serem bibliotecas abertas é

possível sua modificação, possibilitando a customização para as necessidades do sistema.

Algumas das bibliotecas que fazem a função de criar um mapa de calor utilizando o Google

Maps são:

gheat (GHEAT, 2011);

GMAP (GMAP, 2011);

HeatMapAPI (HeatMapAPI, 2011); e

GM Heatmap (GMHEATMAP, 2011).

Um exemplo de mapa de calor utilizando a API do Google Maps pode ser visto na Figura 6,

que demonstra os locais com maiores acidentes de carros em Helsinque, capital da Finlândia, sendo

que as áreas quentes, ou vermelhas, são as localidades com maior índice, e as áreas com menos

acidentes, mais frias, estão representadas pela cor azul. Este formato de cor pode variar de acordo

com a escolha do desenvolvedor, podendo ser de quaisquer cores. Como pode ser observado, há mais

acidentes no centro da cidade, e locais com cruzamentos, e ocasionalmente os locais adjacentes. Com

estes dados, podem ser utilizados métodos para a diminuição de acidentes nestes locais.

Figura 6. Mapa de Calor

Fonte: Cloud’n’Sci.fi (2013)

Page 38: Área de Sistemas de Informação por Thiago Luiz Prux ...siaibib01.univali.br/pdf/Thiago Luiz Prux.pdf · Ranking das redes sociais em maio de 2013 ... 2.1 MÍDIAS SOCIAIS ... O

37

3 DESENVOLVIMENTO

O desenvolvimento constituiu-se de duas partes:

Aplicação cliente rodando no dispositivo móvel; e

Aplicação servidora com acesso ao banco de dados para receber e processar requisições

(acessadas como WebService), e para armazenar as informações dos usuários.

Como pode ser observado na Figura 7, os dados enviados pela aplicação cliente são entregues

à aplicação servidora através de um processo de vários passos. A comunicação é enviada até as

antenas de telefonia através de uma rede sem fio, que em seguida são enviadas para a internet,

chegando à aplicação servidora, e então faz as requisições ao banco de dados. Também é pela internet

que são enviadas as solicitações para a obtenção de dados dos servidores do Facebook e Google.

Figura 7. Diagrama do Projeto

O sistema se utiliza das credenciais do Facebook, devido ao recurso de amizades internas,

dando a possibilidade de sair do sistema, desvinculando suas credenciais. A utilização da linguagem

Page 39: Área de Sistemas de Informação por Thiago Luiz Prux ...siaibib01.univali.br/pdf/Thiago Luiz Prux.pdf · Ranking das redes sociais em maio de 2013 ... 2.1 MÍDIAS SOCIAIS ... O

38

de programação Java para o desenvolvimento do projeto se deve ao fato do desenvolvedor das

aplicações ter melhor conhecimento nesta linguagem.

3.1 Ferramentas Necessárias

As ferramentas necessárias para o desenvolvimento do projeto são:

Google Maps API: API com uma coleção de serviços que podem ser requisitados para

obtenção de informações para mapas, como exemplos, nomes de locais, rotas e imagens

de mapas;

Google Places API: API para a recuperação de informações de locais e pontos de

interesses, como bares, escolas, igrejas, empresas, dentre diversas outras. Permite a busca

por nomes dos locais especificando uma posição geográfica no globo;

Sistema Operacional Android: servirá como base permitindo executar a aplicação cliente,

ele contém todas as bibliotecas necessárias para o funcionamento do aplicativo, inclusive

as ferramentas para o desenvolvimento utilizando da API do Android;

API do Facebook: obrigatória para o desenvolvimento de quaisquer aplicações para a rede

social Facebook, disponibilizando as ferramentas e bibliotecas necessárias para o

desenvolvimento, define também o que as aplicações podem fazer, criando regras e

limites;

Mapa de calor: necessário para uma experiência mais rica na visualização do histórico do

utilizador, possibilitando a visualização dos locais mais visitados pelo próprio usuário ou

de seus amigos que permitiram este recurso;

MySQL Workbench: ferramenta para criação de modelos de banco de dados para

MySQL;

Eclipse IDE: IDE de programação que servirá para desenvolver a aplicação cliente e o

web service; e

Balsamiq Mockups: ferramenta para prototipação de telas, utilizado para demonstrar

como ficará o layout do sistema.

Page 40: Área de Sistemas de Informação por Thiago Luiz Prux ...siaibib01.univali.br/pdf/Thiago Luiz Prux.pdf · Ranking das redes sociais em maio de 2013 ... 2.1 MÍDIAS SOCIAIS ... O

39

3.2 Aplicação Cliente

A aplicação cliente é a aplicação executada pelo celular que está rodando o Sistema

Operacional Android, ele é o responsável por toda comunicação com o WebService e também é

responsável por mostrar ao usuário a interface do sistema.

A aplicação cliente servirá para: (i) obter as informações das posições dos usuários e enviá-

las ao WebService; (ii) permitir a visualização e alteração de suas configurações; (iii) localizar seus

amigos e pessoas desconhecidas com perfis semelhantes; e (iv) mostrar detalhes de seus amigos e

pessoas próximas à sua localização.

Por demandar uma grande quantidade de informações, tanto através da Internet como dos

sistemas de geolocalização, a aplicação cliente racionaliza o consumo de recursos dos aparelhos

móveis utilizando-se de um intervalo mínimo definido na regra de negócio 1, determinando se a

posição do usuário foi modificada fora da faixa de erro do GPS. Também foi feita a racionalização

do uso da Internet através de trocas de dados em formato JSON, que é um formato compactado para

transferência de dados.

A seguir são apresentados todos os requisitos funcionais e não funcionais da aplicação cliente,

seus casos de uso, protótipos de tela e diagramas de atividade, que demonstram como foi o sistema e

o que é possível fazer.

3.2.1 Requisitos não Funcionais

Estes requisitos são as características que precisam ser satisfeitas pela aplicação cliente para

o correto desenvolvimento do projeto.

RNF01. O usuário do sistema deve também ser usuário do Facebook;

RNF02. O sistema será desenvolvido na linguagem Java;

RNF03. O sistema deverá utilizar banco de dados SQLite;

RNF04. Toda distância será mostrada em metros;

RNF05 Toda informação deve ser trocada no formato compactado JSON.

Page 41: Área de Sistemas de Informação por Thiago Luiz Prux ...siaibib01.univali.br/pdf/Thiago Luiz Prux.pdf · Ranking das redes sociais em maio de 2013 ... 2.1 MÍDIAS SOCIAIS ... O

40

3.2.2 Requisitos Funcionais

A aplicação cliente contém diversos requisitos funcionais, que definem os requisitos que o

sistema deverá respeitar.

RF01 Solicitar ao usuário se autenticar utilizando suas credenciais do Facebook;

RF02 Permitir ao usuário localizar seus amigos do Facebook que utilizam o mesmo

aplicativo;

RF03 Permitir ao usuário visualizar o perfil de outras pessoas com o sistema, utilizando

informações do Facebook e do BD do sistema;

RF04 Permitir ao usuário postar comentários no Facebook do local em que ele está

atualmente;

RF05 Trazer informações sobre locais próximos automaticamente, utilizando-se de dados

cadastrados no Google Maps;

RF06 Permitir ao usuário verificar os locais pelos quais ele passou em um determinado

período;

RF07 Permitir ao usuário procurar pessoas com interesses parecidos com os seus, em um

raio determinado pelo usuário;

RF08 Permitir ao usuário visualizar os locais mais visitados por ele e por seus amigos;

RF09 Permitir ao usuário divulgar sua localização atual para todos;

RF10 Permitir ao usuário divulgar seu histórico para todos;

RF11 Permitir ao usuário determinar quem poderá ver sua posição atual e seu histórico;

RF12 Permitir ao usuário traçar rotas de seu local atual até outra pessoa de seu interesse;

RF13 O sistema deve avisar ao usuário sobre pessoas com interesses parecidos com o seu

e que estejam próximas sempre que sua posição for atualizada;

RF14 Permitir ao usuário alterar seu perfil do Facebook atual por outro;

Page 42: Área de Sistemas de Informação por Thiago Luiz Prux ...siaibib01.univali.br/pdf/Thiago Luiz Prux.pdf · Ranking das redes sociais em maio de 2013 ... 2.1 MÍDIAS SOCIAIS ... O

41

RF15 Apresentar ao usuário um mapa de calor de seu histórico de posições.

3.2.3 Regras de Negócio

Regra 1: A mudança de posição do usuário só deve ser reportada à aplicação servidora

caso haja uma diferença de 15 metros e um intervalo mínimo de 20 segundos;

Regra 2: O usuário só poderá utilizar o sistema se for previamente autenticado pela rede

social Facebook;

Regra 3: Nenhuma senha deve ser armazenada na aplicação cliente.

3.2.4 Casos de Uso

Os casos de uso definem o que o usuário poderá fazer perante o sistema. A Figura 8 representa

o usuário do sistema e cada uma das ações possíveis de serem executadas. O detalhamento dos casos

de uso pode ser visto a seguir, contendo o nome de cada caso de uso e sua funcionalidade:

Caso de uso “Efetuar login”: o usuário entra com suas credenciais, e a aplicação

autenticará através do WebService do Facebook;

Caso de uso “Ver seu histórico de locais e de amigos”: o usuário poderá visualizar os

locais mais visitados por ele ou por um de seus amigos, e o mapa de calor que representa

estas informações;

Caso de uso “Visualizar perfil de outras pessoas”: o usuário pode visualizar o perfil do

Facebook de pessoas próximas, com interesses em comum, ou de seus amigos;

Caso de uso “Procurar pessoas com afinidades próximas”: o usuário pode solicitar à

aplicação servidora os usuários com interesses em comum com os seus e que estejam em

sua proximidade;

Caso de uso “Visualizar local de seus amigos”: o usuário pode visualizar a posição de

seus amigos se estes assim o permitirem;

Page 43: Área de Sistemas de Informação por Thiago Luiz Prux ...siaibib01.univali.br/pdf/Thiago Luiz Prux.pdf · Ranking das redes sociais em maio de 2013 ... 2.1 MÍDIAS SOCIAIS ... O

42

Caso de uso “Postar comentários de seu local”: o usuário pode enviar mensagens pelo

dispositivo, enviando uma frase e sua posição atual diretamente para seu perfil do

Facebook, no formato de comentários;

Caso de uso “Traçar rotas até outra pessoa”: o usuário pode traçar rotas com o caminho

mais curto de sua posição atual até a posição de outra pessoa;

Caso de uso “Trocar o perfil do Facebook utilizado no sistema”: o usuário tem a

possibilidade de trocar seu perfil do Facebook quando for necessário; e

Caso de uso “Alterar opção de privacidade e usabilidade”: permite ao usuário a troca de

suas opções de privacidade ou usabilidade como, por exemplo, se deseja ser visto por

alguma pessoa específica ou se deseja ser avisado por avisos sonoros, caso algum novo

evento aconteça.

Figura 8. Casos de Uso da Aplicação

Page 44: Área de Sistemas de Informação por Thiago Luiz Prux ...siaibib01.univali.br/pdf/Thiago Luiz Prux.pdf · Ranking das redes sociais em maio de 2013 ... 2.1 MÍDIAS SOCIAIS ... O

43

3.2.5 Telas da Aplicação Cliente

Na tela de Login (Figura 9) o usuário deve vincular sua conta do Facebook para poder utilizar

o sistema. Vinculando sua conta, o sistema reconciliará suas informações e usará para entrar no

sistema com todos seus dados relevantes sincronizados. Após a autorização do usuário, o sistema

entrará automaticamente, sem a necessidade de se autenticar novamente até que o usuário faça Logoff

ou desinstale o sistema.

Figura 9. Tela de Login

Page 45: Área de Sistemas de Informação por Thiago Luiz Prux ...siaibib01.univali.br/pdf/Thiago Luiz Prux.pdf · Ranking das redes sociais em maio de 2013 ... 2.1 MÍDIAS SOCIAIS ... O

44

A tela do Menu (Figura 10) é a tela principal do sistema, nela são concentrados os botões das

principais funções do sistema, como por exemplo, para abrir o mapa, editar suas configurações de

perfil, visualizar seus amigos, rever seu histórico, alterar as configurações do sistema e até entrar em

modo invisível, que esconde sua posição de outros usuários e de amigos.

A tela do Mapa (Figura 10) permite ao usuário visualizar sua posição atual, a de seus amigos

e comentar sobre o local que ele se encontra, enviando o comentário diretamente ao seu perfil do

Facebook. Permite também visualizar a rota mais curta até outro usuário.

Figura 10. Menu Principal e Tela de Mapa

Page 46: Área de Sistemas de Informação por Thiago Luiz Prux ...siaibib01.univali.br/pdf/Thiago Luiz Prux.pdf · Ranking das redes sociais em maio de 2013 ... 2.1 MÍDIAS SOCIAIS ... O

45

As telas de Perfil e Preferências (Figura 11) possuem duas abas, a primeira permitindo

visualizar seu perfil do Facebook que está sendo utilizado pelo sistema. A segunda é a de preferências,

em que o usuário pode visualizar seus interesses cadastrados no Facebook, como músicas, livros,

televisão, entre outros.

Figura 11. Tela Perfil/Preferências

Page 47: Área de Sistemas de Informação por Thiago Luiz Prux ...siaibib01.univali.br/pdf/Thiago Luiz Prux.pdf · Ranking das redes sociais em maio de 2013 ... 2.1 MÍDIAS SOCIAIS ... O

46

A tela de amigos (Figura 12) permite ao usuário verificar a posição atual de seus amigos,

dando a possibilidade de filtrar por nomes, e adicionar novos conhecidos à sua lista atual. Permite

também ao usuário visualizar o perfil no Facebook das pessoas que estão em sua lista de amigos,

podendo deixar recados ou chamá-los para o seu local atual.

Figura 12. Tela de Amigos

Page 48: Área de Sistemas de Informação por Thiago Luiz Prux ...siaibib01.univali.br/pdf/Thiago Luiz Prux.pdf · Ranking das redes sociais em maio de 2013 ... 2.1 MÍDIAS SOCIAIS ... O

47

A tela de histórico (Figura 13) possibilita ao usuário visualizar seu histórico e de seus amigos durante

um determinado dia, trazendo informações dos locais mais visitados. Permite também a visualização

do Mapa de Calor.

Figura 13. Tela de Histórico

Page 49: Área de Sistemas de Informação por Thiago Luiz Prux ...siaibib01.univali.br/pdf/Thiago Luiz Prux.pdf · Ranking das redes sociais em maio de 2013 ... 2.1 MÍDIAS SOCIAIS ... O

48

As abas Geral e Facebook do menu de configurações da Figura 14, servem para modificar

algumas opções que dependem do gosto do usuário, onde ele pode alterar a distância máxima dentro

da qual o sistema informará se há alguém com os mesmos interesses que o seu, e a aba Facebook a

possibilidade de alterar sua conta do Facebook.

Figura 14. Configurações Geral/Facebook

Page 50: Área de Sistemas de Informação por Thiago Luiz Prux ...siaibib01.univali.br/pdf/Thiago Luiz Prux.pdf · Ranking das redes sociais em maio de 2013 ... 2.1 MÍDIAS SOCIAIS ... O

49

A tela de configurações de privacidade (Figura 15) permite a alteração de opções que afetam

a privacidade e como os outros usuários veem o usuário atual, permitindo mudar opções de quem

pode ver sua posição e seu histórico. Permite também o bloqueio de outras pessoas para que essas

não possam mais se comunicar nem visualizar informações sobre o usuário, permitindo também ativar

o modo invisível e ativar ou desativar a gravação de históricos.

Figura 15. Configurações de Privacidade

Page 51: Área de Sistemas de Informação por Thiago Luiz Prux ...siaibib01.univali.br/pdf/Thiago Luiz Prux.pdf · Ranking das redes sociais em maio de 2013 ... 2.1 MÍDIAS SOCIAIS ... O

50

3.3 Aplicação Servidor

Para todo desenvolvimento da aplicação servidor foi utilizada a linguagem Java com o

framework JAX-RS, que permite a utilização do padrão de comunicação REST para o WebService,

o que, se usado corretamente, torna o desenvolvimento e a manutenção do sistema mais rápida e

menos problemática.

A aplicação servidor é responsável por armazenar todas as informações pertinentes ao usuário

e que não existam no Facebook. Também armazenará as informações da posição do usuário, assim

como o momento desta posição, para utilização pelo sistema de histórico. Dados como conexões entre

os usuários internos do sistema, preferências, dados utilizados internamente pelo sistema e o

AccessToken recuperado do Facebook também serão armazenados. Ela também é responsável por

todo o processamento, retornando somente as informações solicitadas pela aplicação cliente. Isto

diminui a carga do dispositivo, já que o mesmo possui uma capacidade de processamento muito

inferior à do servidor.

A aplicação servidor será capaz de: (i) receber solicitações dos clientes via requisição através

do protocolo HTTP; (ii) buscar informações do banco de dados ou através da integração com o

Facebook, que conterá a maioria das informações; (iii) processar as informações recebidas; e (iv)

retornar o resultado da solicitação.

A integração de um servidor centralizado à aplicação cliente com geolocalização deverá: (i)

possibilitar a opção de visualização do histórico de localização de um usuário; (ii) consultar os locais

preferidos dos amigos; e (iii) fazer comentários sobre os locais em que o usuário está.

3.3.1 Padrão de Comunicação

O sistema faz uso do padrão de comunicação REST para toda comunicação com a aplicação

servidora, utilizando o framework JAX-RS. O REST foi desenvolvido baseado no HTTP, em que o

client envia uma solicitação do método a ser invocado, o cabeçalho e opcionalmente um corpo da

mensagem que pode ser de qualquer tipo, incluindo HTML, texto simples, XML, JSON ou mesmo

um arquivo binário. (Burke, 2010)

Page 52: Área de Sistemas de Informação por Thiago Luiz Prux ...siaibib01.univali.br/pdf/Thiago Luiz Prux.pdf · Ranking das redes sociais em maio de 2013 ... 2.1 MÍDIAS SOCIAIS ... O

51

3.3.2 Requisitos não Funcionais

Estes requisitos são todas as características que precisam ser satisfeitas pela aplicação servidor

para o correto desenvolvimento do projeto.

RNF01 A aplicação servidora deverá ser programada em Java utilizando framework JAX-

RS;

RNF02 O banco de dados deverá ser MySQL;

RNF03 O Web Service deverá utilizar o protocolo de comunicação REST.

3.3.3 Requisitos Funcionais

A aplicação servidor conterá diversos requisitos funcionais, que definem os requisitos que o

sistema deverá respeitar.

RF01 Receber solicitações das aplicações;

RF02 Processar as informações dos usuários conforme forem recebidas;

RF03 Gravar na tabela de histórico a posição recebida do usuário;

RF04 Comunicar-se com o WebService do Facebook para recuperação de dados

pertinentes ao usuário;

RF05 Armazenar informações de filtros sobre quais amigos podem ver sua posição atual

ou o histórico do usuário;

RF06 Permitir a um usuário bloquear outro;

RF07 Obter informações sobre interesses dos usuários a partir do Facebook, salvando-as

no Banco de Dados.

3.3.4 Regras de Negócio

Regra 1: Toda informação pertinente a algum usuário será excluída após a remoção do

mesmo;

Page 53: Área de Sistemas de Informação por Thiago Luiz Prux ...siaibib01.univali.br/pdf/Thiago Luiz Prux.pdf · Ranking das redes sociais em maio de 2013 ... 2.1 MÍDIAS SOCIAIS ... O

52

Regra 2: Todas as solicitações devem ser recebidas utilizando os padrões REST;

Regra 3: As comunicações com a aplicação servidora devem ser seguras, utilizando-se do

protocolo HTTPS;

Regra 4: Nenhuma senha deve ser armazenada no servidor;

Regra 5: Qualquer usuário que tenha sido bloqueado por outro não conseguirá visualizar

quem lhe bloqueou.

3.3.5 Casos de Uso

Os casos de uso da Figura 16 definem o que a aplicação cliente poderá fazer perante o

WebService

Figura 16. Casos de uso do WebService

Caso de uso “Verificar o status do servidor”: Aplicação servidor deverá responder para a

aplicação cliente seu estado atual, informando se ele está ativo.

Caso de uso “Autenticar no sistema”: Após o usuário enviar suas credencias, a API do

Facebook tentará autenticar os dados inseridos.

Page 54: Área de Sistemas de Informação por Thiago Luiz Prux ...siaibib01.univali.br/pdf/Thiago Luiz Prux.pdf · Ranking das redes sociais em maio de 2013 ... 2.1 MÍDIAS SOCIAIS ... O

53

Caso de uso “Gravar informações através do servidor no banco de dados”: O aplicativo

terá a obrigação de disponibilizar para o WebService as informações que deverão ser

armazenadas no banco de dados, sendo que o usuário somente poderá alterar suas

informações.

Caso de uso “Solicitar informações do servidor”: O WebService será responsável por

solicitar as informações necessárias para seu bom funcionamento, como informações de

locais de amigos e suas preferências.

3.3.6 Banco de Dados

A aplicação servidora utiliza-se do SGDB (Sistema de Gerenciamento de Banco de Dados)

MySQL. O modelo do banco de dados é relativamente simples, e grande parte da informação será

retirada da integração do sistema com o Facebook. É necessário armazenar somente informações

como histórico, interesses dos utilizadores a partir do Facebook para melhor desempenho da aplicação

servidora, as amizades internas do sistema, e dados de preferências do usuário, como suas

configurações da conta do sistema. Na Figura 17 é observado o modelo do banco de dados.

Figura 17. Esquema do banco de dados

Page 55: Área de Sistemas de Informação por Thiago Luiz Prux ...siaibib01.univali.br/pdf/Thiago Luiz Prux.pdf · Ranking das redes sociais em maio de 2013 ... 2.1 MÍDIAS SOCIAIS ... O

54

As tabelas do sistema permitem armazenar as informações relativas ao sistema, como as

informações dos utilizadores do sistema, suas preferências, amizades, interesses, e dados de histórico.

O dicionário de dados pode ser visto no APÊNDICE B.

3.4 Testes

Os testes foram realizados com um grupo de 5 pessoas aleatórias de habilidades e

conhecimentos distintos, onde foram instalado o aplicativo em seus respectivos aparelhos móveis, e

então iniciado os testes. Os utilizadores tiveram que responder um questionário após a utilização da

aplicação cliente.

3.4.1 Análise dos Testes

O tempo médio dos testes foi de 15 minutos por usuário, e a idade média de 25 anos. A partir

das respostas do questionário foi possível verificar que a maioria dos usuários que testaram o sistema

possuíam noção intermediária sobre o SO Android, e também o mesmo nível de conhecimento sobre

redes sociais. Os quesitos mais verificados foram a usabilidade e a funcionalidade do sistema, porém,

o item mais criticado foi a confiabilidade, sendo que sistema ocasionalmente apresentava problemas,

onde era necessário reiniciá-lo.

Conforme pode ser observado na Figura 18, o fator que mais impactou o desempenho dos

testes, foi a falta de documentação do sistema, seguido pela falta de tempo dos utilizadores.

Figura 18. Resultado sobre quais recursos impactado no desempenho dos testes.

Page 56: Área de Sistemas de Informação por Thiago Luiz Prux ...siaibib01.univali.br/pdf/Thiago Luiz Prux.pdf · Ranking das redes sociais em maio de 2013 ... 2.1 MÍDIAS SOCIAIS ... O

55

A navegação pelo sistema foi avaliada como fácil e prática pelos testadores, como pode ser

visto na Figura 19, sendo somente um utilizador que informou que “certos recursos estavam um pouco

escondidos”, tendo que entrar em outras telas para chegar à tela desejada.

Figura 19. Resultados sobre a navegação do sistema.

A utilização do sistema gerou dúvidas sobre algumas das funcionalidades, sendo estas: o botão

para aceitar novos amigos, na qual o utilizador não identificou que podia pressioná-lo; e a barra para

alterar a distância - localizada nas configurações gerais - onde é configurado a distância em que

podem ser encontradas pessoas com afinidades semelhantes. O resultado do questionário sobre as

dúvidas de utilização do sistema pode ser conferido na Figura 20.

Figura 20. Resultados das dúvidas de utilização do sistema.

Foram respondidas vinte perguntas no total, onde o restante pode ser encontrado no

APÊNDICE C.

Page 57: Área de Sistemas de Informação por Thiago Luiz Prux ...siaibib01.univali.br/pdf/Thiago Luiz Prux.pdf · Ranking das redes sociais em maio de 2013 ... 2.1 MÍDIAS SOCIAIS ... O

56

4 CONCLUSÕES

Ao longo deste projeto, evidenciou-se que a utilização de uma rede social com geolocalização,

junto com a integração com o Facebook - que contém diversas informações de várias pessoas -, pode

beneficiar os utilizadores, de forma que é possível obter informações recuperadas através do meio

virtual, e trazer para o meio real instantaneamente, trazendo a possibilidade de conseguir informações

destas antes mesmo de conhece-las pessoalmente.

Os testes realizados demonstraram que a aplicação não é madura o suficiente para ser

disponibilizada ao público em geral, devido à falta de documentação e reinicializações inesperadas

do aplicativo, apresentando bugs que ainda precisam ser corrigidos. Porém, este projeto agregou

diversos conhecimentos teóricos e práticos para a formação acadêmica, dando uma excelente base

para o desenvolvimento de aplicativos móveis, que está em constante crescimento no mercado.

O sistema foi desenvolvido pensando também na boa usabilidade, oferecendo aos utilizadores

maior facilidade de uso, que foi observado nos resultados dos testes, onde os usuários relataram fácil

utilização do sistema. Pode-se citar, por exemplo, o menu inicial que é a tela principal do sistema e

que agrega todas as outras funcionalidades em apenas uma tela, permitindo que o usuário navegue

entre os recursos oferecidos a ele sem muita dificuldade.

Mesmo contendo poucos testes realizados, notou-se a importância dos mesmos para avaliar a

qualidade do sistema, permitindo identificar se ocorreu algum problema, e quais foram estes. Foi

possível também a obtenção de dados para melhorar a qualidade do sistema, sabendo quais recursos

apresentavam maiores problemas.

O projeto necessitou do desenvolvimento de duas aplicações para atender todas as

necessidades requisitadas, sendo desenvolvido uma aplicação cliente, que é a aplicação executada no

dispositivo móvel, contendo a interface com o usuário, e a aplicação servidor, que atende as

requisições enviadas a partir do dispositivo móvel, e fazendo a integração e o processamento dos

dados fornecidos pelo usuário.

O trabalho levou em consideração a segurança dos dados, sendo que todos os dados são

criptografados antes de serem transmitidos através da internet, utilizando-se do protocolo HTTPS,

seja entre a comunicação entre a aplicação cliente e a aplicação servidora, quanto a comunicação com

outros webservices utilizados, como do Facebook e Google, trazendo uma maior privacidade ao

usuário.

Page 58: Área de Sistemas de Informação por Thiago Luiz Prux ...siaibib01.univali.br/pdf/Thiago Luiz Prux.pdf · Ranking das redes sociais em maio de 2013 ... 2.1 MÍDIAS SOCIAIS ... O

57

Este projeto poderá ser utilizado para o desenvolvimento de uma rede social baseada em

geolocalização, utilizando de conhecimentos adquiridos na criação deste protótipo que contemple

diversas outras funcionalidades que poderiam no futuro estar presente em outros sistemas, como a

opção de conversar através da aplicação cliente com outros usuários que estejam online no sistema,

ou a possibilidade de adicionar outros métodos de autenticação como via Google+ ou Twitter,

trazendo maior liberdade para os usuários utilizarem suas redes sociais preferidas, e agregando assim

mais informações sobre os utilizadores, além de aumentar a base de dados de usuários.

Para trabalhos futuros podem ser implementadas novas funcionalidades ao sistema, como

rotas alternativas entre os usuários (atualmente somente é possível traçar a rota como se estivéssemos

em um carro, porém também poderia ser possível traçar a rota a pé), ou a possibilidade de traçar

caminhos dentro de um mesmo local, como um show ou uma universidade (funcionalidade não

disponível no Google Maps atualmente).

Também como trabalhos futuros, atualmente a busca por afinidades é pelo nome exato da

mesma, podendo futuramente ser pesquisados por resultados parecidos, como por exemplo “Futebol”

e “Football”. Poderá também ser implementado um sistema que permita o diálogo entre os usuários,

oferecendo a possibilidade de iniciar conversas com pessoas que ainda não sejam conhecidas do

usuário, mas que possuam afinidades em comum.

Page 59: Área de Sistemas de Informação por Thiago Luiz Prux ...siaibib01.univali.br/pdf/Thiago Luiz Prux.pdf · Ranking das redes sociais em maio de 2013 ... 2.1 MÍDIAS SOCIAIS ... O

REFERÊNCIAS BIBLIOGRÁFICAS

ALTERMANN, Dennis. Qual a diferença entre redes sociais e mídias sociais?. 2010. Disponível

em: <http://www.midiatismo.com.br/comunicacao-digital/qual-a-diferenca-entre-redes-sociais-e-

midias-sociais>. Acesso em: 28 jun. 2013.

ANDROID DEBUG BRIDGE. 2011. Disponível em:

<http://developer.android.com/guide/developing/tools/adb.html>. Acesso em: 1 jul. 2013.

ANDROID DEVELOPERS. Using the Android Emulator. 2011. Disponível em:

<http://developer.android.com/guide/developing/devices/emulator.html>. Acesso em: 1 jul. 2013.

ANDROID DEVELOPERS. 2013. Disponível em: <http://android-developers.blogspot.com/>.

Acesso em: 1 maio. 2013.

API DO GOOGLE PLACES. 2013. Disponível em:

<https://developers.google.com/places/documentation/?hl=pt-br>. Acesso em: 1 maio. 2013.

BARBIAN, Eduardo. O que são sistemas de navegação por satélite?. 2013. Disponível em:

<http://www.oficinadanet.com.br/post/10580-sistemas-de-navegacao>. Acesso em: 13 maio. 2013.

BETZ, John. W. et al. Understanding GPS: Principles and Applications. 2.ed. Norwood: Artech

House, 2006.

BRAIN, Marshall; HARRIS, Tom. Como funcionam os receptores GPS. 2008. Disponível em:

<http://informatica.hsw.uol.com.br/receptores-gps.htm>. Acesso em: 13 maio. 2013.

BRAY, Tim. Multitasking the Android Way. 2010. Disponível em: <http://android-

developers.blogspot.com/2010/04/multitasking-android-way.html>. Acesso em: 1 jul. 2013.

BRIGHTKITE. 2011. Disponível em: <http://brightkite.com/>. Acesso em: 2 jul. 2011.

BURKE, Bill. RESTful Java with JAX-RS. 2.ed. Sebastopol: O'Reilly Media, 2010.

CLOUD N SCI.FI. Heatmap on Google Maps. 2013. Disponível em:

<http://cloudnsci.fi/wiki/index.php?n=HeatMiner.HeatmapOnGoogleMaps>. Acesso em: 26 maio.

2013.

COOPER, Colin. Android Supported Language and Locales. 2011. Disponível em:

<http://colincooper.net/?p=238>. Acesso em: 13 dez. 2011.

DANTAS, Tiago. Comunidade e Sociedade. 2009. Disponível em:

<http://www.mundoeducacao.com.br/sociologia/comunidade-sociedade.htm>. Acesso em: 1 jul.

2013.

DEBIASI, Adam Esteves. Social Media S/A. 2010. Disponível em:

http://socialmediasa.com.br/2010/04/08/saiba-qual-foi-a-primeira-rede-social-da-internet/. Acesso

em: 8 de 12 de 2011.

Page 60: Área de Sistemas de Informação por Thiago Luiz Prux ...siaibib01.univali.br/pdf/Thiago Luiz Prux.pdf · Ranking das redes sociais em maio de 2013 ... 2.1 MÍDIAS SOCIAIS ... O

59

REDE SOCIAL. In: DICIONÁRIO universal da língua portuguesa. Priberam Informática, 1999-

2011. Disponível em: <http://www.priberam.pt/dlpo/default.aspx?pal=rede%20social>. Acesso em:

1 jul. 2011.

EBIZMBA. Top 15 Most Popular Social Networking Websites | May 2013. 2013. Disponível

em: <http://www.ebizmba.com/articles/social-networking-websites>. Acesso em: 12 maio. 2013.

FACEBOOK. Key Facts. 2013. Disponível em: <http://newsroom.fb.com/Key-Facts>. Acesso em:

12 maio. 2013.

FACEBOOK DEVELOPERS. Graph API. 2013. Disponível em:

<https://developers.facebook.com/docs/reference/api/>. Acesso em: 1 jul. 2013.

FACEBOOK PERMISSIONS. Permissions. 2013. Disponível em:

<https://developers.facebook.com/docs/authentication/permissions/>. Acesso em: 30 jun. 2013.

FLORIN. New Android phones from HTC, Samsung, LG, Motorola and Sony Ericsson will

get software upgrades for 18 months after launch. 2011. Disponível em:

<http://www.unwiredview.com/2011/05/10/new-android-phones-from-htc-samsung-lg-motorola-

and-sony-ericsson-will-get-software-upgrades-for-18-months-after-launch/>. Acesso em: 28 jun.

2013.

FOURSQUARE. 2013. Disponível em: <http://foursquare.com>. Acesso em: 2 jul. 2013.

GHEAT. 2011. Disponível em: <http://code.google.com/p/gheat/>. Acesso em: 3 jul. 2013.

GMAP. 2011. Disponível em: <http://diffent.com/google_maps_color_contour_overlay>. Acesso

em: 3 jul. 2011.

GMHEATMAP. 2011. Disponível em: <http://maps.forum.nu/gm_heatmap.html>. Acesso em: 3

jul. 2011.

GOOGLE. orkut - Sobre. 2013. Disponível em: <http://www.orkut.com/About?hl=pt>. Acesso

em: 18 jun. 2013.

GOOGLE GEOCODING. Google Developers. 2013. Disponível em:

<https://developers.google.com/maps/documentation/geocoding/>. Acesso em: 1 jul. 2013.

GOOGLE MAPS. Google Developers. 2013. Disponível em:

<https://developers.google.com/maps/>. Acesso em: 28 junho. 2013.

GOOGLE MAPS API. Web Services 2013. Disponível em:

<https://developers.google.com/maps/documentation/geocoding/>. Acesso em: 1 maio. 2013.

GOOGLE TRENDS. 2011. Disponível em:

<http://www.google.com/trends?q=orkut&geo=bra&sa=N>. Acesso em: 02 jun. 2011.

Page 61: Área de Sistemas de Informação por Thiago Luiz Prux ...siaibib01.univali.br/pdf/Thiago Luiz Prux.pdf · Ranking das redes sociais em maio de 2013 ... 2.1 MÍDIAS SOCIAIS ... O

60

GSON. 2011. Disponível em: <https://sites.google.com/site/gson/Home>. Acesso em: 1 maio.

2013.

GSON USER GUIDE. 2011. Disponível em: <https://sites.google.com/site/gson/gson-user-guide>.

Acesso em: 1 maio. 2013.

HEATMAPAPI. HeatMapAPI. 2012. Disponível em: <http://www.heatmapapi.com/>. Acesso em:

1 jul. 2013.

HTC. HTC - Press - 2008 - T-Mobile Unveils the T-Mobile G1 — the First Phone Powered by

Android. 2008. Disponível em HTC:

<http://www.htc.com/www/press.aspx?id=66338&lang=1033>. Acesso em: 1 jul. 2013.

INFORMÁTICA AGORA. A Importância das Redes Sociais. 2011. Disponível em:

<http://www.informaticaagora.com.br/internet/a-importancia-das-redes-sociais>. Acesso em: 2 jul.

2013.

INTRODUCTION. 2011. Disponível em:

<http://developer.android.com/guide/developing/index.html>. Acesso em: 1 jul. 2013.

LICENSES. 2013. Disponível em: <http://source.android.com/source/licenses.html>. Acesso em: 2

jun. 2013.

Linkedin. About Us. 2011. Disponível em: <http://press.linkedin.com/about>. Acesso em: 1 jun.

2013.

LOOPT. 2011. Disponível em: <https://www.loopt.com/>. Acesso em: 2 jul. 2011.

Memruk, Ivan. Android Tricks: Multitouch AND 1.5 Support, Same App. 2010. Disponível em:

<http://mindtherobot.com/blog/518/android-tricks-multitouch-and-1-5-support-same-app/>. Acesso

em: 13 dez. 2011.

MORIMOTO, Carlos. E. Hardware.com.br. 2009. Disponível em:

<http://www.hardware.com.br/livros/smartphones/entendendo-gps.html>. Acesso em: 1 jul. 2013.

MORRIL, Dan. Android Developers Blog: Announcing the Android 1.0 SDK, release 1. 2008.

Disponível em: <http://android-developers.blogspot.com/2008/09/announcing-android-10-sdk-

release-1.html>. Acesso em: 2 jul. 2013.

PANSARI, Ankur. Blog do desenvolvedor. 2011. Disponível em:

<https://developers.facebook.com/blog/post/500/>. Acesso em: 1 jul. 2013.

PROTALISNK, Emil. Facebook passes 1.06 billion monthly active users, 680 million mobile

users, and 618 million daily users. 2013. Disponível em:

<http://thenextweb.com/facebook/2013/01/30/facebook-passes-1-06-billion-monthly-active-users-

680-million-mobile-users-and-618-million-daily-users/>. Acesso em: 13 maio. 2013.

Page 62: Área de Sistemas de Informação por Thiago Luiz Prux ...siaibib01.univali.br/pdf/Thiago Luiz Prux.pdf · Ranking das redes sociais em maio de 2013 ... 2.1 MÍDIAS SOCIAIS ... O

61

REUTERS. Vendas de celulares com GPS vão subir 34%. 2009. Disponível em:

<http://info.abril.com.br/noticias/mercado/vendas-de-celulares-com-gps-vao-subir-34-30072009-

4.shl>. Acesso em: 1 jul. 2013.

.

Ribeiro, Danilo Chagas. Como funciona o Sistema GPS? 2008. Disponível em:

<http://www.popa.com.br/_2008/cronicas/gps/funcionamento_do_gps.htm>. Acesso em: 13 maio.

2013.

ROUSE, Margaret. Whatis.com. 2005. Disponível em:

<http://whatis.techtarget.com/definition/framework>. Acesso em: 12 maio. 2013.

SANTANA, Ana Lucia. História do Facebook. 2011. Disponível em:

<http://www.infoescola.com/internet/historia-do-facebook/>. Acesso em: 3 jul. 2013.

SCHAPSIS, Claudio. Location Based Social Networks, Location Based Social apps and games -

Links. 2009. Disponível em: <http://bdnooz.com/lbsn-location-based-social-networking-links/>.

Acesso em: 28 jun. 2013.

SMITH, Tony. Rivals routed by Apple, Google smartphone onslaught. 2012. Disponível em:

<http://www.channelregister.co.uk/2012/08/08/apple_google_dominate_q2_2012_smartphone_ship

ments/>. Acesso em: 12 maio. 2013.

TECHTUDO. MySpace. 2011. Disponível em: <http://www.techtudo.com.br/tudo-

sobre/myspace.html>. Acesso em: 13 jun. 2013.

TELLES, Andre. Definição de Rede Social e Mídia Social. 2010. Disponível em:

<http://www.midiatismo.com.br/comunicacao-digital/definicao-de-rede-social-e-midia-social>.

Acesso em: 8 jun. 2013.

TWITTER. Twitter is the best way to discover what’s new in your world. 2011 Disponível em:

<http://twitter.com/about>. Acesso em: 13 jun. 2013.

VERDE, Amodiovalerio. Facebook Demographics Worldwide. 2011. Disponível em:

<http://amover.wordpress.com/2011/01/17/facebook-demographics-worldwide/>. Acesso em: 2

maio. 2013.

Page 63: Área de Sistemas de Informação por Thiago Luiz Prux ...siaibib01.univali.br/pdf/Thiago Luiz Prux.pdf · Ranking das redes sociais em maio de 2013 ... 2.1 MÍDIAS SOCIAIS ... O

GLOSSÁRIO

Android Sistema Operacional código aberto, desenvolvido pela Google para sistemas

móveis como smartphones e tablets.

API Conjunto de ferramentas e/ou bibliotecas que permitem a integração com

outros sistemas.

Client Aplicativo que estabelece uma conexão a um servidor que esteja aguardando

conexões.

Eclipse Ferramenta open source para desenvolvimento de softwares com editor Java e com ótimo suporte a integração do Android SDK Tools.

Facebook Rede social muito difundida no mundo, inclusive no Brasil, que disponibiliza

de ferramentas que podem ser integrada em outros sites ou aplicativos.

LoreTrack Nome do sistema que está sendo desenvolvido.

MySQL Banco de dados open source utilizado desde pequenas até grandes aplicações.

Netbeans Ferramenta open source para desenvolvimento de softwares com editor Java.

Tablets Computadores portáteis com tamanho e capacidade de processamento menor

do que notebooks. Não possui teclado ou mouse, e com a interface de entrada

toda baseada em toque na tela.

Triangularização Tipo de localização que se utiliza das antenas de celulares ao invés de

sistemas GPS para determinar a posição atual de algum aparelho móvel.

Trilateração Princípio matemático usado nos sistemas de posicionamento global.

Page 64: Área de Sistemas de Informação por Thiago Luiz Prux ...siaibib01.univali.br/pdf/Thiago Luiz Prux.pdf · Ranking das redes sociais em maio de 2013 ... 2.1 MÍDIAS SOCIAIS ... O

63

APÊNDICE A. QUESTIONÁRIO DE TESTES

Figura 21. Primeira página do questionário de testes.

Page 65: Área de Sistemas de Informação por Thiago Luiz Prux ...siaibib01.univali.br/pdf/Thiago Luiz Prux.pdf · Ranking das redes sociais em maio de 2013 ... 2.1 MÍDIAS SOCIAIS ... O

64

Figura 22. Segunda página do questionário de testes.

Page 66: Área de Sistemas de Informação por Thiago Luiz Prux ...siaibib01.univali.br/pdf/Thiago Luiz Prux.pdf · Ranking das redes sociais em maio de 2013 ... 2.1 MÍDIAS SOCIAIS ... O

65

Figura 23. Terceira página do questionário de testes.

Page 67: Área de Sistemas de Informação por Thiago Luiz Prux ...siaibib01.univali.br/pdf/Thiago Luiz Prux.pdf · Ranking das redes sociais em maio de 2013 ... 2.1 MÍDIAS SOCIAIS ... O

66

Figura 24. Última página do questionário de testes.

Page 68: Área de Sistemas de Informação por Thiago Luiz Prux ...siaibib01.univali.br/pdf/Thiago Luiz Prux.pdf · Ranking das redes sociais em maio de 2013 ... 2.1 MÍDIAS SOCIAIS ... O

67

APÊNDICE B. DICIONÁRIO DE DADOS

Tabela 4. Dicionário de dados da tabela usuarios

usuarios - permite guardar informações do usuário, recuperadas do Facebook, e guardar

informações da posição atual do usuário.

Campo Descrição Tipo Tam

PK idfacebook Id do Facebook do usuário VARCHAR 255

nomeUsuario Nome do usuário conforme cadastrado no

Facebook VARCHAR 255

avatar Endereço URL para a imagem de avatar do

usuário VARCHAR 5000

sexo O sexo do usuário, “M” ou “F” VARCHAR 1

nascimento O dia de nascimento do usuário DATETIME -

access_token Token de acesso do usuário contendo as

permissões de acesso VARCHAR 255

horaAtualização Hora da última requisição do usuário ao

WebService DATETIME -

FK locais_idlocal Id do local atual do usuário cadastrado na tabela

“locais” INT -

horaPosicao Hora que a última posição do usuário foi obtida DATETIME -

Tabela 5. Dicionário de dados da tabela historicos

historicos - permite ao sistema armazenar todos os locais que o usuário já esteve.

Campo Descrição Tipo Tam

PK idHistorico Identificação do histórico salvo na tabela INT -

FK facebook_idfacebook Id do usuário com a posição do histórico VARCHAR 255

FK locais_idLocal Id do local atual do usuário cadastrado na

tabela “locais” INT -

horaPosicao Hora que a última posição do usuário foi

obtida DATETIME -

Page 69: Área de Sistemas de Informação por Thiago Luiz Prux ...siaibib01.univali.br/pdf/Thiago Luiz Prux.pdf · Ranking das redes sociais em maio de 2013 ... 2.1 MÍDIAS SOCIAIS ... O

68

Tabela 6. Dicionário de dados da tabela amizades

amizades - define quais relações os usuários possuem uns com os outros, permitindo o sistema

reconhecer quem terá acesso às informações de algum usuário.

Campo Descrição Tipo Tam

PK

FK idFacebookUser Id do Facebook do usuário do sistema VARCHAR 255

PK

FK idFacebookAmigo

Id do Facebook do amigo, com quem as opções

de privacidades são aplicada VARCHAR 255

verAtual Permite a visualização da posição do usuário

por seu amigo BOOLEAN -

verHistorico Permite a visualização do histórico do usuário

por seu amigo BOOLEAN -

pendente Convite de amizade pendente, aguardando

amigo aceitar BOOLEAN -

ignora

Usuário explicitamente bloqueou outro usuário,

não permitindo ao segundo visualizar suas

informações

BOOLEAN -

Tabela 7. Dicionário de dados da tabela interesses_fb_has_facebook

interesses_fb_has_facebook - permite relacionar os interesses do usuário com os interesses

cadastrados no Facebook.

Campo Descrição Tipo Tam

PK

FK interesses_fb_idinteresses_fb

Id do interesse que define a ligação

de algum interesse com um usuário VARCHAR 255

PK

FK facebook_idfacebook

Id do usuário com quem está o

interesse vinculado VARCHAR 255

Page 70: Área de Sistemas de Informação por Thiago Luiz Prux ...siaibib01.univali.br/pdf/Thiago Luiz Prux.pdf · Ranking das redes sociais em maio de 2013 ... 2.1 MÍDIAS SOCIAIS ... O

69

Tabela 8. Dicionário de dados da tabela interesses_fb

interesses_fb - mantém as informações dos interesses cadastrados no Facebook, contendo sua

identificação única, seu nome e sua categoria.

Campo Descrição Tipo Tam

PK idinteresses_fb Id do interesse, conforme cadastrado no

Facebook VARCHAR 255

nome Nome do interesse como pode ser

encontrado no Facebook VARCHAR 255

categoria Categoria do interesse igual cadastro no

Facebook VARCHAR 255

Tabela 9. Dicionário de dados da tabela amizades_fb

amizades_fb - salva as informações de quem são os amigos do Facebook de cada usuário, buscando

estas informações através do WebService do Facebook.

Campo Descrição Tipo Tam

PK

FK Idfacebook Id do usuário utilizador do sistema VARCHAR 255

PK

FK idfacebookFriend

Id do amigo do usuário dentro da rede social

Facebook VARCHAR 255

nome Nome do amigo conforme cadastrado no

Facebook VARCHAR 255

photo URL de onde pode ser encontrada uma

cópia da foto de perfil do amigo do usuário VARCHAR 500

Tabela 10. Dicionário de dados da tabela locais

locais - possui todos os locais salvos pelos usuários, e sua respectiva posição.

Campo Descrição Tipo Tam

PK idLocal Id do local, gerado automaticamente pelo

banco de dados INT -

nome Nome do local em que o usuário esteve VARCHAR 255

posicao Coordenadas geográficas do respectivo local

cadastrado POINT -

Page 71: Área de Sistemas de Informação por Thiago Luiz Prux ...siaibib01.univali.br/pdf/Thiago Luiz Prux.pdf · Ranking das redes sociais em maio de 2013 ... 2.1 MÍDIAS SOCIAIS ... O

70

Tabela 11. Dicionário de dados da tabela preferencias

preferencias - define as preferências pessoais de cada usuário, como os avisos que ele receberá –

uso futuro –, se ele está em modo invisível ou se está bloqueando o histórico de suas posições.

Campo Descrição Tipo Tam

PK

FK facebook_idfacebook

Id do Facebook do usuário cadastrado no

sistema VARCHAR 255

avisoPreferencias

Configuração do sistema que define se o

usuário receberá alguma notificação caso

alguém de sua preferência esteja próximo.

Para uso futuro

BOOLEAN -

avisoNovosAmigos

Configuração do sistema que define se o

usuário receberá alguma notificação caso

alguém o adicione à sua lista de amigos.

Para uso futuro

BOOLEAN -

modoInvisivel Define se o usuário está em modo invisível,

não permitindo mostrar sua posição atual BOOLEAN -

histórico Define a configuração se o histórico do

usuário deve ser salvo no banco de dados BOOLEAN -

Tabela 12. Views do sistema

As views, criadas com o prefixo v_, servem para facilitar a busca por informações entre várias

tabelas.

View Descrição

v_amizades Recupera informações de todas as amizades do sistema

v_localHistorico Ajuda na obtenção de dados do histórico do usuário

v_historicoAmigo Recupera informações sobre o histórico de determinado amigo do

usuário

v_pedidosAmizadePendentes Auxilia na recuperação de informações de todos os pedidos de

amizades feitos para o usuário

v_localAtualAmigos Colabora para a obtenção das informações do local atual dos

amigos do usuário

v_interessesUsuário Recupera uma lista contendo todos os usuários e seus respectivos

interesses

Page 72: Área de Sistemas de Informação por Thiago Luiz Prux ...siaibib01.univali.br/pdf/Thiago Luiz Prux.pdf · Ranking das redes sociais em maio de 2013 ... 2.1 MÍDIAS SOCIAIS ... O

71

v_amizadesFacebook Obtém informações sobre todos os amigos do usuário na rede

social Facebook

v_localAtualAmigosFacebook

Retorna uma lista com todos os locais dos amigos atuais do

usuário, que possuem o sistema e são amigos do Facebook, porém

não do sistema

Page 73: Área de Sistemas de Informação por Thiago Luiz Prux ...siaibib01.univali.br/pdf/Thiago Luiz Prux.pdf · Ranking das redes sociais em maio de 2013 ... 2.1 MÍDIAS SOCIAIS ... O

72

APÊNDICE C. RESULTADOS DO QUESTIONÁRIO

Figura 25. Perguntas um a quatro.

Page 74: Área de Sistemas de Informação por Thiago Luiz Prux ...siaibib01.univali.br/pdf/Thiago Luiz Prux.pdf · Ranking das redes sociais em maio de 2013 ... 2.1 MÍDIAS SOCIAIS ... O

73

Figura 26. Perguntas cinco e seis.

Figura 27. Perguntas sete e oito

Page 75: Área de Sistemas de Informação por Thiago Luiz Prux ...siaibib01.univali.br/pdf/Thiago Luiz Prux.pdf · Ranking das redes sociais em maio de 2013 ... 2.1 MÍDIAS SOCIAIS ... O

74

Figura 28. Perguntas nove e dez

Page 76: Área de Sistemas de Informação por Thiago Luiz Prux ...siaibib01.univali.br/pdf/Thiago Luiz Prux.pdf · Ranking das redes sociais em maio de 2013 ... 2.1 MÍDIAS SOCIAIS ... O

75

Figura 29. Perguntas onze a treze.

Page 77: Área de Sistemas de Informação por Thiago Luiz Prux ...siaibib01.univali.br/pdf/Thiago Luiz Prux.pdf · Ranking das redes sociais em maio de 2013 ... 2.1 MÍDIAS SOCIAIS ... O

76

Figura 30. Perguntas quatorze a dezesseis.

Page 78: Área de Sistemas de Informação por Thiago Luiz Prux ...siaibib01.univali.br/pdf/Thiago Luiz Prux.pdf · Ranking das redes sociais em maio de 2013 ... 2.1 MÍDIAS SOCIAIS ... O

77

Figura 31. Perguntas dezessete a vinte.

Page 79: Área de Sistemas de Informação por Thiago Luiz Prux ...siaibib01.univali.br/pdf/Thiago Luiz Prux.pdf · Ranking das redes sociais em maio de 2013 ... 2.1 MÍDIAS SOCIAIS ... O

78

ANEXO A. INFOGRÁFICO

Figura 32. Infográfico 1 de versões do Android

Fonte: (Haslam, 2013)

Page 80: Área de Sistemas de Informação por Thiago Luiz Prux ...siaibib01.univali.br/pdf/Thiago Luiz Prux.pdf · Ranking das redes sociais em maio de 2013 ... 2.1 MÍDIAS SOCIAIS ... O

79

Figura 33. Infográfico 2 de versões do Android

Fonte: (Haslam, 2013)

Page 81: Área de Sistemas de Informação por Thiago Luiz Prux ...siaibib01.univali.br/pdf/Thiago Luiz Prux.pdf · Ranking das redes sociais em maio de 2013 ... 2.1 MÍDIAS SOCIAIS ... O

80

Figura 34. Infográfico 3 de versões do Android

Fonte: (Haslam, 2013)