centro estadual de educação tecnológica paula souza

Propaganda
CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICA
PAULA SOUZA
FACULDADE DE TECNOLOGIA DE LINS PROF. ANTÔNIO SEABRA
CURSO SUPERIOR DE TECNOLOGIA EM BANCO DE DADOS
DIOGO OLIVA BERTIN
LEONARDO AUDI BARROS
APLICAÇÃO PARA DISPOSITIVO MÓVEL COM INTEGRAÇÃO AO
FACEBOOK PARA IDENTIFICAÇÃO DE PONTOS TURÍSTICOS
LINS/SP
2° SEMESTRE/2013
CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICA
PAULA SOUZA
FACULDADE DE TECNOLOGIA DE LINS PROF. ANTÔNIO SEABRA
CURSO SUPERIOR DE TECNOLOGIA EM BANCO DE DADOS
DIOGO OLIVA BERTIN
LEONARDO AUDI BARROS
APLICAÇÃO PARA DISPOSITIVO MÓVEL COM INTEGRAÇÃO AO
FACEBOOK PARA IDENTIFICAÇÃO DE PONTOS TURÍSTICOS
Trabalho de Conclusão de Curso apresentado à
Faculdade de Tecnologia de Lins para obtenção
do Título de Tecnólogo em Banco de Dados.
Orientador: Prof. Me. Anderson Pazin.
LINS/SP
2° SEMESTRE/2013
DEDICATÓRIA
Em primeiro lugar, dedicamos este trabalho a
Deus, por esta grande conquista e pela sua ajuda
nos momentos de grandes dificuldades. Além
disso, dedicamos a nossa família que nos
incentivou e motivou a seguir sempre em frente.
Diogo Oliva Bertin
Leonardo Audi Barros
AGRADECIMENTO
Neste momento de grande importância em nossas vidas, não podemos deixar
de expressar nossos agradecimentos às pessoas que de alguma maneira
contribuíram para que esse sonho fosse realizado.
Agradecemos especialmente ao nosso orientador, Prof. Me. Anderson Pazin,
que sempre nos ajudou e esteve presente em todas as vezes que precisamos.
Agradecemos ao professor Fábio Lucio Meira, que nos ajudou a florescer a
ideia deste trabalho.
Aos professores(as) Adriana de Bortoli, Alexandre Ponce e Luciane Noronha
pela correção do nosso trabalho e pela grande motivação e incentivo para a
finalização deste.
E por fim, aos nossos amigos de turma pela amizade, ajuda e confiança.
“Paciência e perseverança tem o efeito
mágico
de
fazer
as
dificuldades
desaparecerem e os obstáculos sumirem.”
John Quincy Adams
RESUMO
Pesquisas apontam que a Copa do Mundo de 2014 trará ao Brasil um grande
número de turistas, além dos próprios brasileiros que irão para as cidades sedes dos
jogos para prestigiar este grande evento mundial. Dessa maneira, está acontecendo
também a grande expansão na venda de smartphones, cujo número de aparelhos
deverá ultrapassar, no final de 2013, os 7 bilhões de linhas ativas. Este fato deve-se
a necessidade dos consumidores em navegar na Internet, acessar aplicativos e
utilizar os diversos serviços disponíveis nestes dispositivos. Dentre as aplicações
mais utilizadas em smartphones e, também, acessível de qualquer dispositivo com
acesso à Internet temos as redes sociais, que são atualmente os sites mais
acessados. Sendo assim, a finalidade deste trabalho é o desenvolvimento de um
aplicativo para a plataforma Android, que apresente os pontos turísticos das cidades
sedes da Copa do Mundo de 2014 e que seja capaz de se comunicar com a API do
Google Maps e do Facebook e com um servidor remoto para armazenar comentários
dos utilizadores desse aplicativo. Para a implementação do aplicativo proposto foram
utilizados a linguagem de programação Java, banco de dados SQLite e MySQL e a
API do Google Maps e do Facebook.
Palavras-chave: dispositivos móveis, Android, redes sociais, Java, API.
ABSTRACT
Research indicates that the World Cup 2014 in Brazil will bring a large number of
tourists, besides the Brazilians themselves who will go to the headquarters of the
games cities to honor this great world event. Thus, it is also happening in the
booming smartphone sales, the number of devices expected to exceed, in late 2013,
the 7 billion active lines. This fact is due to the need of consumers to surf the
Internet, access applications and use the various services available on these
devices. Among the most used applications on smartphones and also accessible
from any device with Internet access have social networks, which are currently the
most accessed sites. Thus, the purpose of this work is to develop an application for
the Android platform, presenting the sights of the host cities of the 2014 World Cup
and is able to communicate with the Google Maps API and Facebook and a remote
server to store user comments that application. To implement the proposed
application to the Java programming language, database SQLite and MySQL and
Google Maps API and Facebook were used.
Keywords: mobile devices, Android, social networking, Java API.
LISTA DE ILUSTRAÇÕES
Figura 1.1 – Arquitetura Android. .............................................................................. 20
Figura 1.2 – Objeto JSON. ........................................................................................ 26
Figura 1.3 – Objeto JSON. ........................................................................................ 26
Figura 1.4 – Array JSON. .......................................................................................... 26
Figura 1.5 – Valor JSON. .......................................................................................... 27
Figura 1.6 – String JSON. ......................................................................................... 27
Figura 1.7 – Arquitetura dos Web Services. .............................................................. 28
Figura 1.8 – Arquitetura da Aplicação. ...................................................................... 28
Figura 2.1 – Guia Quatro Rodas 1001 Lugares......................................................... 30
Figura 2.2 – SPMobile. .............................................................................................. 31
Figura 2.3 – Turismo Bento. ...................................................................................... 32
Figura 2.4 – Diagrama de Classe. ............................................................................. 34
Figura 2.5 – Diagrama de Classe do banco de dados SQLite. ................................. 35
Figura 2.6 – Diagrama de Classe do banco de dados MySQL.................................. 35
Figura 2.7 – Diagrama de Caso de Uso. ................................................................... 35
Figura 2.8 – Diagrama de Atividade. Inserir Comentário. .......................................... 36
Figura 2.9 – Diagrama de Atividade. Excluir Comentário. ......................................... 36
Figura 2.10 – Diagrama de Atividade. Alterar Comentário. ....................................... 37
Figura 2.11 – Diagrama de Atividade. Responder Comentário. ................................ 37
Figura 2.12 – MVC. Manter Comentários. ................................................................. 38
Figura 2.13 – Diagrama de Sequência. Inserir Comentário. ..................................... 38
Figura 2.14 – Diagrama de Sequência. Excluir Comentário. ..................................... 38
Figura 2.15 – Diagrama de Sequência. Alterar Comentário. ..................................... 39
Figura 2.16 – Diagrama de Sequência. Listar Comentários. ..................................... 39
Figura 2.17 – Diagrama de Atividade. Mostrar Ponto Turístico. ................................ 40
Figura 2.18 – Diagrama de Atividade. Traçar Rota. .................................................. 40
Figura 3.1 – Ícone do aplicativo, tela de carregamento e tela inicial. ........................ 41
Figura 3.2 – Tela da lista de cidades e da Info. ......................................................... 42
Figura 3.3 – Pesquisa por ponto turístico. ................................................................. 42
Figura 3.4 – Tela de uma cidade e a lista de pontos turísticos da mesma. ............... 43
Figura 3.5 – Tela da descrição e das fotos de um ponto turístico. ............................ 43
Figura 3.6 – Tela do mapa do ponto turístico. ........................................................... 44
Figura 3.7 – Tela de autenticação do Facebook. ...................................................... 44
Figura 3.8 – Tela de comentários e seus possíveis erros. ........................................ 45
Figura 3.9 – Realizar comentário. ............................................................................. 45
Figura 3.10 – Publicação no Facebook. .................................................................... 46
Figura 3.11 – Todos Comentários. ............................................................................ 46
Figura 3.12 – Meus Comentários. ............................................................................. 47
Figura 3.13 – Pagina autor comentário. .................................................................... 47
Figura 3.14 – Método para inserir Comentário no servidor. ...................................... 48
Figura 3.15 – Método para abrir e fechar banco de dados local. .............................. 48
Figura 3.16 – Método listar todas cidades. ................................................................ 49
Figura 3.17 – Método exibir mensagens. .................................................................. 49
Figura 3.18 – Método exibir mensagens. .................................................................. 50
Figura 3.19 – Código xml da tela de abertura do aplicativo. ..................................... 50
Figura A.1 – Página de download da IDE do Eclipse. ............................................... 55
Figura A.2 – Página de downloads do JDK. .............................................................. 56
Figura A.3 – Página de download do SDK do Android. ............................................. 56
Figura A.4 – SDK Manager. ...................................................................................... 57
Figura A.5 – Criando uma máquina virtual Android no AVD Manager. ..................... 58
Figura A.6 – Adicionando plug-in do Android ao Eclipse. .......................................... 60
Figura A.7 – Criação de um projeto Android. ............................................................ 61
Figura A.8 – Criação de um projeto Android. ............................................................ 61
Figura A.9 – Criação de um projeto Android. ............................................................ 62
Figura A.10 – Criação de um projeto Android. .......................................................... 63
Figura A.11 – Código inicial de um projeto Android. ................................................. 63
Figura A.12 – Aplicativo compilado pela máquina virtual. ......................................... 64
Figura B.1 – Criando um projeto no Google Cloud.................................................... 65
Figura B.2 – API Google Maps Android habilitada. ................................................... 66
Figura B.3 – Registrando novo aplicativo Google Cloud. .......................................... 66
Figura B.4 – Facebook Developers. .......................................................................... 67
Figura B.5 – Estrutura do projeto Mapas. .................................................................. 67
Figura B.6 – Adicionando a biblioteca do Google Service ao projeto. ....................... 68
Figura B.7 – Permissões no AndroidManifest.xml. .................................................... 68
Figura B.8 – APP Key AndroidManifest.xml. ............................................................. 68
Figura B.9 – Código classe Principal. ........................................................................ 69
Figura B.10 – Código principal.xml. ........................................................................... 69
Figura B.11 – Código classe Mapa. .......................................................................... 69
Figura B.12 – Código mapa.xml. ............................................................................... 70
Figura B.13 – Tela do Exemplo Mapas. .................................................................... 70
Figura C.1 – Facebook Developers. .......................................................................... 71
Figura C.2 – Opção de Criar Novo Aplicativo Facebook. .......................................... 71
Figura C.3 – Configurações básicas API Facebook. ................................................. 72
Figura C.4 – Configurações básicas API Facebook. ................................................. 73
Figura C.5 – Estrutura do projeto APIFacebook. ....................................................... 73
Figura C.6 – Adicionando a biblioteca do Facebook ao projeto. ............................... 74
Figura C.7 – Código para acessar e recuperar o nome do Facebook. ...................... 74
Figura C.8 – Código da tela activity_main.xml. ......................................................... 75
Figura C.9 – Telas do exemplo em funcionamento. .................................................. 75
LISTA DE ABREVIAÇÕES E SIGLAS
API - Applications Programming Interface
DVM - Dalvik Virtual Machine
GPL - General Public License
GPS - Global Positioning System
HTTP - Hypertext Transfer Protocol
JSON - Java Script Object Notation
OHA - Open Handset Alliance
PHP - Hypertext Preprocessor
SAAS - Software as a Service
SDK - Software Development Kit
SGBD - Sistema de Gerenciamento de Banco de Dados
SOAP - Simple Object Access Protocol
SQL - Structured Query Language
UID - Unix User Identification
URL - Uniform Resource Locator
XML - eXtensible Markup Language
SUMÁRIO
INTRODUÇÃO ..................................................................................... 13
1 TECNOLOGIAS ENVOLVIDAS ......................................................... 15
1.1 MYSQL ................................................................................................................ 15
1.2 SQLITE................................................................................................................ 17
1.3 ANDROID ............................................................................................................ 18
1.3.1 Versão 1.0 ........................................................................................................ 21
1.3.2 Versão 1.5 (Cupcake)....................................................................................... 21
1.3.3 Versão 1.6 (Donut) ........................................................................................... 21
1.3.4 Versão 2.0/2.1 (Eclair) ...................................................................................... 22
1.3.5 Versão 2.2 (Froyo) ........................................................................................... 22
1.3.6 Versão 2.3 (Gingerbread) ................................................................................. 22
1.3.7 Versão 3.0 (Honeycomb).................................................................................. 22
1.3.8 Versão 4.0 (Ice Cream Sandwich) .................................................................... 23
1.3.9 Versão 4.1/4.2/4.3 (Jelly Bean) ........................................................................ 23
1.3.10 Versão 4.4 (Kit Kat) ........................................................................................ 23
1.4 API FACEBOOK .................................................................................................. 23
1.5 API GOOGLE MAPS ........................................................................................... 25
1.6 JAVA SCRIPT OBJECT NOTATION (JSON) ...................................................... 25
1.7 WEB SERVICE ................................................................................................... 27
2 ANÁLISE E PROJETO DO SISTEMA ............................................... 30
2.1 ANÁLISE DE MERCADO .................................................................................... 30
2.1.1 Guia Quatro Rodas 1001 Lugares .................................................................... 30
2.1.2 SPMobile .......................................................................................................... 31
2.1.3 Turismo Bento .................................................................................................. 32
2.2 ATORES E ENVOLVIDOS NO PROCESSO ...................................................... 33
2.3 PERSPECTIVA DO PRODUTO .......................................................................... 33
2.4 CARACTERÍSTICAS ........................................................................................... 33
2.5 ANÁLISE DE REQUISITOS ................................................................................ 34
2.6 DIAGRAMA DE CLASSE .................................................................................... 34
2.7 DIAGRAMA DE CASO DE USO ......................................................................... 35
2.8 ESPECIFICAÇÕES DE HISTÓRIAS E DIAGRAMAS ......................................... 36
2.8.1 Manter Comentário ........................................................................................... 36
2.8.2 Manter Mapa .................................................................................................... 39
3 IMPLEMENTAÇÃO ........................................................................... 41
3.1 INTERFACE GRÁFICA ....................................................................................... 41
3.1.1 Tela Principal.................................................................................................... 41
3.1.2 Tela Cidades .................................................................................................... 42
3.1.3 Tela Pontos Turísticos ...................................................................................... 43
3.2 DISCUSSÃO DO CÓDIGO-FONTE .................................................................... 47
CONCLUSÃO ....................................................................................... 51
REFERÊNCIAS BIBLIOGRÁFICAS ..................................................... 52
APÊNDICE A – INSTALAÇÃO E CONFIGURAÇÃO DO SDK E ADT DO
ANDROID E DA IDE DO ECLIPSE ...................................................... 55
APÊNDICE B – CONFIGURAÇÃO DA API DO GOOGLE MAPS ......... 65
APÊNDICE C – CONFIGURAÇÃO DA API DO FACEBOOK ............... 71
13
INTRODUÇÃO
A presença da tecnologia pode ser evidenciada no uso cotidiano de diversos
dispositivos portáteis, como por exemplo, smartphones e tablets. Esses dispositivos
permitem acesso à Internet por meio de comunicação sem fio e graças a isso, é
possível ter acesso à informação e a qualquer tipo de serviço independentemente da
localização (TONIN, 2012). A evolução desses dispositivos tem acirrado a briga
entre os fabricantes, devido à grande diversidade de hardware e software, sendo
que um dos principais componentes analisados para a aquisição de um dispositivo é
o sistema operacional. (MOREIRA, 2012)
Segundo o site G1(2012), dentre os sistemas móveis o que tem maior
participação no mercado é o Android, que está presente em 68,3% dos dispositivos
em todo o mundo em uma pesquisa realizada em 2012, apontando ainda que esse
mercado será dominante até 2016, prevendo que estará em 63,8% dos dispositivos
móveis. Mostra-se também que esses números estão diretamente relacionados aos
vários parceiros que a Google possui no desenvolvimento do Android, gerando um
amplo número de modelos de smartphones e tablets.
Outra ferramenta que se tornou popular em proporções maiores que os
sistemas móveis são as redes sociais. Um mecanismo que tem por finalidade a
interação de pessoas pela Internet, compartilhando fotos, vídeos e informações,
tornando quase uma necessidade publicar para a rede de amigos. (DAQUINO,
2012)
Enfim, com a popularidade dos sistemas móveis, no qual se tornou possível
ter acesso à Internet e a aplicações de diversos seguimentos, as redes sociais se
tornaram mais utilizadas e importantes para o relacionamento pessoal, pois de onde
quer que o usuário esteja ele poderá ter acesso, compartilhando ou vendo
informações de seus amigos.
Aproveitando o momento atual, em que o Brasil será sede da Copa do Mundo
de Futebol em 2014, o objetivo deste trabalho é o desenvolvimento de um aplicativo
para Android, que reúnem os principais pontos turísticos das doze cidades que irão
sediar o evento. A proposta é que o usuário possa ter acesso a informações sobre
os pontos turísticos, tais como: descrições, mapas de como chegar, a partir da
localização geográfica, ver fotos, ler e fazer comentários, que se integrarão a rede
14
social Facebook e a aplicação. Desta forma, o usuário terá informações pertinentes
sobre os pontos turísticos antes de conhecê-los efetivamente.
Esse trabalho justifica-se pelo crescente número de usuários que utilizam os
sistemas móveis, sendo que a maioria desses contam com grande facilidade ao
acesso à Internet, no qual torna-se fácil e rápida a busca por informações. Além
disso, busca-se mostrar aos turistas um pouco da beleza que cada cidade sede tem
a oferecer.
No primeiro capítulo estão descritas todas as tecnologias utilizadas, dispondo
sobre o Android, Applications Programming Interface (API) utilizadas e também a
forma de armazenamento dos dados.
O segundo capítulo traz a análise e o projeto do sistema, descreverá a análise
de mercado, em que estão contidos alguns exemplos de aplicações, que serviram
de ideias para o desenvolvimento deste, e mostra os requisitos e diagramas, que
serviram de base para o desenvolvimento desta aplicação.
O
terceiro
capítulo
aborda
a
aplicação
pronta,
exemplificando
o
funcionamento de cada funcionalidade através de imagens e códigos, comentando
cada uma deles.
Iniciou-se o desenvolvimento do projeto com o levantamento da literatura,
métodos e forma de desenvolvimento. No passo seguinte, coletou-se e analisou-se
os dados para que o sistema supra a necessidade do usuário. Feita a análise dos
dados, deu-se início ao desenvolvimento do software, desde o banco de dados até a
aplicação, realizando testes, para corrigir possíveis erros. Ao final elaborou-se um
relatório com todas as funcionalidades.
15
1 TECNOLOGIAS ENVOLVIDAS
Este capítulo descreve as tecnologias que serão necessárias para o
desenvolvimento do trabalho.
1.1 MYSQL
Em 1996 na Suécia os amigos Allan Larson, David Axmark e Michael Monty
Widenius, sentiram a necessidade de um mecanismo que permitisse fazer conexões
entre tabelas, e para isso usaram o mSQL, ou Mini SQL, que segundo o site Hughes
Technologies, é um banco de dados SQL, que possui bom desempenho e uso da
memória, além da portabilidade; porém perceberam que essa ferramenta não lhes
atendiam, então passaram a trabalhar em uma solução própria, assim surgiu o
MySQL no mesmo ano. Em 2008, o MySQL foi comprado pela Sun Microsystems.
(ALECRIM, 2008)
O MySQL é um dos Sistemas Gerenciador de Banco de Dados (SGBD)
relacionais mais populares, além de ser um banco de dados, que tem a finalidade de
armazenar uma coleção de dados estruturados. Um banco de dados relacional
armazena dados em tabelas distintas em vez de colocar todos em apenas um local,
no qual se proporciona velocidade e flexibilidade. A linguagem utilizada pelo MySQL
é a Structured Query Language (SQL), que é uma linguagem de consulta usada
para manipular o banco de dados. O MySQL possui duas licenças, no qual uma é
livre que usa a General Public License (GPL), o que significa que qualquer um pode
estudá-lo ou alterá-lo conforme a necessidade, no qual deve-se apenas de atentar a
licença que define o que pode ou não fazer no software em diferentes situações, e a
outra paga, projetada inicialmente para trabalhar com aplicações de pequeno e
médio porte, porém hoje atende também sistemas de grande porte, no qual oferece
mais vantagens que a livre. (ALECRIM, 2008)
É comum encontrar serviços de hospedagem que ofereçam o MySQL, pois
está disponível para qualquer sistema operacional e para servidores. O servidor de
banco de dados MySQL é rápido, confiável e fácil de usar, no qual vários recursos
foram desenvolvidos em cooperação com usuários. O servidor MySQL foi
desenvolvido originalmente para manipular banco de dados muito grandes de
16
maneira rápida e eficiente, usado em ambientes de produção de alta demanda. Hoje
oferece um conjunto de funções, dentre elas a conectividade, velocidade e a
segurança, que faz com que o MySQL seja altamente adaptável para acessar o
banco de dados na Internet. (MAFFEI, 2011)
As características fundamentais são o desempenho, por ser multitarefa,
multiusuário e possuir suporte a multithreads, que significa que se pode usar
múltiplos processadores, se disponível. Por ser escrito totalmente na linguagem C e
C++, permite funcionar em diversas plataformas de sistemas operacionais. O SQL
utilizado é altamente veloz, devido ao fato de ter sido implementado por meio de
uma biblioteca de classes, com códigos e funções altamente otimizadas, essa
característica tem como consequência uma grande vantagem, que é a velocidade na
execução dos códigos SQL e uma desvantagem é que nem todos os padrões da
versão mais atual do SQL foram implementados no MySQL, assim podendo
comprometer a velocidade do banco de dados. (MAFFEI, 2011)
O SGBD MySQL disponibiliza vários tipos de tabelas para o armazenamento
de dados, no qual cada tipo possui suas próprias características. A vantagem dessa
variedade de tabelas é a possibilidade de escolher o tipo em cada situação diferente.
Enquanto um tipo prioriza velocidade, outro prioriza volume de dados. Para o volume
de dados, esse SGBD possui alto poder de execução e armazenamento, no qual fica
se limitado somente ao tamanho máximo de arquivos com que a plataforma pode
manipular. Disponibiliza também criar tabelas hash em memória que são usadas
como tabelas temporárias. (MAFFEI, 2011)
Ainda mais, o MySQL possui componentes de segurança contra ameaças
externas e também protege os dados dos próprios usuários, para isso apresenta
vários níveis de segurança em relação ao acesso e utiliza um sistema de senhas e
privilégios que é muito flexível. Outro componente de segurança são as conexões
que trabalham com criptografia no tráfego de senhas, quando se conecta ao
servidor. Ainda, em complemento ao uso de autenticação baseado em senhas, é
possível habilitar uma espécie de firewall de autenticação, responsável por habilitar
as conexões somente para estações e domínios especificados em uma lista de
acesso. (MILANI, 2007)
O MySQL possui várias vantagens dentre elas, pode-se ressaltar: a baixa
exigência de processamento, se comparado com outros SGBD e recursos como
17
transações, conectividade segura, indexação de campos de texto, consistência e
suporte a diversos idiomas para mensagens de erro. E também possui
desvantagens como: não suporte a um tamanho muito grande do banco de dados de
uma forma eficiente, as versões inferiores não possuem recursos que são
necessários como stored procedure e commit, a forma como armazenam dados,
pois quando é criado um banco de dados o MySQL cria uma pasta e conforme são
adicionadas tabelas é criado um arquivo dentro da pasta com o nome da tabela, com
isso não existe nada que impeça que qualquer um tenha acesso e possa apagar o
banco inteiro que estará contido em apenas uma tabela, não executa backup
consistente com a base de dados que está online, se atualizações estiverem sendo
efetuadas, não tem recurso contra falhas no desligamento do banco durante a
atualização de dados e não verifica as restrições de integridade referencial por
padrão. (MILANI, 2007)
1.2 SQLITE
O SQLite é um biblioteca desenvolvida na linguagem de programação C, que
implementa um banco de dados que utiliza a linguagem de consulta SQL. O SQLite
é considerado um pequeno SGBD, pois não possui ferramentas robustas em
recursos para receber um grande volume de dados, mas essa falta de recursos faz
com que seja uma ferramenta prática, forte, consistente e rápida, no qual se
recomenda apenas para aplicações que a simplicidade da administração,
implementação e manutenção são mais importantes. Basicamente o SQLite é
utilizado em aplicações móveis e embarcadas. (GONÇALVES, 2010)
Esse SGBD pode ser livremente distribuído, e seu código pode ser
manipulado conforme a necessidade, seguindo uma licença de uso, além de ser
bem documentado, para quem quer conhecer um SGBD por dentro. Não necessita
instalação, configuração ou administração, além de ser independente de uma
estrutura cliente-servidor e possuir instruções transacionais como o commit e o
rollback, comandos que são utilizados respectivamente, para salvar o banco de
dados e para restaurar o mesmo até o último ponto salvo. (DALL'OGLIO, 2007)
Assim como qualquer banco de dados o SQLite permite armazenar e
manipular dados, mas a forma de armazenamento é bem diferente se comparada
18
com outros. O SQLite realiza a leitura e a escrita dos dados diretamente em arquivos
locais, juntamente com a aplicação, sendo capaz de manter diversas tabelas nele,
ou seja, um banco de dados completo contido em um único arquivo de disco, no
qual é capaz de armazenar terabytes de dados. Esse arquivo gerado, além de
possuir tamanho pequeno com todos seus recursos ativados, possui um formato
capaz de ser executado em qualquer plataforma de sistema operacional e através
de sua conexão é possível integrá-lo a diversos programas escritos em diferentes
linguagens. (DALL'OGLIO, 2007)
O SQLite se baseia na simplicidade e confiabilidade, no qual a simplicidade
deve-se ao fato do SQLite sacrificar recursos e características, como alta
concorrência, controle de acesso e procedimentos armazenados e a confiabilidade
se deve a praticidade em operar o banco, assim com menos complicação, menos
chance de dar errado. Então antes de escolher o SQLite deve-se verificar a
finalidade do banco e se todos os recursos necessários terá disponível. (ABOUT
SQLITE, 2013)
Esse SGBD possui algumas desvantagens, das quais pode se ressaltar que,
não possui integridade referencial, ou seja, chave estrangeira que segundo Aguiar
(2012) é responsável por referenciar duas tabelas quando uma delas possuir mais
de uma vez a referência da outra. Além disso, não é recomendado para uso em
sistemas ou aplicações web de grande porte. O SQLite é mais utilizado em
aplicações embarcadas e em sistemas móveis, justamente por ser leve, rápido e por
ler e gravar todos os dados localmente. (ABOUT SQLITE, 2013)
1.3 ANDROID
Em 2003 na Califórnia – EUA, Andy Rubin, Rich Miner, Nick Sears e Chris
White fundaram a Android, Inc. Uma empresa que desenvolvia sistemas
operacionais para celulares baseados em Linux, mas todos seus projetos eram
secretos. Em 2005, a Google, com o intuito de desenvolver uma nova plataforma
para dispositivos móveis, comprou a Android Inc. (MARTINS, 2011)
Com o objetivo de desenvolver um sistema operacional barato, resolveram
criar uma plataforma gratuita, com isso basearam-se em Linux, assim proporcionouse uma estrutura flexível e atualizável, chamando-o de Android. (MARTINS, 2011)
19
Quando o Android estava em desenvolvimento, todos seus processos foram
pensados para conseguir tornar os celulares que tivessem esta plataforma mais
baratos. Com esse objetivo fizeram do Android uma plataforma aberta e totalmente
gratuita, na qual qualquer pessoa pode ter acesso e modificá-la conforme a
necessidade e sendo assim, foi atraído um grande número de parceiros. Segundo
Lecheta (2010), estes parceiros formam um grupo denominado Open Handset
Alliance (OHA), que liderados pela Google, são responsáveis pelo desenvolvimento
do Android. Este grupo, segundo o próprio site da OHA, atualmente é formado por
84 empresas de tecnologia móvel que se uniram com o propósito de desenvolver
uma plataforma moderna, flexível e abrangente.
Segundo Tanenbaum (2000) arquitetura é um conjunto de operações e tipos
de dados, em que a do Android é referenciada como uma pilha de softwares, no qual
cada camada dessa pilha suporta funções específicas do sistema. Na base da pilha
está o kernel, assim como no Linux, pois o Android foi construído a partir da versão
2.6 do sistema, em que foram incluídos softwares de gerenciamento de memória e
de energia, configurações de segurança e vários drivers de hardware.
A camada seguinte inclui bibliotecas C/C++, que são um conjunto de
instruções que mostra ao dispositivo como lidar com diferentes tipos de dados, como
suporte a 2D e 3D e a formatos de áudio e vídeo. Ainda nesse nível temos a camada
de tempo de execução do sistema, que inclui uma máquina virtual chamada Dalvik
Virtual Machine (DVM), usada para cada aplicação ter seu próprio processo. Esta
máquina é uma otimização da máquina virtual da linguagem Java, a diferença é que
após gerar, depois da compilação, o arquivo .class, a DVM converte este para um
arquivo com extensão .dex que é nativa do Android, e este por sua vez gera
consumo mínimo de memória.
Este mecanismo também faz com que o sistema consiga executar vários
aplicativos simultaneamente, e gera um código único a cada aplicação, para que
nenhuma dependa da outra, assim se uma aplicação para, ela não afeta quaisquer
outras aplicações que estão em execução no dispositivo. A DVM utiliza funções do
kernel, como gerenciamento de memória a baixo nível e executa os aplicativos em
baixa frequência, devido à pouca memória disponível nos dispositivos móveis.
(STRICKLAND, 2009)
Seguindo na pilha temos a camada de framework de aplicação, no qual são
20
incluídos os programas que gerenciam as funções básicas do sistema, como
alocação de recursos, aplicações de telefone, mudança entre processos ou
programas e acesso a localização física do aparelho. Essa camada é acessível aos
desenvolvedores de aplicações e que por sua vez possuem acesso total a ela, no
qual possibilita construir aplicações complexas que suportem diversos recursos e
que possam tirar proveito da capacidade de processamento do sistema.
(STRICKLAND, 2009)
A última camada possui as aplicações, na qual estão localizadas as funções
básicas do dispositivo, como acessar o navegador web ou as aplicações. É apenas
a essa camada que o usuário final terá acesso, utilizando uma interface gráfica
(STRICKLAND, 2009). A arquitetura do Android está representada da figura 1.1.
Figura 1.1 – Arquitetura Android.
Fonte: Perboni, 2013.
Com a grande disseminação do Android e da Internet nos smartphones e
tablets, também começou a se discutir a segurança, pois é um dos fatores que mais
está em pauta nos dias atuais. Segundo uma reportagem do jornal Folha de São
Paulo (2012) o sistema Android é o mais vulnerável a ataques. Como segurança o
Android implementa o conceito de Unix User Identification (UID), no qual o UID é
alocado à aplicação e não a uma pessoa, para isolar assim uma aplicação da outra,
cada uma com permissões de uso distintas. As permissões são direitos cedidos às
21
aplicações para usar o Global Positioning System (GPS) ou até mesmo para tirar
fotos. O grande problema é que cabe ao usuário decidir se determinada aplicação
pode fazer uma operação, e é ele também que decide se quer instalar uma
aplicação ou não, pois é possível fazer o download direto de um computador e
depois instalar no Android, no qual é o usuário que determina a confiabilidade do
autor. As aplicações confiáveis estão à disposição para download na loja de
aplicativos da Google, a Google Play, são retirados da loja aplicativos com fins
maliciosos ou que podem danificar o aparelho, mas estas podem ficar disponíveis na
Internet, podendo ser instaladas pelo usuário sem nenhum impedimento. (TAURION,
2010)
Outro problema em relação à segurança é que o Android, por possuir código
aberto, é possível atualizar o firmware, o sistema, com atualizações não oficiais,
feitas por qualquer desenvolvedor, assim o sistema poderá estar de portas abertas
para possíveis fins maliciosos. (TAURION, 2010)
1.3.1 Versão 1.0
O primeiro aparelho Android, foi o HTC Dream G1, que foi lançado em 2008.
Possuía funcionalidades bem avançadas para época, como janela de notificações,
navegador web, multitarefa, mensageiro instantâneo, wi-fi, Bluetooth 1.0, integração
com a caixa de emails do Google, o Gmail, e o aplicativo da loja de aplicativos do
Google, que antes era o Android Market. (DANA, 2012)
1.3.2 Versão 1.5 (Cupcake)
Em 2009 foi liberada pelo Google a versão 1.5, com o nome de Cupcake.
Curiosamente, a partir desta versão, todas as próximas trazem nomes de doces
seguidos em ordem alfabética. A versão 1.5 trazia entre as novidades teclado virtual,
capacidade de gravar vídeos, widgets, possibilidade de colocar animações nas
transições de tela, integração com o Youtube e capacidade de realizar comandos de
copiar e colar textos. (DANA, 2012)
1.3.3 Versão 1.6 (Donut)
22
Também em 2009, foi lançada a versão 1.6, apelidado de Donut. Trouxe
grandes novidades em relação à Cupcake, dentre elas estão uma caixa de pesquisa
rápida, compatibilidade com câmeras, gravador de voz, galeria de imagens e vídeos,
indicador do nível da bateria e suporte a tela de até 480x800 pixels. (DANA, 2012)
1.3.4 Versão 2.0/2.1 (Eclair)
Apenas um mês depois de lançar a versão Donut, o Google lançou a versão
2.0, conhecida como Eclair. Permitia múltiplas contas de email, nova interface do
navegador, suporte a Bluetooth 2.1 e HTML 5, novas ferramentas de navegação no
Google Maps, permitia papéis de parede animados, melhor contraste da tela,
suporte a multitouch e suporte a mais resoluções. (DANA, 2012)
1.3.5 Versão 2.2 (Froyo)
Em 2010 foi lançada a versão 2.2, apelidada de Froyo. Dentre as novidades,
estava o aumento da velocidade na realização de tarefas, a opção de salvar
aplicativos em cartões de memória, suporte a hotspot, que é a possibilidade de
compartilhar uma conexão de Internet por meio de wi-fi, suporte ao Adobe Flash,
atualizações automáticas dos aplicativos do Android Market e a melhoria no
desempenho geral do sistema. (DANA, 2012)
1.3.6 Versão 2.3 (Gingerbread)
Lançado seis meses depois, a versão 2.3, conhecida por Gingerbread,
possuía interface para telas de maior dimensão e ajustada para possuir simplicidade
e rapidez, novo teclado para maior rapidez de digitação, chamadas pela Internet,
suporte a Near Field Communication (NFC), no qual apenas com a proximidade de
dois dispositivos eletrônicos compatíveis, é possível realizar troca de informações,
reconhecimento de sensores para rotação da tela, possibilidade de usar mais de
uma câmera, capacidade para vídeo chamadas e a otimização das opções de
copiar, colar e recortar. (DANA, 2012)
1.3.7 Versão 3.0 (Honeycomb)
23
Em 2011, foi lançada a versão 3.0, conhecida como Honeycomb, que teve o
sistema reformulado para ter compatibilidade com telas de tablets, que já estavam
ganhando o mercado. Dentre as novidades pode-se citar a customização da tela
principal, a opção de compartilhamento por Bluetooth, a aceleração de vídeo por
hardware e suporte a processadores com múltiplos núcleos. (DANA, 2012)
1.3.8 Versão 4.0 (Ice Cream Sandwich)
A versão 4.0, apelidada de Ice Cream Sandwich, foi liberada em 2011.
Passou a oferecer maior facilidade de compartilhamento de arquivos, calendário
unificado, opções de alinhamento de câmera, fotos panorâmicas com o movimento
do aparelho, desbloqueio por reconhecimento facial e um centro de análise de
dados. (DANA, 2012)
1.3.9 Versão 4.1/4.2/4.3 (Jelly Bean)
Em 2012 o Google anunciou esta versão. Trouxe uma nova interface de
usuário, animações e gráficos, novas formas de conectividade com acesso ao 4G,
novos recursos multimídia, melhor desempenho e possui mais estabilidade. Ainda
poucos aparelhos possuem esta versão e apenas os que possuem hardware mais
avançado. (LANDIM, 2013)
1.3.10 Versão 4.4 (Kit Kat)
Lançada no final de outubro de 2013, é a versão mais recente do Android.
Dentre as melhorias desta versão pode-se ressaltar: editor de fotos, gerenciamento
de processos, a opção de imprimir direto do celular através de wireless em
impressoras compatíveis e o reconhecimento de comandos de voz através do
Google Now. (DAQUINO, 2013)
1.4 API FACEBOOK
API é um conjunto de rotinas, instruções, padrões de programação, classes e
24
objetos, para ter acesso a um software ou ferramenta da Internet, o qual permite que
um aplicativo se comunique com outro em locais remotos, com comunicação via
Internet. As API’s são lançadas pelas empresas para que os desenvolvedores de
softwares possam criar produtos que usem seus serviços (ROOS, 2009). Uma API
se assemelha ao Software as a Service (SaaS), que são basicamente sites que
utilizam a Cloud Computing para oferecer serviços online. (VALIN, 2009)
A API do Facebook foi desenvolvida para oferecer ferramentas aos
desenvolvedores que desejam integrar experiências da rede social em suas
aplicações, seja ela mobile ou web. (DEVELOPERSWORKS BRASIL, 2011)
Com a grande expansão da rede social, essa API se tornou de extrema
importância para sistemas, pois por meio da rede social consegue-se obter dados
pessoais que podem ajudar, ou até mesmo remover, o processo de cadastro do
usuário, assim evita-se a criação de identidades falsas e a perda de tempo na
obtenção de dados para um cadastro. Outra vantagem é a publicidade, pois através
da API, o usuário pode realizar comentários na rede social, no qual juntamente com
estes poderá haver a divulgação da aplicação, para ser descoberta por pessoas que
querem utilizá-la. (DEVELOPERSWORKS BRASIL, 2011)
Para utilizar a API, o Facebook disponibiliza um Software Development Kit
(SDK), que ajuda o desenvolvedor a integrar o Facebook a sua aplicação. Este SDK
possui versões para Android, iOS, Hypertext Preprocessor (PHP) e JavaScript. O
SDK trás algumas classes como a classe principal Facebook e a classe Facebook
Dialog. (DEVELOPERSWORKS BRASIL, 2011)
A classe Facebook encapsula métodos para autorizar o usuário, criar diálogos
e fazer solicitações, desconectar o usuário e definir informações de acesso, status e
sessão. (DEVELOPERSWORKS BRASIL, 2011)
A classe Facebook Dialog implementa métodos para a criação de
visualizações na Internet e manipula respostas de Uniform Resource Locator (URL)
do Facebook. (DEVELOPERSWORKS BRASIL, 2011)
A principal API do Facebook é a Graph, que permite que leia e grave dados a
partir do Facebook e de forma consistente manipula os objetos, que são os usuários,
amigos e postagens. Com a API é possível procurar, atualizar objetos e até mesmo
filtrar resultados. (FACEBOOK API, 2013)
Os aplicativos tem por padrão apenas acesso aos dados públicos do usuário,
25
para possuir acesso aos dados privados deve-se primeiro solicitar permissões ao
usuário, que são chamadas de permissões estendidas. Obtendo essas permissões,
o aplicativo que as chamou recebe autorização para acessar os dados autorizados.
(FACEBOOK API, 2013)
1.5 API GOOGLE MAPS
Lançada em 2005 a API do Google Maps é uma ferramenta desenvolvida
para ser incorporada a software, seja mobile, web ou desktop, mapas, localizações e
todos os recursos que a versão padrão possui e facilitar a criação de aplicativos por
parte dos desenvolvedores que gostariam de integrar o Google Maps a seus
softwares. Os complementos da API oferecem bibliotecas para que se possa
desenvolver, construir e executar aplicativos baseados em mapas, com acesso a
todos os dados do Google Maps. O Google Maps permite buscar endereços,
cidades e locais específicos, trazendo mapas e localizações, de forma gratuita,
desde que não seja para uso comercial. Esses locais podem ser cadastrados de
forma simples e gratuita. A partir de um ponto corretamente cadastrado os usuários
possuem a possibilidade de realizar comentários e avaliações, e o dono do
estabelecimento ou quem cadastrou o local, pode consultar a quantidade de
pessoas que visualizaram as informações do ponto, principais termos de consultas e
interagir com os usuários, seja para deixar agradecimentos ou responder críticas.
(GOOGLE DEVELOPERS, 2013)
Esta API é uma biblioteca externa do Google Maps, na qual foram
incorporada a renderização e o armazenamento em cache de blocos de mapas,
assim como uma variedade de opções e controles de exibição. A principal classe
nesta biblioteca é a MapView que exibe um mapa com dados obtidos a partir do
serviço do Google Maps. Quando a API está em uso ela é responsável por capturar
o pressionamento de teclas ou gestos de toque para gerar os mapas, ampliando ou
reduzindo o zoom automaticamente. Também oferece elementos de interface do
usuário que são necessários para que estes controlem o mapa. Os métodos da
classe são disponíveis para controlá-la através de programação, no qual se podem
traçar diversos tipos de sobreposições no mapa. (GOOGLE DEVELOPERS, 2013)
1.6 JAVA SCRIPT OBJECT NOTATION (JSON)
26
É um modelo de formatação dos dados, utilizado principalmente nas trocas de
dados entre sistemas homogêneos ou heterogêneos, pois possui suporte a todas as
linguagens de programação atuais, independentemente de qual for utilizada. (JSON,
2013)
Em JSON os dados são apresentados de cinco formas diferentes (objeto,
array, valor e string).
Os objetos são um conjunto desordenado de pares nome/valor. Os dados são
expressados entre chaves, a separação entre o nome e o valor é feita com dois
pontos e cada par nome/valor é separado com vírgula. (JSON, 2013)
Figura 1.2 – Objeto JSON.
Fonte: JSON, 2013.
Figura 1.3 – Objeto JSON.
Fonte: Elaborada pelos autores, 2013.
Um array é uma coleção de valores ordenados. Os dados são expressados
entre colchetes e cada valor é separado por vírgula. (JSON, 2013)
Figura 1.4 – Array JSON.
Fonte: JSON, 2013.
Um valor pode ser uma string ou um número ou um boolean (verdadeiro ou
falso) ou um nulo ou um objeto ou uma array. (JSON, 2013)
27
Figura 1.5 – Valor JSON.
Fonte: JSON, 2013.
Uma string é uma coleção de nenhum ou mais caracteres, no qual deve estar
entre aspas duplas. Para uso de caracteres especiais faz-se uso da barra invertida.
Figura 1.6 – String JSON.
Fonte: JSON, 2013.
1.7 WEB SERVICE
28
O Web Service surgiu para preencher a necessidade do mercado de
integração entre sistemas heterogêneos além das redes locais que não se
comunicavam por não existir um padrão. Seus objetivos são realizar a integração
entre sistemas, a comunicação entre aplicações diferentes, independente do sistema
operacional ou da linguagem de programação usada e fortalecer o desenvolvimento
distribuído, de forma a trabalhar em conjunto com os novos recursos de
comunicação da Internet. (DURÃES, 2005)
O Web Service funciona como se estivesse instalado localmente, mas sua
principal
vantagem
é
que
pode
estar
instalado
em
qualquer
máquina,
independentemente de sua localização, somente com a necessidade de estar
conectado à Internet, para poder obter acesso remotamente. (DURÃES, 2005)
Para realizar a troca de informações entre os sistemas, a aplicação dispara o
processamento no servidor remoto e este responde para a aplicação. O único
formato dos dados enviados ou recebidos são Extensible Markup Language (xml).
Como usam à Internet, os protocolos Hypertext Transfer Protocol (HTTP) e o Simple
Object Access Protocol (SOAP) são responsáveis pelo transporte dos dados na
rede. (DURÃES, 2005)
A arquitetura dos Web Services está representado na figura 1.7.
Figura 1.7 – Arquitetura dos Web Services.
Fonte: Mendes, 2013.
As tecnologias são a base para este trabalho, no qual cada uma terá sua
importância. O Android é a plataforma em que o aplicativo será desenvolvido e
somente nele o aplicativo poderá ser instalado depois de pronto. A API do Google
Maps será responsável por trazer as localizações de cada ponto turístico, no qual
também através de uma conexão GPS será possível traçar rotas até determinado
29
local. A API do Facebook dará ao usuário a possibilidade de realizar comentários
sobre determinado ponto turístico. O SQLite armazenará todos os dados dos pontos
turisticos junto com a instalação da aplicação, assim o aplicativo funcionará tanto
offline como online. E por fim o MySQL armazenará em um servidor todos os
comentários realizados pelos usuários no Facebook, pois assim será possível
recuperar em cada ponto turístico todos os comentários e listá-los no aplicativo, mas
esta opção por ter que acessar um servidor, somente estará disponível se o usuário
estiver conectado à Internet.
A figura 1.8 representa a arquitetura da aplicação.
Figura 1.8 – Arquitetura da aplicação.
Fonte: Próprios autores, 2013.
30
2 ANÁLISE E PROJETO DO SISTEMA
Este capítulo descreve a análise de mercado em que estão contidos alguns
exemplos de aplicações, e relata a parte documental do sistema, com a estruturação
e os requisitos coletados.
2.1 ANÁLISE DE MERCADO
Atualmente, existem vários aplicativos desenvolvidos para Android que visam
os turistas. Para efeito de comparação, vale citar: Guia Quatro Rodas 1001 Lugares,
SPMobile e Turismo Bento.
2.1.1 Guia Quatro Rodas 1001 Lugares
O Guia Quatro Rodas apresenta atrações com imagens, textos explicativos e
serviços necessários para planejar viagens, além de criar listas com lugares já
visitados e lugares a visitar. A figura 2.1a, exibe uma sequência aleatória de
imagens com atrativos turísticos, e se selecionada, exibirá a descrição do local.
Figura 2.1 – Guia Quatro Rodas 1001 Lugares.
Fonte: Guia Quatro Rodas 1001 Lugares, 2013.
O aplicativo traz localizações e mapas, usando a função GPS do aparelho,
podendo também buscar por proximidade dentro do mapa e traçar rotas até os
pontos de interesse, além de manter um banco de dados no aparelho móvel, não
precisa de conexão para consultar as descrições das atrações, conforme figura 2.1b.
31
O software possui API’s do Facebook, Google Maps e Twitter, no qual o
usuário
pode
compartilhar
comentários
e
visualizar
mapas
das
atrações
cadastradas, conforme figura 2.1c.
Esse aplicativo está disponível gratuitamente no Google Play, a loja de
aplicativos do Android.
2.1.2 SPMobile
SPMobile é uma realização da empresa oficial de turismo da cidade de São
Paulo (SPTuris). O aplicativo está disponível para smartphones e tablets, um guia
eletrônico que disponibiliza diversas informações e dá dicas de passeio. A
navegação é simples e autoexplicativa, feita através de ícones, com datas e locais
de eventos em toda a capital paulista. A figura 2.2a, exibe a tela principal do
aplicativo.
Figura 2.2 – SPMobile.
Fonte: SPMobile, 2013.
A figura 2.2b exibe a imagem de um ponto turístico, a descrição e oferece
opção de mapa, link para acesso ao site do local e efetuar ligação direto do
aplicativo.
O diferencial do aplicativo é que ao invés de apenas mostrar dados sobre a
oferta turística e cultural, a aplicação também acessa sites dos estabelecimentos e
possui acesso ao GPS calculando itinerários. Conforme figura 2.2c, tela no qual o
usuário informa o local de origem, o destino e o meio de transporte que irá utilizar, e
o aplicativo trará como resultado a rota a seguir ou o ponto de ônibus mais próximo.
32
O aplicativo é gratuito e pode ser encontrado no Google Play e na App Store,
que é a loja de aplicativos da Apple.
2.1.3 Turismo Bento
A cidade de Bento Gonçalves localizada no Rio Grande do Sul, lançou o guia
turístico oficial para dispositivos móveis, o projeto é uma parceria entre a Secretaria
Municipal de Turismo e o Bento Convention Bureau. O usuário tem informações de
cerca de 200 pontos turisticos e estabelecimentos comerciais de Bento Gonçalves. A
tela principal, na figura 2.3a, exibe um menu com as funções do aplicativo, como
guia, mapas, pesquisas e informações sobre a cidade, e no rodapé existe uma parte
que mostra uma sequência aleatória de imagens de locais que podem ser visitados.
Figura 2.3 – Turismo Bento.
Fonte: Turismo Bento, 2013.
Através do mapa da cidade o usuário consegue visualizar todas as opções de
lazer, conforme figura 2.3b, quando seleciona o local desejado, o aplicativo abre
uma tela com informações sobre a escolha, contendo fotos, descrição, sugestões e
mapa de como chegar ao local, conforme figura 2.3c. O aplicativo é gratuito e pode
ser encontrado no Google Play.
Com o intuito de formular ideias para o desenvolvimento deste trabalho, foram
feitas estas análises, no qual pode-se extrair de cada aplicação analisada pontos
interessantes para serem utilizados no desenvolvimento deste, dentre eles pode-se
ressaltar: a transição de imagens dos pontos turísticos e o uso da API do Google
Maps, para visualizar localizações e planejar rotas, e do Facebook, para o usuário
33
compartilhar comentários sobre locais visitados e obter seus dados sem precisar
realizar um cadastro.
A proposta deste trabalho é desenvolver um aplicativo Android que listará os
principais pontos turisticos das cidades sedes da Copa do Mundo de 2014, o qual
terá integração com a rede social Facebook, para realizar comentários e com os
mapas do Google Maps, para traçar rotas.
2.2 ATORES E ENVOLVIDOS NO PROCESSO
O único ator do sistema é o Usuário, que poderá listar as cidades sedes da
Copa do Mundo, assim como os pontos turisticos correspondentes a cada uma,
também terá as opções de gerar rotas e realizar comentários no Facebook, a partir
de um ponto turístico.
2.3 PERSPECTIVA DO PRODUTO
A intenção do produto é proporcionar ao usuário uma forma de conhecer um
determinado ponto turístico de seu interesse antes de visitá-lo efetivamente, pois
através dos comentários gerados por usuários que já visitaram, pela descrição e
pelas fotos deste ponto é possível ter uma ideia geral do local.
2.4 CARACTERÍSTICAS
A seguir serão descritas as funcionalidades da aplicação que poderão ser
realizadas pelo Usuário:

Visualização de Cidades. Funcionalidade para visualizar as cidades sedes.

Visualização de Pontos Turisticos. Funcionalidade para visualizar os pontos
turisticos de cada cidade sede;

Visualização de descrições e fotos. Funcionalidade para visualizar a descrição
e as fotos de cada ponto turístico;

Gerar rotas. Funcionalidade que gera uma rota até um ponto turístico, usando
para isso a API do Google Maps;

Inserção de comentários. Funcionalidade que insere comentários no
34
Facebook e no banco de dados sobre um ponto turístico.

Visualização de comentários. Funcionalidade para visualizar os comentários
sobre um ponto turístico.

Exclusão de comentários. Funcionalidade que o usuário poderá excluir
comentários realizados por ele sobre um ponto turístico.

Alteração de comentários. Funcionalidade que o usuário poderá alterar
comentários realizados por ele sobre um ponto turístico.

Responder comentários. Funcionalidade que o usuário poderá responder
comentários realizados por outros usuários.
2.5 ANÁLISE DE REQUISITOS
A aplicação deverá possibilitar:

A listagem das cidades sedes e de seus pontos turísticos;

A listagem da descrição e de fotos de cada ponto turístico;

A geração de rotas para cada ponto turístico;

A submissão de novos comentários;

A listagem de comentários de cada ponto turístico;

A remoção e alteração de comentários;

Dar respostas a comentários.

A visualização dos dados do aplicativo.
2.6 DIAGRAMA DE CLASSE
Figura 2.4 – Diagrama de Classe.
Fonte: Elaborada pelos autores, 2013.
35
A figura 2.5 representa a parte do diagrama que compreende o banco de
dados SQLite.
Figura 2.5 – Diagrama de Classe do banco de dados SQLite.
Fonte: Elaborada pelos autores, 2013.
A figura 2.6 representa a parte do diagrama que compreende o banco de
dados MySQL.
Figura 2.6 – Diagrama de Classe do banco de dados MySQL.
Fonte: Elaborada pelos autores, 2013.
2.7 DIAGRAMA DE CASO DE USO
Figura 2.7 – Diagrama de Caso de Uso.
Fonte: Elaborada pelos autores, 2013.
36
2.8 ESPECIFICAÇÕES DE HISTÓRIAS E DIAGRAMAS
2.8.1 Manter Comentário
O usuário pode submeter comentários em cada ponto turístico. Tem como
objetivo a interação dos usuários e mostrar o ponto de vista dos usuários em relação
ao ponto turístico.
Figura 2.8 – Diagrama de Atividade. Inserir Comentário.
Fonte: Elaborada pelos autores, 2013.
Figura 2.9 – Diagrama de Atividade. Excluir Comentário.
Fonte: Elaborada pelos autores, 2013.
37
Figura 2.10 – Diagrama de Atividade. Alterar Comentário.
Fonte: Elaborada pelos autores, 2013.
Figura 2.11 – Diagrama de Atividade. Responder Comentário.
Fonte: Elaborada pelos autores, 2013.
38
Figura 2.12 – MVC. Manter Comentários.
Fonte: Elaborada pelos autores, 2013.
Figura 2.13 – Diagrama de Sequência. Inserir Comentário.
Fonte: Elaborada pelos autores, 2013.
Figura 2.14 – Diagrama de Sequência. Excluir Comentário.
Fonte: Elaborada pelos autores, 2013.
39
Figura 2.15 – Diagrama de Sequência. Alterar Comentário.
Fonte: Elaborada pelos autores, 2013.
Figura 2.16 – Diagrama de Sequência. Listar Comentários.
Fonte: Elaborada pelos autores, 2013.
2.8.2 Manter Mapa
Mapas que o usuário pode acessar para visualizar o ponto turístico. Também
possui a funcionalidade de traçar rota, no qual tem como objetivo direcionar o
usuário do local em que esteja até o ponto turístico de interesse.
40
Figura 2.17 – Diagrama de Atividade. Mostrar Ponto Turístico.
Fonte: Elaborada pelos autores, 2013.
Figura 2.18 – Diagrama de Atividade. Traçar Rota.
Fonte: Elaborada pelos autores, 2013.
41
3 IMPLEMENTAÇÃO
Neste capítulo são apresentadas as interfaces gráficas da aplicação, bem
como partes do código fonte utilizado para o desenvolvimento do projeto.
3.1 INTERFACE GRÁFICA
Nesta seção são mostradas as telas da aplicação.
3.1.1 Tela Principal
A figura 3.1 representa as interfaces gráficas, desde a tela contendo o ícone
da aplicação até a tela principal. Ao iniciar a aplicação através do ícone, é
apresentada a tela de carregamento com o logo e após o carregamento ser
concluído, o usuário é levado à tela principal da aplicação contendo um ícone de
pesquisa por ponto turístico, um ícone da aplicação para sair e três abas com o foco
na aba Início, que contém uma transição de imagens aleatórias dos pontos
turísticos.
Figura 3.1 – Ícone do aplicativo, tela de carregamento e tela inicial.
Fonte: Elaborada pelos autores, 2013.
A figura 3.2 representa a tela das outras abas da tela principal. A aba Cidades
apresenta uma lista das cidades sedes da Copa do Mundo de 2014, com seus
respectivos estados. A aba Info apresenta a versão do aplicativo e o sobre do
mesmo.
42
Figura 3.2 – Tela da lista de cidades e da Info.
Fonte: Elaborada pelos autores, 2013.
A opção de pesquisar por ponto turístico é apresentada na figura 3.3. Esta
função está presente em todas as telas da aplicação, no qual o usuário digitando o
nome ou parte do nome do ponto turístico mostra uma lista com o local
correspondente. Pressionando-o, o usuário é levado ao ponto turístico.
Figura 3.3 – Pesquisa por ponto turístico.
Fonte: Elaborada pelos autores, 2013.
3.1.2 Tela Cidades
A figura 3.4 representa a tela de Cidades que é apresentada sempre que o
usuário selecionar uma cidade através da lista de Cidades na tela Principal. Nesta
tela, assim como nas próximas é apresentado um ícone da aplicação para voltar à
página anterior e o nome da cidade selecionada, logo abaixo do nome do aplicativo.
Possui duas abas com o foco na Descrição, que mostra uma breve descrição
43
da cidade selecionada, e a outra aba Pontos Turísticos é exibida uma lista com os
pontos turísticos desta cidade.
Figura 3.4 – Tela de uma cidade e a lista de pontos turísticos da mesma.
Fonte: Elaborada pelos autores, 2013.
3.1.3 Tela Pontos Turísticos
A figura 3.5 representa a tela de Pontos Turísticos que é apresentada sempre
que o usuário selecionar um ponto turístico através da lista de Pontos Turísticos ou
pela pesquisa ou selecionando uma imagem no início. Possui quatro abas com o
foco na primeira, Descrição, que mostra uma breve descrição do ponto turístico
selecionado e a segunda aba Fotos é exibida algumas imagens do ponto turístico,
que para realizar a transição entre as imagens deve-se fazer o movimento de slide
na tela do dispositivo móvel.
Figura 3.5 – Tela da descrição e das fotos de um ponto turístico.
Fonte: Elaborada pelos autores, 2013.
44
A figura 3.6 representa a terceira aba da tela de Pontos Turísticos. A aba
Mapa apresenta duas opções de visualizar o mapa através da API do Google Maps.
A primeira é a imagem de satélite do ponto turístico, e a segunda é a opção de
traçar rota, no qual é obtida por meio da Internet a localização geográfica do
dispositivo e através do banco de dados da aplicação é obtida as coordenadas do
ponto turístico, traçando uma linha vermelha no trajeto a ser percorrido. Caso o
usuário não esteja conectado com a Internet será apresentado uma mensagem e o
mapa ficará indisponível.
Figura 3.6 – Tela do mapa do ponto turístico.
Fonte: Elaborada pelos autores, 2013.
A figura 3.7 representa a última aba da tela de Pontos Turísticos, os
Comentários, no qual é necessária uma conta ativa no Facebook para acessá-la,
assim, quando o usuário seleciona está opção pela primeira vez, a API do Facebook
é invocada para que seja realizada a autenticação do usuário.
Figura 3.7 – Tela de autenticação do Facebook.
Fonte: Elaborada pelos autores, 2013.
45
Após a autenticação ser realizada com sucesso, será apresentada a tela de
permissões, a qual informa ao usuário quais permissões Brazil Tourism deseja ter
acesso da conta Facebook, como publicar mensagens na linha do tempo, por
exemplo.
Com
as
permissões
autorizadas
pelo
usuário,
automaticamente
é
apresentado o menu da aba Comentários, com as opções de visualizar todos os
comentários realizados pelos usuários, visualizar comentários feitos pelo próprio
usuário e a opção de efetuar comentário, conforme é mostrado na figura 3.8. Caso
não exista conexão com a Internet ou a autenticação com o Facebook foi mal
sucedida aparecerá mensagens de erro.
Figura 3.8 – Tela de comentários e seus possíveis erros.
Fonte: Elaborada pelos autores, 2013.
A figura 3.9 representa a terceira opção Comentários, que possibilita
compartilhar um comentário. É possível postar um comentário no Facebook com
uma imagem do ponto turístico e este por sua vez também é armazenado em um
banco de dados de um servidor, para posteriormente outros usuário acessarem.
Figura 3.9 – Realizar comentário.
Fonte: Elaborada pelos autores, 2013.
46
A publicação no Facebook ficará conforme a figura 3.10.
Figura 3.10 – Publicação no Facebook.
Fonte: Elaborada pelos autores, 2013.
A figura 3.11 representa a primeira opção da aba de Comentários, que
possibilita visualizar todos os comentários realizados pelos usuários, os quais são
listados em ordem de data e carregados conforme se chega ao fim da lista para
evitar sobrecarregamento. Selecionando um comentário é possível visualizá-lo por
extenso, comentá-lo e visualizar uma lista com todos os comentários sobre este
comentário, também por ordem de data. Quando se Comentar o Comentário, o
comentário apenas é armazenado no banco de dados no servidor e não será
postado no Facebook. E quando se seleciona um comentário da lista de comentários
é possível apenas visualiza-lo por extenso.
Figura 3.11 – Todos Comentários.
Fonte: Elaborada pelos autores, 2013.
47
A figura 3.12 representa a segunda opção da aba de Comentários, que
possibilita visualizar todos os comentários realizados pelo usuário, possui as
mesmas funções da opção de visualizar todos os comentários, com a diferença de
que nesta opção é possível alterar ou excluir o comentário realizado.
Figura 3.12 – Meus Comentários.
Fonte: Elaborada pelos autores, 2013.
Em ambas as opções de Todos Comentários e Meus Comentários, quando
selecionado um comentário e aparece o nome do autor em itálico, se o usuário
pressionar em cima, será aberto o navegador padrão de Internet e redirecionado
para a página do Facebook do autor do comentário, apresentado na figura 3.13.
Figura 3.13 – Pagina autor comentário.
Fonte: Elaborada pelos autores, 2013.
3.2 DISCUSSÃO DO CÓDIGO-FONTE
Nesta seção, são mostradas partes dos códigos-fonte de métodos que
48
compõem a aplicação.
O código abaixo apresenta o método responsável por se comunicar com o
Web Service, inserindo no banco um comentário especifico. O método chamado
inserirComentario recebe como parâmetro um objeto Comentário, no qual este é
transformado em JSON, através do objeto Gson, que é de uma biblioteca importada
para tal finalidade, para ser enviado para o Web Service. Após este procedimento é
preciso passar o caminho do Web Service e verificar se a comunicação e a resposta
foram bem sucedidas.
Figura 3.14 – Método para inserir Comentário no servidor.
Fonte: Elaborada pelos autores, 2013.
A figura 3.15 mostra os métodos responsáveis por abrir e fechar,
respectivamente, o banco de dados local. Para abrir o banco é necessário indicar o
caminho do diretório em que esteja e o nome do banco de dados criado.
Figura 3.15 – Método para abrir e fechar banco de dados local.
Fonte: Elaborada pelos autores, 2013.
A figura 3.16 mostra o método responsável por retornar todas as cidades
cadastradas no banco de dados local. Para isto é preciso passar a consulta a ser
realizada, através de um objeto Cursor, que é responsável por armazenar o
conteúdo de uma consulta ao banco de dados, criar uma List para armazenar as
cidades e um laço de repetição, que processa registro por registro conforme foi
49
retornado do banco de dados, atribuindo o nome da cidade e o estado a um objeto
Cidade, e este é atribuído a lista, que é retornada pelo método, mas antes é
necessário fechar a conexão com o banco.
Figura 3.16 – Método listar todas cidades.
Fonte: Elaborada pelos autores, 2013.
A figura 3.17 mostra o método responsável por exibir mensagens na tela
de comentários, recebendo como argumento a mensagem a ser exibida. Este
processo é realizado dentro de uma Thread para não sobrecarregar a memória, pois
assim fará parte de um processo.
Figura 3.17 – Método exibir mensagens.
Fonte: Elaborada pelos autores, 2013.
A figura 3.18 mostra o método responsável por verificar a conexão com a
Internet, no qual é verificado através de um objeto ConnectivityManager se existe
alguma conectividade com a Internet, seja ela através de uma conexão de dados ou
50
wireless. O retorno será verdadeiro ou falso.
Figura 3.18 – Método exibir mensagens.
Fonte: Elaborada pelos autores, 2013.
A figura 3.19 mostra o código xml da tela de abertura da aplicação.
Figura 3.19 – Código xml da tela de abertura do aplicativo.
Fonte: Elaborada pelos autores, 2013.
51
CONCLUSÃO
Pensando nos eventos esportivos no Brasil nos próximos anos, no mercado
do sistema operacional Android e no crescimento da rede social Facebook, este
trabalho apresenta o desenvolvimento de uma aplicação Android que contém
informações pertinentes sobre pontos turísticos, tais como, descrições, fotos, mapas
e comentários dos usuários, para isso ser possível integramos APIs a aplicação.
Para desenvolver aplicativos para a plataforma Android, são necessários
vários testes e adaptações em diferentes versões e/ou modelos, justamente pela
grande
variedade
de
hardware
e
software
disponíveis,
dificultando
seu
desenvolvimento, no qual precisa-se tornar a aplicação mais genérica possível ou
desenvolver outras versões com suporte a diferentes versões do sistema ou
tamanho de telas.
As grandes dificuldades encontradas foram à integração do aplicativo com o
banco de dados no servidor, para armazenar os comentários, e com as APIs, mas
isto foi facilmente superado com estudos e pesquisas, buscando sempre a melhor
forma de desenvolver.
O trabalho atingiu o seu objetivo no desenvolvimento da aplicação móvel
visando a Copa do Mundo 2014 com integração a rede social Facebook e outros
recursos serão adicionados em futuras atualizações do aplicativo, como: denúncia
de comentários mal intencionados pelos usuários, cadastro para patrocinadores,
atualização automática dos pontos turisticos sem a necessidade de gerar uma nova
atualização para a aplicação e uma versão para iOS.
52
REFERÊNCIAS BIBLIOGRÁFICAS
ABOUT SQLITE. SQLite. Disponível em: <http://www.sqlite.org/about.html> Acesso
em: 13 mai. 2013.
AGUIAR,
G.
M.
Índices
e
Foreing
Keys.
Disponível
em:
<http://gustavomaiaaguiar.wordpress.com/tag/chaves-estrangeiras/> Acesso em: 13
mai. 2013.
ALECRIM, E. Banco de dados MySql e PostgreSQL. 2008. Disponível em:
<http://www.infowester.com/postgremysql.php> Acesso em: 13 mai. 2013.
ANDROID ATINGE 68% DE PARTICIPAÇÃO DE MERCADO. G1 Tecnologia e
Games. 2012. Disponível em: <http://g1.globo.com/tecnologia/noticia/2012/12/
android-atinge-68-de-participacao-de-mercado-em-2012-diz-pesquisa.html> Acesso
em: 17 mar. 2013.
ANDROID É O SISTEMA MÓVEL MAIS VULNERÁVEL. Folha de S.Paulo. 2012.
Disponível em: < http://www1.folha.uol.com.br/tec/1055411-android-e-o-sistemamovel-mais-vulneravel-a-hackers-diz-estudos.html> Acesso em: 15 mai. 2013.
ANISZCZYK, C; GALLARDO, D. Introdução à Plataforma Eclipse. 2012.
Disponível em: <http://www.ibm.com/developerworks/br/library/os-eclipse-platform/>
Acesso em: 13 mai. 2013.
API ANDROID DO GOOGLE MAPS. Google Developers. Disponível em:
<https://developers.google.com/maps/documentation/android/?hl=pt-BR>
Acesso
em: 15 mai. 2013.
API
DO
GOOGLE
MAPS.
Google
Developers.
Disponível
em:
<https://developers.google.com/maps/mobile-apps?hl=pt-br> Acesso em: 15 mai.
2013.
DANA, L. CONHEÇA A HISTÓRIA DO ANDROID. Super Interessante. Disponível
em:<http://super.abril.com.br/galerias-fotos/conheca-historia-android-sistemaoperaci
onalmobile-google-688822.shtml#9> Acesso em: 13 mai. 2013.
DAQUINO, F. A história das redes sociais: como tudo começou. Tecmundo. 2012.
Disponível em: <http://www.tecmundo.com.br/redes-sociais/33036-a-historia-dasredes-sociais-como-tudo-comecou.htm> Acesso em: 17 mar. 2013.
DAQUINO, F. 14 novos recurso Android Kit Kat. Tecmundo. 2013. Disponível em:
http://www.tecmundo.com.br/kitkat/4682214novosrecursosuteisepoucocomentadosd
oandroidkitkat.htm?utm_source=outbrain&utm_medium=recomendados&utm_campa
ign=outbrain=obinsite> Acesso em: 25 nov. 2013.
DALL'OGLIO, P. Usando o SQLite. 2007. Disponível em <http://pablo.blog.br/49>
Acesso em: 17 mai. 2013.
53
FACEBOOK
API,
2013.
Graph
API.
2012.
Disponível
em:
<https://developers.facebook.com/docs/reference/api> Acesso em: 15 mai. 2013.
DEVELOPERSWORKS
BRASIL.
Imasters.
2011.
Disponível
em:
http://imasters.com.br/artigo/20274/apis/explorando-funcionalidades-das-apis-dofacebook> Acesso em: 15 mai. 2013.
<
FAQ. Open Handset Alliance. Disponível em: <http://www.openhandsetalliance.
com/oha_faq.html> Acesso em: 13 mai. 2013.
FREITAS, R. A IMPORTÂNCIA DO GOOGLE MAPS NO MARKETING DIGITAL.
Being. Disponível em: <http://blog.being.com.br/index.php/marketing/google-mapsno-marketing-digital/> Acesso em: 15 mai. 2013.
GONÇALVES, E. C. SQLite, Muito Prazer. 2010. Disponível em:
<http://www.devmedia.com.br/sqlite-muito-prazer/7100> Acesso em: 13 mai. 2013.
JAVA E ORIENTAÇÃO A OBJETOS. Caelum. Disponível em: <http://www.caelum.
com.br/apostila-java-orientacao-objetos/> Acesso em: 15 mai. 2013.
LANDIM, W. Android 4.2, traz pequenas atualizações. 2013. Disponível em:
<http://www.tecmundo.com.br/android/36526-android-4-2-2-traz-pequenas-atualizac
oes.htm> Acesso em: 13 mai. 2013.
LECHETA, R. Google Android. 2. ed. São Paulo: Novatec, 2010.
LEITE, G. História do Android. Disponível em: <http://tecnologiaeprogramas
android.blogspot.com.br/2013/03/historia-do-android.html> Acesso em: 13 mai.
2013.
MAFFEI, P. SGBD MYSQL. Mania de Estudar. 2011. Disponível em: <
http://www.maniadeestudar.com/2011/11/sgbd-mysql-2-03112011.html> Acesso em:
15 mai. 2013.
MARTINS, G. História do sistema operacional Android. 2012. Disponível em: <
http://www.celular-android.com/historia-do-sistema-operacional-android/>
Acesso
em: 13 mai. 2013.
MILANI, A. MySQL – Guia do Programador. 1. ed. São Paulo: Novatec, 2007.
MINI SQL. Hughes Technologies. Disponível em: <http://www.hughes.com.au/
products/msql/> Acesso em: 13 mai. 2013.
MOREIRA, E. A ONU quer estabelecer a paz entre os fabricantes de smartphones.
Target HD. 2012. Disponível em: <http://targethd.net/a-onu-quer-estabelecer-a-pazentre-os-fabricantes-de-smartphones/> Acesso em: 01 abr. 2013.
NOSSA HISTÓRIA A FUNDO. Google. Disponível em: <http://maps.google.
com.br/intl/pt-BR/about/company/history/> Acesso em: 15 mai. 2013.
54
OVERVIEW OF THE FACEBOOK PLATFORM. Facebook Developers. Disponível
em: <http://developers.facebook.com/docs/overview/> Acesso em: 14 mai. 2013
PERBONI, M. APLICAÇÕES ANDROID. Marcos Perboni. 2013. Disponível em:
<http://marcosvperboni.wordpress.com/2013/02/15/utilizando-recursos-nativos-desms-em-aplicacoes-android/> Acesso em: 17 mai. 2013.
ROOS, D. COMO APROVEITAR MELHOR UMA API. Como tudo funciona. 2009.
Disponível em: <http://informatica.hsw.uol.com.br/conferencia-api3.htm> Acesso em:
21 mai. 2013.
STRICKLAND, J. COMO FUNCIONA O ANDROID. Como tudo funciona.
Disponível em: <http://informatica.hsw.uol.com.br/google-phone2.htm> Acesso em:
15 mai. 2013.
TANENBAUM, Andrew S. Organização Estruturada de Computadores. 5. Ed. São
Paulo: Prentice Hall (Pearson), 2007.
TAURION, C. SEGURANÇA NO ANDROID. DeveloperWorks. 2010. Disponível em:
<https://www.ibm.com/developerworks/mydeveloperworks/blogs/ctaurion/entry/segur
an_c3_a7a_no_android?lang=en> Acesso em: 15 mai. 2013.
TONIN, G. S. Tendências em comutação móvel. São Paulo: Universidade de São
Paulo, 2012. Disponível em: <http://grenoble.ime.usp.br/~gold/cursos/2012/movel
/mono-1st/2305-1_Graziela.pdf> Acesso em: 17 mar. 2013.
VALIN, A. O QUE É SAAS E WAAS?. Tecmundo. 2009. Disponível em:
<http://www.tecmundo.com.br/jogos/2616-o-que-e-saas-e-waas-.htm> Acesso em:
21 mai. 2013.
VINICÍUS, C. A história do sistema Android. Disponível em: <http://www.dicas
paraandroid.com/2013/02/a-historia-do-sistema-android.html> Acesso em: 13 mai.
2013.
55
APÊNDICE A – INSTALAÇÃO E CONFIGURAÇÃO DO SDK E ADT
DO ANDROID E DA IDE DO ECLIPSE
Este anexo descreve a instalação e a configuração do SDK e ADT do Android
e descreve um pouco sobre a Integrated Development Environment (IDE) do
Eclipse. Para instalar o SDK é preciso ter instalado a versão mais recente de dois
softwares que não fazem parte do SDK, que são o Java Development Kit (JDK), que
oferece ferramentas como o compilador Java, e o IDE do Eclipse. Pode-se
desenvolver em outras IDE’s, a escolha do Eclipse se deve ao fato de oferecer
suporte ao maior número de ferramentas do SDK do Android. Caso o JDK já esteja
instalado não é necessário reinstalá-lo.
Para fazer o download do Eclipse, é só escolher uma das versões, conforme
figura A.1, para este projeto foi utilizado o Eclipse Classic, extrair da pasta e
começar a utilizar, disponível neste endereço: http://www.eclipse.org/downloads/.
Figura A.1 – Página de download da IDE do Eclipse.
Fonte: Eclipse, 2013.
Para fazer o download do JDK, basta abrir a página de download e
automaticamente será detectada a versão do sistema, assim como está
representado na figura A.2, disponível em: http://www.oracle.com/technetwork/java
/javase/do wnloads/index.html.
56
Figura A.2 – Página de downloads do JDK.
Fonte: Oracle, 2013.
Com esses softwares instalados, basta baixar o SDK do Android
correspondente ao seu sistema e extrair os arquivos, conforme a figura A.3,
disponível no endereço: http://developer.android.com/sdk/index.html.
Figura A.3 – Página de download do SDK do Android.
Fonte: Android Developers, 2013.
57
Depois de baixado e descompactado, abra a pasta e acesse o arquivo SDK
Manager, é um gerenciador de downloads, no qual é possível instalar pacotes que
oferecem suporte a diversas versões do Android e a vários níveis de API, conforme
mostra a figura A.4.
Figura A.4 – SDK Manager.
Fonte: Próprios autores, 2013.
É possível escolher qualquer versão em que se deseja desenvolver, desde a
mais recente até a mais antiga. É importante lembrar que o SDK Manager é um
gerenciador de downloads, e dependendo da conexão com a Internet e da
quantidade de pacotes a serem baixados, poderá demorar muito tempo.
Depois de instalado e feito o download das versões necessárias, é possível
criar uma máquina virtual delas com configurações simulando um smartphone ou
tablet, através do AVD Manager. É possível simular o tamanho da tela, o tamanho
da memória e outras características do hardware emulado. É necessário tê-lo
configurado com uma versão do Android para poder testar suas aplicações, caso
não tenha um dispositivo real.
Para criar uma nova máquina virtual abra o AVD Manager, que já está
incluído no pacote no SDK, e clique em new, depois dê um nome, escolha o
58
tamanho da tela, a versão em que deseja criar a máquina e as características do
hardware a ser emulado, conforme a figura A.5. Na escolha das versões aparecerão
escrito Android e a outra Google, representando a mesma versão. A diferença entre
elas é que a que está escrito Google, já possui a aplicação do Google Maps, caso
haja necessidade de testar alguma aplicação que use o aplicativo.
Figura A.5 – Criando uma máquina virtual Android no AVD Manager.
Fonte: Próprios autores, 2013.
Com o SDK e o AVD instalados e configurados, para começar a programar é
preciso de uma IDE para o desenvolvimento e para isso foi utilizado o Eclipse.
O Eclipse é uma que foi criado pela IBM em 2001. A IBM doou todo o código
do Eclipse para a Eclipse Foundation, empresa fundada em 2004, que não visa a
lucratividade e se mantém através de seus associados que hospedam projetos do
Eclipse e que tem a responsabilidade de gerenciar e dirigir o desenvolvimento
contínuo do Eclipse.
Este software livre é uma plataforma, baseada em Java, para o
desenvolvimento de aplicações, no qual é composto de estruturas e ferramentas
para o desenvolvimento e gerenciamento de softwares. O Eclipse possui diversos
59
plug-ins e a possibilidade de se adicionar mais, para procurar atender diferentes
necessidades de diferentes programadores. Dentre estes se podem citar o Java
Development Toolkit (JDT), responsável por interpretar todo o código Java, além de
plug-ins para gerar diagramas Unified Modeling Language (UML), que suportam
servidores de aplicações e até visualizadores de banco de dados. Embora seja
desenvolvido na linguagem de programação Java, o Eclipse não se limita apenas ao
Java, já que existem plug-ins que suportam diferentes linguagens de programação
como C/C++ e COBOL. (ANISZCZYK, 2012)
Esta IDE gera uma workspace, ou um espaço de trabalho que define um
diretório que será gravado os projetos e as configurações. O Eclipse possui
inovações em relação à maioria das IDEs. Possui a funcionalidade de customização
do ambiente de trabalho, no qual é composto por painéis, conhecidos como
visualizações, no qual várias visualizações denomina-se perspectiva, que é um
conjunto básico de visualizações para gerenciar projetos, visualizar e editar arquivos
de um projeto. Usa a biblioteca gráfica chamada Standart Widget Toolkit (SWT), que
utiliza componentes nativos do sistema operacional. (ANISZCZYK, 2012)
Também, possui a ferramenta, no qual à medida que o código é salvo o
Eclipse compila em segundo plano e verifica possíveis erros de sintaxe, por padrão
esses erros são sublinhados em vermelho, e um ponto vermelho aparece na
margem indicando o local. Outros erros são indicados com uma lâmpada na margem
esquerda, estes são problemas que o editor encontrou recursos para possível
correção.
Assim que o código é compilado sem erros é possível executar o
programa. Também é possível executar o código no depurador Java, com a
possibilidade de definir pontos de interrupções. (ANISZCZYK, 2012)
Outro recurso disponível é o quick fixes, que corrige boa parte dos erros na
programação e ajuda na digitação de códigos repetitivos. Também existe o refactor,
que auxilia na alteração do código, para melhorar a clareza e organizá-lo, faz com
que ao mudar o nome de uma variável, método ou mesmo uma classe, haja a
atualização de todas as outras referências usadas no código. (ANISZCZYK, 2012)
Após conhecer um pouso da plataforma, temos que adicionar ao Eclipse um
plug-in Android Developer Toolkit (ADT), que adiciona funcionalidades específicas
do Android, no qual permite que o Eclipse compile aplicativos para o Android, inicie o
emulador Android, se conecte aos seus serviços de depuração, edite arquivos
60
Extensible Markup Language (XML) e crie pacotes de aplicativos para o Android,
arquivos com extensão .apk.
Para configurar esse plug-in no Eclipse entre no menu Help e acesse a
opção Install New Software. No campo Work With digite o seguinte endereço:
https://dl-ssl.google.com/android/eclipse/. Clicando em Add aparecerão alguns plugins, marque a opção Developer Tools, conforme a figura A.6, depois continue,
clicando em Next.
Figura A.6 – Adicionando plug-in do Android ao Eclipse.
Fonte: Próprios autores, 2013.
Na página seguinte aparecerá apenas se a instalação deu certo, então clique
em Next novamente. Em seguinte terá que aceitar os termos de uso de
determinados aplicativos. Por fim apenas clicando em Finish o Eclipse irá reiniciar.
Assim tudo estará pronto para começar o desenvolvimento para aplicações Android.
Para criar uma aplicação Android, abra o Eclipse entre no menu File e na
opção New, clique em Project. Na janela que abre selecione Android Application
Project e clique em Next. Em seguida aparecerá uma janela em que terá que colocar
o nome da aplicação, do projeto e do pacote do projeto, e escolher qual será a
mínima versão do Android suportada, a versão máxima suportada, a versão em que
o aplicativo será compilado e um tema para o aplicativo, que dependerá da versão
61
escolhida.
Figura A.7 – Criação de um projeto Android.
Fonte: Próprios autores, 2013.
Clicando em Next, aparecerá alguns itens para serem escolhidos ou não,
como criar ícone customizável para o aplicativo, criar uma Activity inicial, que é uma
atividade em que cada tela possui uma e o caminho a ser salvo o projeto.
Figura A.8 – Criação de um projeto Android.
Fonte: Próprios autores, 2013.
62
Na próxima tela, será a escolha do ícone da aplicação, no qual é disposto
em três tamanhos diferentes, devido a grande variedade de resoluções de telas nos
dispositivos com Android. Pode-se deixar o ícone padrão ou procurar um na opção
Image File. Clicando em Next aparecerá uma janela para escolha do tema da
Activity criada, essa também dependerá da versão escolhida, pois algumas versões
mais antigas não dão suporte a temas. Depois do Next, surgirá a última tela, em que
é escolhido o nome da Activity criada e do layout da aplicação, e o modo da
navegação da aplicação, mas esta opção dependerá da versão escolhida para o
desenvolvimento. Após isso clique em Finish.
Figura A.9 – Criação de um projeto Android.
Fonte: Próprios autores, 2013.
Após finalizar, o Eclipse criará o projeto com diversas pastas, criando uma
estrutura de diretórios e arquivos. A pasta src, é o diretório do projeto que contém as
classes Java, é onde foi criado a Activity. O diretório gen contém a classe R, que é
gerada automaticamente e permite que a aplicação acesse recursos como arquivos
e imagens utilizando as constantes desta classe, está classe jamais deve ser
alterada manualmente. A pasta assets contém arquivos opcionais do projeto, como
uma fonte customizada. O diretório res contém recursos da aplicação, como
imagens, layouts das telas e arquivos de internacionalização, no qual possui três
subpastas: drawable, layout e values. A pasta drawable contém as imagens da
63
aplicação, incluindo o ícone, possui três pastas para colocar imagens de diferentes
resoluções para ficar com tamanhos bons para cada tela. A pasta layout contém
arquivos Extensible Markup Language (XML) de layouts para construir telas de
aplicação e com a possibilidade de editá-las com o editor do Eclipse. O diretório
values contém os arquivos XML utilizado para internacionalização da aplicação.
Figura A.10 – Criação de um projeto Android.
Fonte: Próprios autores, 2013.
A Activity criada possui a estrutura ilustrada na figura A.11, no qual é uma
herança da classe Activity e o acessar a qualquer componente do layout, inclusive o
próprio layout, deve-se usar a classe R.
Figura A.11 – Código inicial de um projeto Android.
Fonte: Próprios autores, 2013.
64
Para ser compilado deve-se ter configurado uma máquina virtual no AVD
compatível com a versão criada, ou ter plugado no computador pelo Universal Serial
Bus (USB). Para executar clique no play localizado nas opções, ou clique com o
botão direito em cima do projeto, selecione a opção Run as e clique em Android
Application, já será detectado se tem algum dispositivo Android plugado no
computador, se não irá abrir o AVD Manager caso tenha mais de uma máquina
virtual, ou se tiver apenas uma abrirá direto. Assim o aplicativo executará.
Figura A.12 – Aplicativo compilado pela máquina virtual.
Fonte: Próprios autores, 2013.
65
APÊNDICE B – CONFIGURAÇÃO DA API DO GOOGLE MAPS
Este anexo descreve a configuração da API do Google Maps em um projeto
Android. Para começar a configuração é necessário obter a APP Key, que é uma
chave única para cada aplicativo, necessária para fazer a comunicação com o
Google Maps. Esta chave é gerada através de um certificado digital conhecido com
SHA-1. Para obter este certificado, que é único para cada computador, basta digitar
o comando abaixo no Prompt de Comando do Windows na seguinte pasta:
C:\Program Files\Java\jre7\bin.
Após obtido o certificado digital SHA-1, é preciso acessar o site:
https://cloud.google.com/ e clicar em Get Started, para obter a chave do Google
Maps. Em seguida irá solicitar a criação de um novo projeto, conforme figura B.1.
Figura B.1 – Criando um projeto no Google Cloud.
Fonte: Google Cloud, 2013.
Com o projeto criado é possível adicionar diversos recursos. Dentro do projeto
o menu do lado esquerdo possui a opção APIs & auth e no submenu desta, a opção
API, que lista todas as APIs do Google. Para utilizar o Google Maps dentro de um
aplicativo Android, utilizou-se a API Google Maps Android API v2. Clicando nela
basta liga-la, pois de padrão todas as APIs ficam desligadas. A figura B.2 representa
a tela do Google Cloud com a API do Google Maps Android habilitada.
66
Figura B.2 – API Google Maps Android habilitada.
Fonte: Google Cloud, 2013.
Acessando a opção Registered Apps no menu, aparecerá a opção Register
App e em seguida um pequeno formulário deverá ser preenchido com o nome do
aplicativo e do pacote e com o certificado SHA-1, conforme figura B.3.
Figura B.3 – Registrando novo aplicativo Google Cloud.
Fonte: Google Cloud, 2013.
Na tela seguinte na opção Android Key já irá aparecer a API Key.
Antes de realizar o exemplo com o Google Maps, é necessário realizar o
download no próprio SDK Manager do Android o arquivo Google Play Service que
traz a biblioteca do Google Maps, conforme figura B.4.
67
Figura B.4 – Facebook Developers.
Fonte: Próprios autores, 2013.
Após
instalada,
a
biblioteca
se
encontrará
dentro
da
pasta
Android>Extras>google>google_play_services>libproject e deverá ser adicionada ao
projeto. Antes é preciso criar o projeto selecionando uma versão Google API, com
Android 4.0+ e lembrando que o pacote deve possuir o mesmo nome que foi dado
no registro do aplicativo no Google Cloud. A estrutura do projeto está representada
na figura B.5.
Figura B.5 – Estrutura do projeto Mapas.
Fonte: Próprios autores, 2013.
68
Para adicionar a biblioteca do Google Service deve-se selecionar a opção
File>Import>Existing Android Code Into Workspace, e procurar a biblioteca. Logo
após, será necessário adicionar ao projeto está biblioteca, selecionando o projeto e
acessando a opção Project>Properties e na opção Library, basta ir em Add e
selecionar a biblioteca do Facebook adicionada anteriormente, conforme figura B.6.
Figura B.6 – Adicionando a biblioteca do Google Service ao projeto.
Fonte: Próprios autores, 2013.
A figura B.7 representa parte do arquivo AndroidManifest.xml, no qual é
necessário fornecer algumas permissões para o aplicativo e a figura B.8 representa
o local que se deve colocar o APP Key para acessar o Google Maps dentro deste
mesmo arquivo.
Figura B.7 – Permissões no AndroidManifest.xml.
Fonte: Próprios autores, 2013.
Figura B.8 – APP Key AndroidManifest.xml.
Fonte: Próprios autores, 2013.
69
Para este exemplo foram criadas duas classes, a Principal, que é uma
atividade, é responsável apenas por abrir a classe Mapa, que é um Fragmento. A
classe Principal está representado na figura B.9 e seu layout, o principal.xml, na
figura B.10.
Figura B.9 – Código classe Principal.
Fonte: Próprios autores, 2013.
Figura B.10 – Código principal.xml.
Fonte: Próprios autores, 2013.
A figura B.11 representa a classe Mapa que é responsável por trazer o mapa
na tela e a figura B.12 representa o layout desta classe, o arquivo mapa.xml.
Figura B.11 – Código classe Mapa.
Fonte: Próprios autores, 2013.
70
Figura B.12 – Código mapa.xml.
Fonte: Próprios autores, 2013.
Está quase pronto, antes porém é necessário instalar no emulador dois
aplicativos necessários para o funcionamento do mapa. Estes arquivos estão
disponíveis nos sites: https://www.dropbox.com/s/udjg63v0m8ual1f/com.android.
vending-20130716.apk e https://www.dropbox.com/s/al5sn58t9ju7jm4/com.google.
android.gms-20130716.apk. Para instalar no emulador é preciso primeiramente abrir
o emulador e depois abrir o Prompt de Comando e ir até a pasta do Android, no
seguinte caminho: Android>platform-tools e digitar o comando abaixo para cada
aplicativo.
Assim executando o aplicativo, exibirá o mapa, conforme figura B.13.
Figura B.13 – Tela do Exemplo Mapas.
Fonte: Próprios autores, 2013.
71
APÊNDICE C – CONFIGURAÇÃO DA API DO FACEBOOK
Este anexo descreve sobre a configuração da API do Facebook em um
projeto Android. Para começar a configuração é necessário realizar o download do
SDK
do
Facebook,
disponível
https://developers.facebook.com/resources
no
endereço:
/facebook-android-sdk-current.zip.
Também é necessário configurar o aplicativo no Facebook Developers, através do
site: https://developers.facebook.com/, acessando a opção Apps, disponível na barra
de menu superior, conforme representa a figura C.1.
Figura C.1 – Facebook Developers.
Fonte: Facebook Developers, 2013.
Na página seguinte aparecerá a opção Criar Novo Aplicativo, no qual será
cadastrado o aplicativo que deseja obter acesso ao Facebook. A figura C.2
representa a opção Criar Novo Aplicativo.
Figura C.2 – Opção de Criar Novo Aplicativo Facebook.
Fonte: Facebook Developers, 2013.
72
Clicando em continuar, irá surgir uma tela de verificação de segurança, no
qual basta preencher o campo com o texto da imagem. Com esta primeira etapa
concluída, a tela seguinte terá algumas configurações básicas para a aplicação,
como o nome do aplicativo e a opção de Sandbox Mode, que restringe a
visualização das publicações realizadas pelo aplicativo apenas ao desenvolvedor,
além de apresentar o App ID, que será o código de acesso entre o aplicativo e o
Facebook. A figura C.3 representa a tela das configurações básicas.
Figura C.3 – Configurações básicas API Facebook.
Fonte: Facebook Developers, 2013.
Após este procedimento deve-se selecionar a opção Aplicativo Nativo do
Android, disponível um pouco mais abaixo. Antes de preencher estes campos é
necessário possuir a Key Hashes, uma chave que é única para cada computador.
Para obtê-la basta digitar o comando abaixo no Prompt de Comando do Windows na
seguinte pasta: C:\Program Files\Java\jre7\bin.
Agora deve-se preencher, o nome do pacote e da classe do projeto Android
que deverá ser igual ao que será criado, selecionar se deseja ou não uma tela de
login padrão do Facebook e uma tela de publicação e copiar a chave para o campo
Key Hashes, conforme a figura C.4.
73
Figura C.4 – Configurações básicas API Facebook.
Fonte: Facebook Developers, 2013.
Finalizado estas configurações deve-se salvar na opção disponível no fim da
página.
Agora é necessário criar o aplicativo que acesse o Facebook, por meio da
API. Crie um aplicativo com os dados usados na configuração no Facebook, apenas
o nome do projeto pode ser diferente, conforme figura C.5.
Figura C.5 – Estrutura do projeto APIFacebook.
Fonte: Próprios autores, 2013.
É preciso adicionar o SDK do Facebook ao projeto. Deve-se selecionar a
opção File>Import>Existing Android Code Into Workspace, e procurar a pasta do
SDK e selecionar apenas o projeto Facebook, que na verdade é uma biblioteca.
Logo após, será necessário adicionar ao projeto está biblioteca, selecionando o
projeto e acessando a opção Project>Properties e na opção Library, basta ir em Add
e selecionar a biblioteca do Facebook adicionada anteriormente, conforme figura
C.6.
74
Figura C.6 – Adicionando a biblioteca do Facebook ao projeto.
Fonte: Próprios autores, 2013.
Agora o projeto já está pronto para acessar o Facebook. No exemplo, existe
um TextView na tela que irá recuperar o nome do usuário e alterar o texto. Para isso
é necessário algumas variáveis e alguns métodos, como explica o código abaixo,
conforme figura C.7.
Figura C.7 – Código para acessar e recuperar o nome do Facebook.
Fonte: Próprios autores, 2013.
75
O arquivo activity_main.xml deverá possuir a seguinte forma, conforme figura
C.8.
Figura C.8 – Código da tela activity_main.xml.
Fonte: Próprios autores, 2013.
Antes de executar o projeto é necessário fornecer ao projeto a permissão de
acesso à Internet, adicionando o trecho abaixo ao arquivo AndroidManifest.xml.
A figura C.9 representa a execução do projeto, no qual abrirá a autenticação
do Facebook, solicitando o login e a senha. Em seguida, será apresentado ao
usuário as permissões que o aplicativo precisa e se autoriza publicar em sua linha
do tempo, após concluído a tela da aplicação mostrará o nome do usuário, conforme
figura C.9.
Figura C.9 – Telas do exemplo em funcionamento.
Fonte: Próprios autores, 2013.
Download