CCOMDroid

Transcrição

CCOMDroid
CCOMDroid
Bruno Teixeira Martins - 20168
Trabalho realizado sob a orientação de
Nuno Gonçalves Rodrigues
Engenharia Informática
2013/2014
CCOMDroid
Relatório da UC de Projeto
Licenciatura em Engenharia Informática
Escola Superior de Tecnologia e de Gestão
Bruno Martins
2013/2014
iii
A Escola Superior de Tecnologia e Gestão não se responsabiliza pelas opiniões expressas
neste relatório.
iv
Certifico que li este relatório e que na minha opinião, é adequado no seu
conteúdo e forma como demonstrador do trabalho desenvolvido no
âmbito da UC de Projeto.
___________________________________________
Nuno Rodrigues
Orientador
Certifico que li este relatório e que na minha opinião, é adequado no seu
conteúdo e forma como demonstrador do trabalho desenvolvido no
âmbito da UC de Projeto.
___________________________________________
Arguente
Aceite para avaliação da UC de Projeto
v
vi
Dedicatória
Dedico este trabalho à minha família, em especial aos meus pais, que sempre acreditaram em
mim e que me deram todo o apoio até ao final. À minha namorada, que esteve sempre ao meu
lado e que me deu toda a força necessária para que eu concluísse o curso.
vii
viii
Agradecimentos
Agradeço aos meus pais por me darem todas as condições necessárias para a minha vida
académica. Agradeço as minhas irmãs pelos momentos em que puderam estar ao meu lado e
pelo apoio dado. Agradeço à minha namorada por toda a motivação que me dá de seguir em
frente e batalhar por uma vida melhor. Agradeço aos meus amigos por todos aqueles bons e
maus momentos que me fizeram ser feliz e ganhar experiência de vida. Agradeço ao meu
amigo Bruno Lopes, pelo seu trabalho de edição de imagem e pela ajuda na criação do ícone
da aplicação. Agradeço ao meu coordenador Nuno Rodrigues pelo acompanhamento ao longo
do projeto.
A todos o meu obrigado, sem todas estas pessoas eu não seria o que sou hoje e de certeza que
não me sentiria tão realizado como me sinto.
ix
x
Resumo
Hoje em dia os smartphones passaram a ser um bem presente em quase todos os bolsos da
humanidade. Como existem neste momento vários sistemas operativos, optou-se pelo
Android, por trazer alguma liberdade e também por causar mais dificuldade pelo facto de
existirem diversos dispositivos com características bastante diferentes. Tirando partido de
todos estes fatores, propõe-se uma aplicação móvel que tem por objetivo facultar várias
informações relativas ao Centro de Comunicações e ao Instituto Politécnico de Bragança.
Palavras-chave: Aplicação Móvel, Centro de Comunicações, Instituto Politécnico de
Bragança.
xi
xii
Abstract
Nowadays "smartphones" have become an ever-present in almost every pocket of humanity.
As there are currently several operating systems, we opted for Android, for bringing some
freedom and also more difficulty by the fact that there are many devices with very different
characteristics. Taking advantage of all these factors, we propose a mobile application that
aims to provide various information to the Communications Centre and the Polytechnic
Institute of Bragança.
Keywords: Mobile Application, Communications Centre, Polytechnic Institute of Bragança.
xiii
xiv
Conteúdo
1
2
Introdução .......................................................................................................................... 1
1.1
Enquadramento ............................................................................................................. 1
1.2
Objetivos ....................................................................................................................... 2
1.3
Estrutura ........................................................................................................................ 2
Estado da Arte ................................................................................................................... 5
2.1 Dispositivos e Sistemas Operativos Móveis ................................................................. 5
2.1.1 iOS .......................................................................................................................... 6
2.1.2 Windows Mobile e Windows Phone ...................................................................... 6
2.1.3 Blackberry OS – RIM ............................................................................................ 7
2.1.4 Bada ........................................................................................................................ 7
2.1.5 Ubuntu Touch ......................................................................................................... 7
2.1.6 Firefox OS .............................................................................................................. 7
2.2 O Sistema Operativo Android ....................................................................................... 8
2.2.1 Visão Geral e História ............................................................................................ 8
2.2.1.1
2.2.1.2
2.2.1.3
2.2.1.4
2.2.1.5
2.2.1.6
2.2.1.7
2.2.1.8
2.2.1.9
2.2.1.10
2.2.2
2.2.2.1
2.2.2.2
2.2.2.3
2.2.2.4
2.2.2.5
2.2.3
2.2.4
2.2.5
2.2.6
Versão 1.0 (Sem nome) ............................................................................................................... 8
Versão 1.5 Cupcake..................................................................................................................... 8
Versão 1.6 Donut......................................................................................................................... 9
Versão 2.0 Éclair ......................................................................................................................... 9
Versão 2.2 Froyo ......................................................................................................................... 9
Versão 2.3 Gingerbread ............................................................................................................. 10
Versão 3.0 Honeycomb ............................................................................................................. 10
Versão 4.0 Ice Cream Sandwich ............................................................................................... 10
Versão 4.1 Jelly Bean ................................................................................................................ 10
Versão 4.4 KitKat .................................................................................................................. 11
Arquitetura ........................................................................................................... 12
Aplicações ................................................................................................................................. 12
Framework Aplicacional ........................................................................................................... 12
Livrarias .................................................................................................................................... 12
Android runtime ........................................................................................................................ 13
Kernel ........................................................................................................................................ 13
Máquina virtual Dalvik ........................................................................................ 13
Sistema de ficheiros ............................................................................................. 13
Preferências e notificações ................................................................................... 14
Modelo de segurança ............................................................................................ 15
2.3 Frameworks de Desenvolvimento............................................................................... 15
2.3.1 Java ....................................................................................................................... 16
2.3.2 Ambientes de desenvolvimento ........................................................................... 16
2.3.3 Android SDK........................................................................................................ 16
2.3.4 Android Virtual Device Manager ......................................................................... 17
3
Análise de Requisitos ....................................................................................................... 18
xv
3.1
Requisitos Gerais ........................................................................................................ 18
3.2
Requisitos Funcionais ................................................................................................. 19
3.3
Diagrama de Casos de Uso ......................................................................................... 20
3.4 Diagrama de Classes ................................................................................................... 23
3.4.1 MainActivity ........................................................................................................ 24
3.4.2 Map_Fragment ..................................................................................................... 25
3.4.3 IpbFragment ......................................................................................................... 25
3.4.4 DBHelper ............................................................................................................. 25
3.4.5 News_Fragment ................................................................................................... 26
3.4.6 Config_Fragment ................................................................................................. 26
3.5
4
Base de Dados ............................................................................................................. 27
Desenvolvimento .............................................................................................................. 29
4.1 Aplicação .................................................................................................................... 29
4.1.1 CCOMDroid Ecrã Principal ................................................................................. 30
4.1.2 Últimas Notícias ................................................................................................... 31
4.1.3 Mapa ..................................................................................................................... 32
4.1.4 Tutoriais de Configuração .................................................................................... 33
4.1.5 Links Úteis ........................................................................................................... 34
4.1.6 Funcionalidades em background .......................................................................... 35
4.1.7 Outras informações .............................................................................................. 35
5
Conclusão ......................................................................................................................... 38
5.1
16
Trabalho Futuro .......................................................................................................... 39
xvii
Lista de Figuras
Figura .1– Android 2.0 Éclair. ............................................................................................................................. 9
Figura .2– Android 4.4 KitKat. .......................................................................................................................... 11
Figura .3– Arquitetura Android. ....................................................................................................................... 12
Figura .4– Taxa de versões Android ativas. ...................................................................................................... 19
Figura .5– Diagrama de Casos de Uso. .............................................................................................................. 20
Figura .6– Diagrama de Classes. ........................................................................................................................ 23
Figura .7– Base de dados. ................................................................................................................................... 27
Figura .8– Design................................................................................................................................................. 29
Figura .9– Ecrã principal. .................................................................................................................................. 30
Figura .10– Últimas Notícias. ............................................................................................................................. 31
Figura .11– Mapa com drawer. .......................................................................................................................... 32
Figura .12– Tutoriais de configuração. ............................................................................................................. 33
Figura .13– Links Úteis. ...................................................................................................................................... 34
xviii
xix
Lista de Abreviações
 IDE – Integrated Development Environment
 SDK – Software Development Kit
 CCOM – Centro de Comunicações
 IPB – Instituto Politécnico de Bragança
 HTML – Hyper Text Markup Language
 XML – Extensible Markup Language
 JIT – Just In Time
 CDMA – Code Division Multiple Access
xx
xxi
Capítulo 1
1 Introdução
1.1 Enquadramento
Com a chegada do primeiro Iphone e por consequente o aparecimento de dispositivos
concorrentes, o mercado mobile teve um crescimento exponencial, permitindo a redução de
preços e uma evolução a nível de tecnologias. Os smartphones permitem agora todas as
mesmas funcionalidades básicas dos tradicionais telemóveis (realização de chamadas, envio
de mensagens), com o acréscimo de outras funcionalidades muito úteis no nosso dia-a-dia,
tais como ler/enviar emails, aceder à Internet, e fazer uso de um enorme número de aplicações
criadas não apenas por empresas mas também por programadores individuais.
Os alunos do Instituto Politécnico de Bragança que possuem um smartphone têm a
possibilidade de aceder aos diversos serviços online disponibilizados pela Instituição, mas é
necessária a utilização de um "browser", de ter conhecimento dos vários endereços web
existentes para estes serviços e até de uma configuração prévia para estabelecer uma ligação à
rede "Eduroam". Tendo em conta estas informações, torna-se útil a existência de uma
aplicação que faça a junção dos diversos serviços disponíveis, que permita um acesso muito
mais simples e rápido e que disponibilize tutoriais de forma offline para a configuração da
rede "Eduroam" nos principais sistemas operativos utilizados pelos alunos.
1
1.2 Objetivos
O principal objetivo do presente projeto é desenvolver uma aplicação para smartphones
Android que disponibilize à comunidade do IPB informações sobre o Centro de
Comunicações e a Instituição como um todo.
O resultado final deverá consistir numa aplicação móvel que será disponibilizada na Play
Store da Google, e que permitirá ao utilizador aceder às notícias mais recentes das várias
escolas do instituto, aceder de forma offline a tutoriais de configuração de rede e serviço de
correio eletrónico, consultar um histórico de localização em vários pontos de interesse na
cidade de Bragança, obter direções, e também aceder aos principais serviços Web do IPB.
1.3 Estrutura
Este documento está dividido em cinco capítulos - Introdução, Estado da Arte, Análise de
Requisitos, Desenvolvimento e Conclusão, podendo cada um deles ser dividido em secções
para uma melhor definição dos mesmos, tal como se apresenta de seguida:
 Capítulo 1 – Introdução
Este capítulo descreve o contexto deste projeto, porque é que o desenvolvimento do
mesmo é benéfico e quais os seus objetivos.
 Capítulo 2 - Estado da Arte
Este capítulo apresenta a história e evolução dos dispositivos móveis Android e as
principais frameworks de desenvolvimento disponíveis.
 Capítulo 3 - Análise de Requisitos
2
Este capítulo descreve quais os requisitos gerais que se pretendem para a aplicação,
bem como os seus requisitos de funcionalidades entendidas como necessárias para se
ter a mesma de acordo com o esperado.
 Capítulo 4 - Desenvolvimento
Este capítulo apresenta as escolhas efetuadas a nível de tecnologias para
desenvolvimento da aplicação, a sua arquitetura geral e os detalhes de implementação
da mesma de modo a atingir a aplicação final.
 Capítulo 5 - Conclusão
Este capítulo descreve as conclusões obtidas no término do projeto, sumarização do
trabalho realizado e possíveis implementações e/ou melhoramentos futuros.
3
4
Capítulo 2
2 Estado da Arte
2.1 Dispositivos e Sistemas Operativos Móveis
Com a evolução ao nível da miniaturização de componentes, hoje em dia consegue-se colocar
no bolso um equipamento com um poder de processamento muito mais eficaz e potente do
que aqueles que tínhamos há alguns anos atrás nas nossas salas. Para além da miniaturização,
vários outros fatores influenciaram o aparecimento destas tecnologias, tal como as baterias
com menores dimensões e maior capacidade e os displays que são cada vez mais nítidos e
finos.
A esta tecnologia damos o nome de smartphones, que tiveram origem na evolução dos
telemóveis e na união destes com computadores. Os smartphones possuem grande parte das
funcionalidades de um computador, sem por entanto se tornar um substituto. Estes hoje em
dia permitem-nos ter acesso a conteúdos online como vídeos e páginas, permitem jogar, usar
o sistema de GPS, ver televisão, etc.
Com todas estas potencialidades num dispositivo consideravelmente pequeno, sentiu-se a
necessidade de criar um novo género de dispositivos móveis. Os tablets vêm compensar uma
das desvantagens dos smartphones, que é o tamanho do ecrã, pois se continuássemos a
aumentar as dimensões dos smartphones acabaríamos por perder o seu principal conceito
(portabilidade).
Com um tablet, o utilizador pode elaborar todas as tarefas que são possíveis em smartphones
e até dar-lhe um uso mais eficiente e profissional. Algumas marcas vendem inclusivamente
teclados que podem ser acoplados ou ligados ao dispositivo de forma a ser mais útil o
processamento de texto.
5
Ambos estes tipos de dispositivos necessitam de um sistema operativo adaptado, que tenta
tirar o máximo proveito de todas as suas capacidades: Iremos assim retratar alguns dos
sistemas operativos existentes hoje em dia para dispositivos móveis, juntamente com aqueles
que estão a fazer a sua entrada no mercado.
2.1.1 iOS
iOS ou como chamado antigamente iPhone OS é o sistema operativo criado pela Apple inc e
distribuído de forma exclusiva nos dispositivos da própria marca. Foi lançado em 2007
juntamente com o iPhone de primeira geração, encontrando-se hoje em dia na sua 7ª versão
(iOS 7).
As suas principais características são a exclusividade de hardware suportado e um
desempenho fluido que faz as delícias dos seus utilizadores. Parte desse desempenho é
possível graças ao facto de que o sistema operativo é desenvolvido e desenhado para um
número limitado e conhecido de hardware, permitindo assim aperfeiçoar ao máximo o seu
comportamento [1].
2.1.2 Windows Mobile e Windows Phone
O Windows Mobile da Microsoft Coporation surgiu fruto da necessidade da empresa em
acompanhar a evolução dos computadores. Bem antes do aparecimento dos smartphones,
existiam os PDAs (Personal Digital Assistant) que resumidamente eram um computador de
bolso controlado através de uma stylus. Este sistema operativo apareceu pela primeira vez em
1990 e foi evoluindo até atingir a versão 6.5 em 2010. Posteriormente sofreu de uma alteração
no nome e nas principais características [2].
Após a última versão do Windows Mobile, surgiu o Windows Phone com uma interface
gráfica reformulada e separando-se por completo do seu antecessor, como se pode observar
pelo facto de nenhuma aplicação do Windows Mobile poder ser executada no Windows
Phone. Este sistema operativo é utilizado num número limitado de dispositivos de empresas
que fizeram uma parceria com a Microsoft, conseguindo assim algum controlo nos
equipamentos e uma melhor adaptação do sistema operativo ao hardware.
6
Atualmente encontra-se na sua 3ª versão (Windows Phone 8) que foi lançada em 29 de
Outubro de 2012 [3].
2.1.3 Blackberry OS – RIM
BlackBerry OS é um sistema operativo móvel desenvolvido pela Research In Motion (RIM)
para a sua linha de smartphones BlackBerry. Encontra-se na versão número 7.1 que foi
lançada em Setembro de 2012 [4].
2.1.4 Bada
O Bada é um sistema operativo recente (4 anos), criado pela Samsung e que não tem por
objetivo fazer concorrência direta com os maiores sistemas operativos do momento mas sim
atingir um público específico. Neste momento encontra-se na versão 2.0 lançada em 2012 [5].
2.1.5 Ubuntu Touch
O Ubuntu Touch é a versão móvel do sistema operativo Ubuntu desenvolvido pela Canonical
Ltd e a sua comunidade. Foi divulgado no dia 31 de Outubro de 2011 que o Ubuntu iria ter
suporte para smartphones, tablets e TVs. No dia 17 de Outubro de 2013 foi disponibilizada a
sua primeira versão pública compatível com o Galaxy Nexus e o Nexus 4. É um sistema
operativo muito recente, que depende da comunidade para a adaptação a dispositivos de
diferentes marcas e modelos [6].
2.1.6 Firefox OS
O Firefox OS é um sistema operativo desenvolvido pela Mozilla, organização sem fins
lucrativos conhecida pelo browser Firefox. Em 2012 foi publicamente demonstrado a ser
executado em smartphones Android compatíveis e em 2013 anunciaram que o primeiro
smartphone com base no Firefox OS seria o ZTE Open. Este sistema operativo está neste
momento a efetuar a sua entrada no mercado [7].
7
2.2 O Sistema Operativo Android
O sistema operativo que neste momento compete com os mais utilizados no mundo (iOS e
Windows Phone), e que em Julho de 2013 a Google Play Store (loja virtual de aplicações)
atingiu o patamar de 1 Milhão de aplicações publicadas. Este sistema operativo tem uma
elevada aderência por parte dos utilizadores pelo facto de ser bastante editável e de existirem
dispositivos de todos os tipos e preços no mercado.
2.2.1 Visão Geral e História
A Android Inc era uma empresa de Palo Alto (Califórnia, EUA) que tinha por objetivo
desenvolver uma plataforma para dispositivos móveis baseada em Linux, que seria flexível,
aberta e de fácil migração para fabricantes. Esta foi adquirida pela Google devido à
necessidade de lançar um dispositivo baseado em localização.
Em 2007 a Google anunciou o Android como sistema operativo para dispositivos móveis e foi
em 22 de Outubro de 2008 que foi lançado o primeiro dispositivo com sistema Android, o
HTC Magic ou G1. Ao longo dos anos o Android foi evoluindo substancialmente,
acompanhando a evolução dos dispositivos e também conseguindo uma maior adesão de
fabricantes [8].
De seguida apresenta-se uma breve sintese das versões do Android lançadas até ao momento
[9] [10].
2.2.1.1 Versão 1.0 (Sem nome)
Esta foi a primeira versão do Android, que tinha suporte a navegadores HTML, permitia a
reprodução de vídeos via YouTube e tinha vários serviços tais como Gmail, Google Maps e
Google Sync.
2.2.1.2 Versão 1.5 Cupcake
Foi nesta versão que a Google começou a dar nomes de doces e a sua principal característica
foi a existência de um teclado virtual.
8
2.2.1.3 Versão 1.6 Donut
Lançada em Setembro de 2009, esta versão permitiu a existência de dispositivos com
diferentes tamanhos de ecrã, suporte para operadoras com tecnologia CDMA e um serviço de
text-to-speech.
2.2.1.4 Versão 2.0 Éclair
Até esta versão, os dispositivos usavam uma forma de desbloqueio de ecrã que estava
patenteada pela Apple. Então a Google trouxe um desbloqueio em forma de arco que permitia
desbloquear o dispositivo quando rodado para a direita, e silenciar o dispositivo rodando para
a esquerda (Figura 1).
Figura .1 Android 2.0 Éclair
2.2.1.5 Versão 2.2 Froyo
O principal desta versão, para além das várias modificações visuais, foi a grande melhoria em
termos de velocidade. A Google introduziu no Android a compilação JIT (Just In Time), o
9
que significa que o código Java era convertido automaticamente para código nativo durante a
execução, trazendo assim um aumento na velocidade do sistema operativo.
2.2.1.6 Versão 2.3 Gingerbread
Esta versão acabou por se tornar a versão com uma maior evolução a nível visual desde o
início do Android. Nesta fase a Google focou-se em aprimorar cada parte do sistema
operativo tornando-o mais moderno.
2.2.1.7 Versão 3.0 Honeycomb
Até esta versão, os tablets não tinham um visual dedicado às suas proporções de ecrã. E por
esse mesmo motivo apareceu o Android 3.0 Honeycomb, como uma versão disponível apenas
para tablets e que tinha como objetivo tornar o Android mais ergonómico e adaptado a estes
dispositivos.
2.2.1.8 Versão 4.0 Ice Cream Sandwich
O Android 4.0 fez a união de tablets e smartphones estando disponível para ambos mas com
algumas diferenças essenciais para cada tipo de dispositivo. Ao nível da estética, foi com esta
versão que o Android se tornou mais uniforme e moderno, seguindo um estilo muito mais
simplista e ergonómico.
2.2.1.9 Versão 4.1 Jelly Bean
A suavidade dos efeitos e transições na utilização do Android sempre foi o maior ponto fraco
deste sistema operativo quando comparado ao iOS da Apple. Assim, o Android 4.1 teve como
principal objetivo tornar esses efeitos o mais suaves possíveis. Para além desta melhoria,
seguiram-se também mais melhorias a nível estético e a introdução do “Google Now”, um
serviço de pesquisa que transmite as informações necessárias quando o utilizador mais precisa
delas.
10
2.2.1.10
Versão 4.4 KitKat
A última versão do Android até hoje (Figura 2), lançada em 31 de Outubro de 2013, tem
como maior característica o facto de usar menos memória. Permite assim que esta versão
possa ser utilizada em dispositivos de baixa gama e mesmo em dispositivos mais antigos. Está
com um visual mais limpo, colorido e foi feito a pensar nos wearable. Os wearable são
dispositivos portáteis tais como óculos (Google Glass), relógios, etc.
Figura .2 Android 4.4 KitKat
11
2.2.2 Arquitetura
A arquitetura do Android é dividida em camadas (Figura 3), onde cada parte é responsável
por gerir os seus respetivos processos [11].
Figura 3 Arquitetura Android
2.2.2.1 Aplicações
Todas as aplicações para o Android encontram-se na camada do topo. Alguns exemplos de
aplicações são os Contactos, Jogos, Browser, etc.
2.2.2.2 Framework Aplicacional
A camada de Framework Aplicacional proporciona muitos serviços de nível superior em
forma de classes Java. Os programadores estão autorizados a utilizar esses serviços nas suas
aplicações.
2.2.2.3 Livrarias
Esta camada contém as livrarias que são usadas pelo sistema, e também livrarias de
multimédia, funções para navegadores web, e funções de acesso a base de dados SQLite.
12
2.2.2.4 Android runtime
Nesta camada se instancia a máquina virtual Dalvik, criada para cada aplicação executada no
Android. Essa máquina virtual é especialmente desenhada e otimizada para Android. A
camada também contém um conjunto de livrarias centrais permitindo aos programadores criar
aplicações com o uso da linguagem Java.
2.2.2.5 Kernel
No fundo das camadas encontra-se o Kernel do Linux que proporciona funcionalidades
básicas de sistema como gestão de processos, gestão de memória e gestão de dispositivos.
2.2.3 Máquina virtual Dalvik
A máquina virual Dalvik é o software que executa as aplicações em dispositivos Android. As
aplicações são escritas em Java e compiladas em bytecode para a máquina virtual, que
posteriormente são traduzidas para Dalvik bytecode e guardadas em ficheiros com o formato
.dex (Dalvik EXecutable) e .odex (Optimized Dalvik EXecutable). Estes formatos são
desenhados para sistemas com capacidades reduzidas em termos de memória e velocidade de
processamento.
2.2.4 Sistema de ficheiros
O Android suporta vários tipos de sistemas de ficheiros, mas os mais usados são o YAFFS2
(Yet Another Flash File System) e o VFAT (Virtual File Allocation Table). Existem 6
principais partições em dispositivos Android e 2 partições comuns no cartão de memória [12].
/boot – Esta é a partição de arranque do dispositivo, que inclui o Kernel. O dispositivo
não arranca sem esta partição.
/system – Como o nome sugere, esta partição contém todo o sistema operativo incluindo
o GUI e todas as aplicações que vêm pré-instaladas no dispositivo.
/recovery – Esta partição existe para recuperação, sobretudo quando a partição /boot
contêm problemas permitindo aceder a uma consola de recuperação com opções de
manutenção.
13
/data – É aqui que são guardadas todas as informações dos utilizadores, tais como
contactos, mensagens, definições e aplicações instaladas.
/cache – Esta partição é utilizada pelo Android para guardar dados que são
frequentemente acedidos pelas aplicações.
/misc – É aqui que são guardadas definições de sistema tais como a configurações USB e
o identificador da região ou do operador.
/sdcard – Esta partição serve para o utilizador armazenar o que quiser (música, vídeos,
imagens). Pode ser o cartão de memória interno do dispositivo, ou no caso de existir um
cartão de memória externo este tem o nome de /sdcard/sd ou /sdcard2
/sd-ext - Esta partição não é standard no Android mas tornou-se popular no universo das
ROMs modificadas, serve de espaço para funcionalidades especiais de algumas ROMs,
como por exemplo a possibilidade de guardar aplicações no cartão de memória externo
quando o dispositivo tem uma memória interna muito limitada.
2.2.5 Preferências e notificações
O Android permite ao utilizador alterar um conjunto de parâmetros que influenciam o
comportamento do sistema. Estas preferências permitem por exemplo ligar/desligar o Wi-Fi,
alterar o volume das notificações e alterar o brilho do ecrã.
As aplicações também podem conter um menu de preferências específicas para o seu caso
[13].
As notificações são mensagens para o utilizador que provêm das aplicações mas que não se
encontram dentro do seu UI. Numa primeira fase o sistema apresenta um ícone na barra de
notificações e quando o utilizador arrastar para baixo a barra é apresentada a mensagem que a
notificação contêm. Algumas notificações podem ser arrastadas para baixo com dois dedos de
14
forma a expandi-las e se poder interagir com elas sem abrir a aplicação. É possível tocar na
notificação para a tratar, ou então arrastar para o lado para a eliminar [14].
2.2.6 Modelo de segurança
O modelo de segurança do Android é baseado em três aspetos principais [15]:
 Sandbox: O sistema executa cada aplicação num processo em separado, isto atribui
uma segurança elevada em que as aplicações não se podem danificar ou aceder aos
ficheiros de outras. As aplicações estão assim limitadas ao acesso de certas funções do
dispositivo, e só podem ter acesso declarando as permissões desejadas no ficheiro do
manifesto (AndroidManifest). Desta forma o utilizador é alertado antes da instalação
da aplicação sobre quais as permissões e pode optar por não instalar a aplicação.
 Assinatura digital da aplicação: O sistema Android requer que todas as aplicações
instaladas sejam assinadas digitalmente, com um certificado em que a chave privada é
guardada pelo programador da aplicação. Esse certificado serve para identificar o
autor, e criar uma relação de confiança entre aplicações.
 ID de utilizador: A plataforma Android aproveita o proteção baseada no utilizador do
Linux, o sistema atribui um ID de utilizador para cada aplicação e proporciona uma
segurança ao nível do Kernel.
2.3 Frameworks de Desenvolvimento
O IDE recomendado é o Eclipse juntamente com o SDK (Software Development Kit) do
Android, e o plugin ADT (Android Development Tools) que nos permite usar todas as
ferramentas necessárias para Android. Existem também outros IDEs tal como o mais recente e
disponibilizado pela própria Google, o Android Studio mas que ainda se encontra em versão
Beta.
A linguagem utilizada é Java, é a linguagem mais utilizada no mundo, sendo uma linguagem
poderosa e de código-fonte aberto. A grande vantagem do Java é o facto de poder ser
executado em várias plataformas e dispositivos.
15
Para o armazenamento de informações na memória dos dispositivos, é usado o SQLite. A
vantagem do SQLite é que se torna muito leve, e fornece apenas aquilo que é essencialmente
necessário em termos de bases de dados.
2.3.1 Java
Java é uma linguagem de programação concorrente, baseada em classes e orientada por
objetos. Foi especialmente desenhada para que quando é executada numa plataforma, não
necessita de ser recompilada para uma plataforma diferente. As aplicações Java são
compiladas em bytecode que pode correr em qualquer máquina virtual Java (JVM)
independentemente da arquitetura do computador.
Foi desenvolvida por James Gosling na Sun Microsystems e divulgada em 1995. É uma das
linguagens de programação mais populares, com um registo de 9 milhões de programadores
[16].
2.3.2 Ambientes de desenvolvimento
Para programar para Android existem dois principais ambientes de desenvolvimento:
 Eclipse: Desenvolvido inicialmente pela IBM e doado para a comunidade como
software livre, o Eclispe é o IDE feito em Java e mais utilizado para programar com
Java. Pode ser utilizado para programar com outras linguagens bastando para isso
instalar uns plugins. Atualmente faz parte do kit de desenvolvimento de software
recomendado para programadores Android [17];
 Android Studio: É um IDE desenvolvido especialmente para a plataforma Android,
foi anunciado no dia 16 de Maio de 2013 na conferência da Google, e desde Junho de
2014 que está disponível para testes de forma gratuita.
2.3.3 Android SDK
O kit de desenvolvimento de Android (SDK) contém um compreensivo conjunto de
ferramentas de desenvolvimento. Estes incluem um debugger, livrarias, um emulador de
16
dispositivos, documentação, exemplos de código e tutoriais. No caso de se usar o Eclipse
como ambiente de desenvolvimento, existe um plugin que pode ser instalado chamado
Android Development Tool (ADT) e que fornece todas as ferramentas necessárias para o
desenvolvimento para Android.
O SDK vai evoluindo conforme a evolução do Android, mas mantém sempre disponíveis
versões mais antigas para os programadores que querem criar uma aplicação que funcione em
dispositivos mais antigos. As ferramentas estão em formato transferível permitindo assim
obter apenas aquelas que o programador necessita [18].
2.3.4 Android Virtual Device Manager
O Android Virtual Device Manager proporciona uma interface virtual onde o programador
pode gerir e criar AVD’s, que são dispositivos virtuais com todas as características
configuráveis. Estes dispositivos virtuais são depois executados pelo emulador do Android e
permitem instalar e executar a aplicação criada pelo utilizador.
Este é de grande utilidade pois permite que o programador crie aplicações para dispositivos,
ou versões do Android diferentes dos reais que possui, e observar assim o comportamento das
aplicações [19].
17
Capítulo 3
3 Análise de Requisitos
3.1 Requisitos Gerais
Após estudar quais as frameworks que irão ser necessárias para o desenvolvimento, é
importante definir os requisitos da aplicação. Tratando-se de uma aplicação que serve de
apoio ao CCOM e ao IPB, o público-alvo é bastante restrito. Qualquer pessoa pode fazer uso
da aplicação para aprender mais sobre a a Instituição, mas é notório que será principalmente
útil para todos os que beneficiam dos vários serviços que estas duas entidades fornecem.
Atendendo à diversidade das características dos dispositivos com Android, a aplicação têm de
ser compatível com várias versões do sistema operativo e com várias dimensões de ecrã.
Analisando o gráfico disponibilizado na página de desenvolvimento do Android (Figura 4),
podemos observar que as versões mais antigas que a 2.2 Froyo são pouco usadas ou quase
nulas [20]. Então decidiu-se tornar a aplicação compatível desde o Android 2.1 Éclair até ao
mais recente 4.4 KitKat. A versão 2.1 está incluída pois mesmo após sabermos que a sua taxa
de uso é muito reduzida, existe ainda um certo número de utilizadores que frequenta o IPB a
usar essa versão.
18
Figura .4 Taxa de versões Android ativas
A aplicação também será compatível com tablets, visto que hoje em dia são muito utilizados
sobretudo em ambientes académicos e profissionais, e que basta fazer algumas alterações a
nível visual para que a aplicação mantenha um aspeto cuidado ao ser executada nestes
dispositivos.
3.2 Requisitos Funcionais
Sabendo que o IPB é visitado por uma considerável quantidade de alunos/docentes de outros
países, a aplicação têm uma versão em Inglês para que possam usufruir das várias
funcionalidades disponíveis.
O IPB oferece acesso à Internet de forma gratuita, mas para se poder usufruir desse serviço é
necessária uma configuração inicial: Por esse motivo, a aplicação permite consultar os vários
tutorias disponíveis na página do CCOM sem ser necessária uma ligação à Internet.
A aplicação apresenta também um mapa com a deslocação do utilizador dentro do campus e
entre os vários edifícios que fazem parte do IPB, referenciados como pontos de interesse.
Permite também consultar várias informações tais como horários de funcionamento e
distância do ponto de interesse ao utilizador. Dentro dos pontos de interesse estão incluídos
vários edifícios e estruturas tais como residências, cantina, parques de estacionamento, etc.
As funcionalidades relacionadas com o mapa são implementadas com recurso à livraria
Osmdroid [21] e recorrendo a mapas disponibilizados pelo serviço Openstreetmaps [22].
19
As várias escolas do IPB utilizam as suas páginas web para divulgarem informações
importantes para os seus utilizadores. Atendendo a isto, a aplicação permite consultar de
forma atualizada as mais recentes informações divulgadas. Estas são atualizadas de forma
automática quando existe uma ligação à internet no dispositivo, e mantêm-se disponíveis de
forma offline para uma leitura posterior.
3.3 Diagrama de Casos de Uso
Figura .5 Diagrama de Casos de Uso
Com o diagrama de casos de uso podemos demonstrar qual a interação entre o utilizador e a
aplicação. Todas as interações podem ser definidas da seguinte forma (Figura 5):
20
 Consultar histórico de localização – Toda a lógica da localização do utilizador é
efetuada em background e sem ser necessária qualquer interação a não ser o facto de
necessitar uma ligação Wifi e/ou o GPS ligado. O utilizador pode no entanto consultar
o seu histórico dos últimos 5 dias, com a possibilidade de alternar entre as diferentes
escolas.
 Ler últimas notícias – Ao utilizador é permitido consultar as últimas notícias
disponíveis nas várias páginas do IPB.
o Abrir links no navegador – Caso exista um link dentro de uma notícia, este
pode ser tocado de forma a ser aberto no browser pré-definido do dispositivo.
 Consultar mapa – O mapa correspondente à zona do IPB está guardado de forma
offline na memória do dispositivo, para que o utilizador o possa consultar sem
necessitar uma ligação à Internet. No momento do carregamento do mapa, este é
centrado na zona do IPB e imediatamente após ser detetada a localização do utilizador,
o mapa é centrado na sua localização.
o Ver informações de P.I – Os marcadores ou P.I’s (Pontos de Interesse) podem
ser tocados pelo utilizador, abrindo uma janela que divulga o nome desse
mesmo ponto, juntamente com outras informações úteis.
 Obter direções e tempos de viagem – Ainda dentro da janela do P.I, é
permitido ao utilizador tocar um botão que divulga a rota mais próxima
entre ele e o P.I, juntamente com o tempo estimado de viagem e a
possibilidade de executar o “Google Navigation” para obter direções.
o Mostrar/ocultar P.I’s – O utilizador pode mostrar ou ocultar as categorias de
P.I’s arrastando um menu do lado direito da aplicação e selecionando as
categorias desejadas.
 Consultar tutoriais – Os tutoriais com as instruções de configuração dos serviços
disponibilizados pelo CCOM estão disponíveis para o utilizador sem ser necessária
uma ligação à Internet.
o
Escolher tipo de configuração – O utilizador pode optar por consultar
tutoriais de configuração para a rede Eduroam, Vpn e para o serviço de Email.
21
 Escolher o sistema operativo – Após ser escolhido o tipo de
configuração, é necessário optar para que sistema operativo o utilizador
deseja consultar o tutorial.

Atalhos para as principais páginas do IPB – Nesta parte da aplicação o utilizador
pode simplesmente utilizar um dos atalhos disponíveis para uma das páginas do IPB
abrindo o browser pré-definido no seu dispositivo.
22
3.4 Diagrama de Classes
Figura .6 Diagrama de Classes
23
Se tentássemos criar um diagrama de classes com todas as classes que compõem a aplicação,
o diagrama seria difícil e confuso de consultar, por isso este diagrama (Figura 5) contém
algumas das classes com mais importância e apenas alguns dos métodos de cada classe. De
forma a facilitar a interpretação do diagrama, são explicadas as classes ao longo deste
documento.
3.4.1 MainActivity
A MainActivity é a atividade principal da aplicação. É esta classe que tem por função iniciar
todos os serviços e tudo o que a aplicação necessita para ser executada. Antes de explicar as
principais funções desta atividade, é útil definir e explicar o que é uma actividade em
Android, o que é um fragmento, um serviço e um alarme:
o Atividade (Activity) é uma classe do Android que permite a interação do utilizador
com a aplicação criando uma janela onde o programador pode colocar conteúdo, e
que trata de trata dos diversos estados em que a aplicação se pode encontrar (iniciada,
em pausa, terminada, etc).
o Fragmento (Fragment) é como uma secção modular de uma atividade que contêm o
seu próprio ciclo de vida e que pode ser adicionado/removido enquanto a atividade
está a ser executada.
o Serviço é um componente de uma aplicação que pode executar tarefas de longa
duração em background sem interação do utilizador.
o Alarme, os alarmes são serviços de sistema do Android em que se pode definir que a
aplicação, ou algum serviço da aplicação seja executada em algum momento no
futuro.
O método onCreate() é o primeiro a ser executado e dentro desta aplicação tem como
funções a criação da base de dados caso esta não exista na memória do dispositivo, a criação
do menu lateral direito e a colocação do fragmento que irá conter um dos diversos fragmentos
disponíveis na aplicação (Ccom, Últimas notícias, Mapa, Tutoriais de Configurações, Links
Úteis, Sobre).
24
O método onStart() inicia os serviços de localização e alarme que ficam a ser executados em
background independentemente da aplicação ser terminada.
3.4.2 Map_Fragment
A classe Map_Fragment é um fragmento que é carregado dentro da MainActivity e que como
o nome indica contém tudo o que é relativo ao mapa. Este é responsável por:
o Carregar a versão do mapa guardada na memória;
o Pedir a localização do utilizador;
o Carregar a versão mais recente do mapa caso exista uma ligação;
o Colocar os marcadores no mapa;
o Adicionar/remover marcadores a pedido do utilizador;
o Enviar os dados do destino ao “Google Navigation”;
3.4.3 IpbFragment
O IpbFragment é o fragmento inicial da aplicação. Este não executa muitas tarefas a não ser
apresentar informações. Apresenta a imagem inicial com o efeito de Ken-burns, apresenta o
gráfico com o histórico dos últimos 5 dias e um mini mapa que mostra a localização do
utilizador e serve de atalho para o Map_Fragment.
3.4.4 DBHelper
A classe DBHelper é onde são executadas todas as interações com a base de dados tais como
criar a base de dados e ler ou escrever informações nas tabelas. É uma classe de grande
utilidade pois centraliza todas as operações com a base de dados num local apenas e é
acessível a todas as classes da aplicação.
25
3.4.5 News_Fragment
Uma das classes com maior complexidade é a News_Fragment. Esta classe:
o Lê/Escreve notícias na base de dados;
o Monitoriza a ligação de dados e o Wifi do dispositivo;
o Carrega as notícias em formato XML;
o Executa uma classe que faz o parsing do código XML;
o Carrega um pager, que irá conter o fragmento de cada escola;
Esta classe exige uma constante monitorização das ligações do dispositivo. Ao ser iniciada, se
não existir nenhum tipo de ligação à Internet, é feita uma leitura na base de dados para obter
as notícias que foram guardadas na última utilização. Imediatamente após o dispositivo
conectar-se à Internet, a aplicação executa o download e parsing dos feeds de forma
assíncrona para que não interrompa a utilização da aplicação, e ao terminar apresenta as
notícias e guarda-as na base de dados.
3.4.6 Config_Fragment
Esta é uma das classes mais simples pois apenas tem a tarefa de apresentar conteúdo estático.
De um modo genérico é um fragmento que contem botões, que por sua vez carregam outros
fragmentos para a atividade apresentando as configurações.
26
3.5 Base de Dados
Figura .7 Base de Dados
A tabela atualidades serve de apoio aos feeds. Sempre que a aplicação atualiza os feeds, esta
guarda na tabela atualidades um título, conteúdo, data, link e o nome da escola de onde
provêm. Para que o tamanho da base de dados não cresça infinitamente, os dados são sempre
substituídos por dados mais recentes quando é feita uma atualização dos feeds.
A tabela marcadores é apenas de leitura. É onde a aplicação vai obter quais os pontos de
interesse a usar para a monitorização da localização. O raio é manuseado em metros e indica
qual o raio da zona onde o dispositivo ativa um alarme ao entrar/sair do IPB.
A tabela localização_final é onde são guardadas todas as informações finais do histórico tais
como data (dia/mês/ano), nome do marcador, tempo de estadia.
A tabela localização é onde são guardadas informações diárias de localização de forma
temporária. É uma tabela que é apagada de 24 em 24 horas de forma a registar o tempo de
estadia em cada marcador por dia.
27
28
Capítulo 4
4 Desenvolvimento
4.1 Aplicação
Sendo o objetivo da aplicação servir de apoio e disponibilizar várias informações sobre o
CCCOM e o IPB, esta tem como nome CCOMDroid.
O aspeto da aplicação foi trabalhado tendo em conta as cores do IPB e das escolas que o
constituem, e seguindo as diretrizes do Android para obter um design puro e o mais fiel
possível à plataforma (Figura 8).
Figura .8 Design
29
4.1.1 CCOMDroid Ecrã Principal
O ecrã principal de uma aplicação é onde devemos tentar cativar os utilizadores, pois a
primeira impressão é sempre a que mais conta. Este deve conter bastantes informações úteis,
sem divulgar tudo o que a aplicação pode fornecer, e é importante também que seja uma zona
um pouco dinâmica para não tornar a experiência monótona.
Seguindo estes princípios, o ecrã principal do CCOMDroid (Figura 9) contém uma imagem
com um efeito chamado “Ken Burns Effect”, que consiste simplesmente numa aproximação e
um afastamento aleatório de diferentes zonas da imagem, trazendo assim uma sensação de
movimento e profundidade. Logo abaixo da imagem, existe um spinner, que permite ao
utilizador comutar entre as diferentes escolas de forma a poder consultar o gráfico com o
tempo de estadia dentro dos Campus do IPB nos últimos 5 dias, que se encontra mais abaixo.
Por fim, ao fundo do ecrã encontra-se um mini mapa, que indica apenas a localização do
utilizador, de forma a demonstrar que a aplicação está ciente da sua localização e que
consegue usar essa informação para o histórico. Para além dessa utilidade, o mini mapa serve
também de atalho a um mapa mais completo que será explicado a seguir.
Figura .9 Ecrã principal
30
4.1.2 Últimas Notícias
O layout das notícias é constituído por um Viewpager, que cria um efeito em que se pode
alternar entre as diferentes escolas com um simples arrastar para os lados, ao alternar para
outra escola, a cor da barra de navegação e dos títulos das notícias torna-se equivalente à cor
da escola em foco (Figura 10).
As últimas notícias funcionam da seguinte forma: se existir uma ligação à Internet no
momento em que o utilizador acede a esta zona da aplicação, as notícias são carregadas e
guardadas na base de dados automaticamente. Se não existir uma ligação à Internet, são
apresentadas as notícias que já se encontram na base de dados juntamente com uma indicação
de que não existe uma ligação à Internet. Sempre que uma das notícias contiver um link, este
pode ser aberto num navegador pré-definido no dispositivo. Existe também uma forma de
forçar a atualização das notícias, arrastando a list-view para baixo e largando quando lhe é
proposto para tal.
Figura .10 Ecrã Últimas Notícias
31
4.1.3 Mapa
O layout do mapa consiste num mapview que preenche todo o espaço disponível de forma a
maximizar a experiência de utilização. Do lado direito existe um menu (drawer) (Figura 11),
que pode ser arrastado e que permite adicionar e remover os marcadores do mapa em função
das suas categorias.
Ao selecionar um marcador, aparece uma caixa de texto com algumas informações sobre esse
marcador e um botão que permite calcular o tempo de viagem entre o utilizador e esse mesmo
ponto no mapa. Após se observar o caminho, o utilizador pode optar por receber as indicações
de navegação no "Google Navigation" caso tenha essa aplicação instalada.
A zona do campus do IPB encontra-se acessível de modo offline, permitindo ao utilizador
observar o mapa sem ter uma ligação à Internet.
Figura .11 Mapa com drawer
32
4.1.4 Tutoriais de Configuração
Nos tutoriais de configuração, o utilizador tem de optar primeiro pelo tipo de configuração
que necessita realizar (Eduroam, VPN, Email) e por fim o sistema operativo. Para os tutoriais
foi usado um view pager, que permite alternar entre os passos com um simples arrastar para o
lado (Figura 12).
Figura .12 Tutoriais de configuração
33
4.1.5 Links Úteis
Na zona dos links úteis, é apresentada uma lista com atalhos para as principais páginas do IPB
(Figura 13). Quando o utilizador seleciona um desses atalhos, é executado o browser prédefinido no dispositivo com o link da página para que o utilizador seja encaminhado à pagina
desejada.
Figura .13 Links Úteis
34
4.1.6 Funcionalidades em background
Existem certas funções da aplicação que correm em background, para que não interrompa a
utilização da aplicação e que permita por exemplo saber a localização do utilizador sem que
este tenha de ter a aplicação ativa.
Ao iniciar a aplicação pela primeira vez, existe um serviço que é executado e fica ativo
mesmo após o utilizador sair da aplicação. Este serve para obter a localização do utilizador
sempre que possível. De forma a não consumir em excesso a bateria do dispositivo, este
serviço é gerido pelo Android e faz com que não esteja sempre a tentar obter a localização.
Para além desse serviço, existe um outro que serve de despertador. Todos os dias, pelas 23:55,
é executada uma função em background e é terminada imediatamente após concluir o seu
objetivo. O seu objetivo é de ler os valores da base de dados que foram obtidos ao longo do
dia, e guarda-los numa outra tabela juntamente com o dia em que essa tarefa foi realizada.
4.1.7 Outras informações
De forma a permitir que os alunos/docentes de outras nacionalidades possam usufruir da
aplicação, esta foi traduzida para o Inglês. As únicas partes da aplicação que não foram
traduzidas foram as últimas notícias e as imagens dos tutoriais. Isto porque as notícias apenas
existem em Português nas páginas das escolas do IPB, o mesmo acontece com as imagens
usadas para os tutoriais.
Algumas partes do layout da aplicação foram otimizadas para a execução em tablets. Para isto
bastou criar um ficheiro XML com o mesmo nome do que o ficheiro usado para smartphones,
mas com algumas alterações no desenho da aplicação. Esses ficheiros são colocados em
pastas diferentes, em que o nome da pasta indica ao Android qual dos ficheiros tem de ser
usado em qual dos dispositivos. Como por exemplo:
- Pasta “layout” (Para smartphones);
- Pasta “layout-large” (Para tablets);
35
Desta forma é simples criar uma aplicação que está otimizada para dispositivos de dimensões
diferentes.
Em algumas partes da aplicação, foi necessária a introdução de uma parcela de código que
permite ter funcionalidades disponíveis em versões mais recentes do Android mas que não
podem ser executadas nas versões mais antigas. Por exemplo a alteração da cor da barra de
notificações, é uma funcionalidade disponível apenas no Android 4.4 KitKat, e não pode ser
executada em versões mais antigas. Para que isso seja possível basta utilizar este código:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
//Código que apenas pode ser usado no Android 4.4
}
De forma a evitar que a aplicação faça um consumo de dados não desejado pelo utilizador, na
primeira execução é pedido que o utilizador opte por permitir que a aplicação utilize todos os
tipos de dados ou apenas dados Wi-Fi. Mesmo após essa decisão, o utilizador, pode a
qualquer momento aceder às definições da aplicação e mudar o tipo de conexão permitida,
tanto para as notícias como para o mapa.
36
37
Capítulo 5
5 Conclusão
De um modo geral, conseguiu-se por em prática todos os objetivos inicialmente definidos
para esta aplicação. Esta permite ler as notícias das diferentes escolas do IPB, permite
consultar um mapa com os principais pontos de interesse relativos ao Instituto Politécnico de
Bragança, permite consultar de forma offline todos os tutoriais disponíveis na página do
CCOM e ainda permite criar um histórico de localização do utilizador.
No entanto, certos objetivos não foram conseguidos, tal como a possibilidade de configuração
automática do smartphone/tablet para a utilização do email e da rede do IPB. Isto porque não
se conseguiu encontrar nenhuma forma de a aplicação poder executar configurações no
smartphone/tablet sem ser necessária a constante participação do utilizador.
As maiores dificuldades no desenvolvimento foram causadas pela necessidade de a aplicação
poder ser executada em dispositivos com uma versão do Android mais antiga (ex: Android
2.1 / 2.2), esse facto provocou o aparecimento de diversos erros que foram resolvidos
consultando as páginas do Stackoverflow [23]. Muitas funcionalidades de hoje em dia não
podem simplesmente ser utilizadas nessas versões do Android, pelo que ao longo do
desenvolvimento teve de se alterar várias vezes a lógica de funcionamento da aplicação. Para
que certas funcionalidades fossem usadas na mesma, teve de se recorrer a soluções
disponibilizadas pela Google tais como o Android-support-v7-appcompat [24], que veio
permitir utilizar-se por exemplo o Navigation Drawer, e Appbar em todas as versões.
38
Para algumas funcionalidades fez-se uso de várias soluções já existentes, tais como:
● ViewPager: para esta funcionalidade que indica qual a página que estamos a observar
nas últimas notícias foi usado o Viewpagerindicator [25].
● Pull to refresh: uma funcionalidade que permite arrastar para baixo uma ListView e
fazer com que esta seja atualizada, foi possível com o uso do Android-PullToRefresh
[26].
● Gráfico: o gráfico que é visível na entrada da aplicação é criado dinamicamente com o
HoloGraphLibrary [27].
● Mapa: o mapa foi criado fazendo uso do Osmdroid [21] e a possibilidade de obter rotas
com distância e tempo foi com o Osmbonuspack [31].
● Datas: para o cálculo do intervalo de tempo entre duas datas em formato de String foi
usado o Joda-time [28].
● Efeito da imagem: para o “Ken Burns Effect” foi usado o KenBurnsView [29].
● Estatísticas: para que após a publicação da aplicação possa receber informações úteis
tais como número total de instalações, relatórios de erros, etc, foi usado o
FlurryAnalytics [30].
5.1 Trabalho Futuro
Todas as aplicações podem e devem ser alvo de um trabalho contínuo, e como esta não é
exceção à regra, algumas funcionalidades que poderão ser implementadas são:
● Criar mais pontos de interesse no mapa, pontos que são frequentados pelos alunos do
IPB tais como parques, bares, discotecas, etc.
● Permitir que o utilizador tenha uma conta, e fazer com que seja possível comparar o
histórico de localização com os seus amigos.
● Permitir que o utilizador possa desativar a localização automática, caso desejado.
● No mapa, adicionar um link direto para a página web do edifício caso exista.
39
Referências bibliográficas
[1]
Wikipédia. iOS. URL:
http://en.wikipedia.org/wiki/IOS (acedido em 05/2014)
[2]
Wikipédia. Windows Mobile. URL:
http://pt.wikipedia.org/wiki/Windows_Mobile (acedido em 05/2014)
[3]
Wikipédia. Windows Phone. URL:
http://en.wikipedia.org/wiki/Windows_Phone (acedido em 05/2014)
[4]
Wikipédia. BlackBerry OS. URL:
http://pt.wikipedia.org/wiki/BlackBerry_OS (acedido em 05/2014)
[5]
Wikipédia. Bada. URL:
http://pt.wikipedia.org/wiki/Bada_(Sistema_operacional) (acedido em 05/2014)
[6]
Wikipédia. Ubuntu Touch. URL:
http://en.wikipedia.org/wiki/Ubuntu_Touch (acedido em 05/2014)
[7]
Wikipédia. Firefox OS. URL:
http://en.wikipedia.org/wiki/Firefox_OS (acedido em 05/2014)
[8]
Wikipédia. Android. URL:
http://en.wikipedia.org/wiki/Android_(operating_system) (acedido em 06/2014)
[9]
Astechnica. Building Android a 40000 word history of Googles mobile OS. URL:
http://arstechnica.com/gadgets/2014/06/building-android-a-40000-word-history-of-googlesmobile-os/ (acedido em 06/2014)
[10]
The Verge. Android: A visual history. URL:
http://www.theverge.com/2011/12/7/2585779/android-history (acedido em 06/2014)
[11]
Tutorialspoint. Android Architecture. URL:
http://www.tutorialspoint.com/android/android_architecture.htm (acedido em 06/2014)
[12]
Techblogon. Android file system structure architecture layout details. URL:
http://techblogon.com/android-file-system-structure-architecture-layout-details/ (acedido em
05/2014)
[13]
RODRIGUES, Nuno (2012) Introdução ao Desenvolvimento para Android. Bragança: Instituto
Politécnico de Bragança
[14]
Android Developers. Notifications. URL:
http://developer.android.com/guide/topics/ui/notifiers/notifications.html (acedido em 05/2014)
[15]
Android Source. Security. URL:
https://source.android.com/devices/tech/security/ (acedido em 05/2014)
[16]
Wikipédia. Java. URL:
http://en.wikipedia.org/wiki/Java_(programming_language) (acedido em 05/2014)
[17]
WIkipédia. Eclipse. URL:
http://pt.wikipedia.org/wiki/Eclipse_(software) (acedido em 05/2014)
[18]
Wikipédia. Android Software Development Android SDK. URL:
http://en.wikipedia.org/wiki/Android_software_development#Android_SDK (acedido em
05/2014)
[19]
Android Developers. AVD Manager. URL:
http://developer.android.com/tools/help/avd-manager.html (acedido em 05/2014)
[20]
Android Developers. Dashboards. URL:
https://developer.android.com/about/dashboards/index.html (acedido em 05/2014)
40
[21]
GitHub. Osmdroid. URL:
https://github.com/osmdroid/osmdroid (acedido em 06/2014)
[22]
OpenStreetMap. Map. URL:
http://www.openstreetmap.org/#map=5/51.500/-0.100 (acedido em 05/2014)
[23]
Stackoverflow. URL:
http://stackoverflow.com/ (acedido em 06/2014)
[24]
Android Developers. Support Library Features. URL:
https://developer.android.com/tools/support-library/features.html (acedido em 06/2014)
[25]
ViewPagerIndicator. URL:
http://viewpagerindicator.com/ (acedido em 06/2014)
[26]
GitHub. Android-PullToRefresh. URL:
https://github.com/chrisbanes/Android-PullToRefresh (acedido em 06/2014)
[27]
GitHub. HoloGraphLibrary. URL:
https://github.com/Androguide/HoloGraphLibrary (acedido em 06/2014)
[28]
Joda. Joda-time. URL:
http://www.joda.org/joda-time/ (acedido em 06/2014)
[29]
GitHub. KenBurnsView. URL:
https://github.com/flavioarfaria/KenBurnsView (acedido em 06/2014)
[30]
Flurry. Flurry-Analytics. URL:
http://www.flurry.com/solutions/analytics (acedido em 06)
[31]
Google Code. Osmbonuspack. URL:
https://code.google.com/p/osmbonuspack/ (acedido em 06/2014)
41
42