instituto politécnico da guarda autoradio para ...bdigital.ipg.pt/dspace/bitstream/10314/1795/1/ivo...

52

Upload: others

Post on 15-Mar-2021

11 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Instituto Politécnico da Guarda AutoRadio para ...bdigital.ipg.pt/dspace/bitstream/10314/1795/1/Ivo Rocha_1009255.pdf · SDK Software Development Kit - Kit de Desenvolvimento de
Page 2: Instituto Politécnico da Guarda AutoRadio para ...bdigital.ipg.pt/dspace/bitstream/10314/1795/1/Ivo Rocha_1009255.pdf · SDK Software Development Kit - Kit de Desenvolvimento de

Instituto Politécnico da GuardaEscola Superior de Tecnologia e Gestão

AutoRadio para dispositivos Android

Ivo Rocha - no 1009255

Projeto Aplicado no Curso

de Engenharia Informática em contexto de estágio

30 de Julho de 2012

Page 3: Instituto Politécnico da Guarda AutoRadio para ...bdigital.ipg.pt/dspace/bitstream/10314/1795/1/Ivo Rocha_1009255.pdf · SDK Software Development Kit - Kit de Desenvolvimento de

Instituto Politécnico da GuardaEscola Superior de Tecnologia e Gestão

AutoRadio para dispositivos Android

Ivo Rocha - no 1009255

Projeto Aplicado no Curso

de Engenharia Informática em contexto de estágio

Supervisor: António Gil - Diretor Geral da empresa Dom Digital -

Consultoria e Serviços Internet

Docente Orientador: Mestre Paulo Jorge Costa Nunes, Professor

Adjunto da Unidade Técnico-Cientí�ca de Informática da ESTG.

30 de Julho de 2012

Page 4: Instituto Politécnico da Guarda AutoRadio para ...bdigital.ipg.pt/dspace/bitstream/10314/1795/1/Ivo Rocha_1009255.pdf · SDK Software Development Kit - Kit de Desenvolvimento de

Agradecimentos

O desempenho no desenvolvimento deste projeto em contexto de estágio não teriasido o mesmo sem o apoio de algumas pessoas, às quais gostaria de aqui expressaro meu reconhecimento.

Um agradecimento aos professores da Unidade Curricular Projeto de Informática,Prof. Paulo Nunes e Prof. Noel Lopes.

Um agradecimento à Diretora da Escola Superior de Tecnologia e Gestão, ProfessoraDoutora Maria Clara Silveira pelo seu apoio e disponibilidade.

Um agradecimento ao Diretor da empresa Dom Digital, António Gil pelo apoio,liderança e pela forma como me integrou na equipa.

Um agradecimento a todos os colegas de equipa da Dom Digital com os quais tiveo privilégio de trabalhar, em especial ao Pedro Ribeiro e ao Paulo Fonseca.

Finalmente, um agradecimento muito especial à minha namorada pela compreensão,paciência, carinho e apoio que sempre demonstrou.

Page 5: Instituto Politécnico da Guarda AutoRadio para ...bdigital.ipg.pt/dspace/bitstream/10314/1795/1/Ivo Rocha_1009255.pdf · SDK Software Development Kit - Kit de Desenvolvimento de

Resumo

A evolução tecnológica permitiu que os dispositivos móveis se tenham integrado navida das pessoas, e hoje é muito comum um simples telemóvel ter acesso GPS, TV,jogos, acesso à internet e muito mais, tal como um computador, e, desta forma, ocrescimento para desenvolver aplicações móveis para estes dispositivos, tem vindo aaumentar bastante.

Este documento descreve o trabalho realizado no âmbito da disciplina �Projeto deInformática� na Licenciatura em Engenharia Informática da Escola Superior de Tec-nologia e Gestão no Instituto Politécnico da Guarda.

O trabalho consistiu no desenvolvimento de uma aplicação para dispositivos móveis,nomeadamente para tablet's embutidos em automóveis, com o sistema operativoAndroid, permitindo ao utilizador ter acesso a conteúdos da Rádio Nacional An-tena3, tal como: ouvir a rádio, ouvir podcasts, consultar a programação, partilharem redes sociais, telefonar para a rádio, etc. Também foi criada uma plataformade gestão, apenas direcionada para a rádio, onde será guardada toda a informaçãosobre os ouvintes que utilizam a aplicação.

Palavras Chave: Android, rádio, redes sociais, serviços web.

Page 6: Instituto Politécnico da Guarda AutoRadio para ...bdigital.ipg.pt/dspace/bitstream/10314/1795/1/Ivo Rocha_1009255.pdf · SDK Software Development Kit - Kit de Desenvolvimento de

Abstract

The technological evolution allowed mobile devices integration in people's lives, andtoday is a very common mobile access to GPS, TV, games, Internet access and muchmore, such as a computer, and therefore, growth to develop mobile applications tothese devices, has increased considerably.

This document describes the work done within the discipline of "Projeto de Infor-mática"with a degree in Engenharia Informática from Escola Superior de Tecnologiae Gestão da Guarda.

The work consisted to develop an application for mobile devices, particularly fortablets embedded in cars, with the Android operating system, allowing the user toaccess the contents of the Nation Radio Antena3, as listening to the radio, listen topodcasts, see the schedule, share on social networks, call to the radio, etc. .. It wasalso created a management platform only directed to the radio where all informationwill be stored about the listeners who use the application.

Key Words Android, radio, social networks, web services.

Page 7: Instituto Politécnico da Guarda AutoRadio para ...bdigital.ipg.pt/dspace/bitstream/10314/1795/1/Ivo Rocha_1009255.pdf · SDK Software Development Kit - Kit de Desenvolvimento de

Conteúdo

1 Introdução 11

1.1 Instituição de acolhimento . . . . . . . . . . . . . . . . . . . . . . . . 121.2 Motivação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121.3 Solução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121.4 Estrutura do documento . . . . . . . . . . . . . . . . . . . . . . . . . 12

2 De�nição do problema e objetivos previstos 14

2.1 De�nição do problema . . . . . . . . . . . . . . . . . . . . . . . . . . 142.2 Objetivos previstos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

3 Metodologia e resultados esperados 16

3.1 Metodologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163.2 Descrição das tarefas . . . . . . . . . . . . . . . . . . . . . . . . . . . 163.3 Resultados esperados . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

4 Tecnologias utilizadas 18

4.1 Sistema operativo Andoid . . . . . . . . . . . . . . . . . . . . . . . . 184.2 Programação Android . . . . . . . . . . . . . . . . . . . . . . . . . . 184.3 API com a rede social Facebook . . . . . . . . . . . . . . . . . . . . . 194.4 API com a rede social Twitter . . . . . . . . . . . . . . . . . . . . . . 204.5 RSS feeds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204.6 Serviços web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

4.6.1 Serviço web da musiXmatch . . . . . . . . . . . . . . . . . . . 224.6.2 Serviço web Twilio . . . . . . . . . . . . . . . . . . . . . . . . 23

4.7 Salesforce.com . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234.8 Android Crash Reports . . . . . . . . . . . . . . . . . . . . . . . . . . 24

5 Trabalho realizado 26

5.1 Ciclo de vida de uma aplicação Android . . . . . . . . . . . . . . . . 265.1.1 Máquina de estados . . . . . . . . . . . . . . . . . . . . . . . . 27

5.2 FrontO�ce - A aplicação Android . . . . . . . . . . . . . . . . . . . . 295.2.1 Arquitetura das tecnologias utilizadas . . . . . . . . . . . . . . 295.2.2 A aplicação Android . . . . . . . . . . . . . . . . . . . . . . . 30

5.2.2.1 Activity principal - Modo Interativo . . . . . . . . . 315.2.2.2 Activity principal - Modo Radio . . . . . . . . . . . . 335.2.2.3 Activity Podcasts . . . . . . . . . . . . . . . . . . . . 345.2.2.4 Activity Trânsito . . . . . . . . . . . . . . . . . . . . 34

4

Page 8: Instituto Politécnico da Guarda AutoRadio para ...bdigital.ipg.pt/dspace/bitstream/10314/1795/1/Ivo Rocha_1009255.pdf · SDK Software Development Kit - Kit de Desenvolvimento de

5.2.2.5 Activity Programas . . . . . . . . . . . . . . . . . . . 345.2.2.6 Activity Settings . . . . . . . . . . . . . . . . . . . . 365.2.2.7 Janela de diálogo Call Radio . . . . . . . . . . . . . 385.2.2.8 Janela de diálogo Lyrics . . . . . . . . . . . . . . . . 385.2.2.9 Janela de diálogo MyRecords . . . . . . . . . . . . . 38

5.3 BackO�ce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405.3.1 Base de Dados . . . . . . . . . . . . . . . . . . . . . . . . . . 40

5.3.1.1 Descrição das tabelas . . . . . . . . . . . . . . . . . . 405.3.2 Páginas de visualização de dados . . . . . . . . . . . . . . . . 425.3.3 Grá�cos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

6 Conclusões e trabalho futuro 45

6.1 Conclusões . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 456.2 Trabalho Futuro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

A Projeto Interactive Radio 48

Page 9: Instituto Politécnico da Guarda AutoRadio para ...bdigital.ipg.pt/dspace/bitstream/10314/1795/1/Ivo Rocha_1009255.pdf · SDK Software Development Kit - Kit de Desenvolvimento de

Lista de Figuras

3.1 Mapa de Gantt. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

4.1 Letra música Burn It Down e artista Linkin Park. . . . . . . . . . . . 22

5.1 Ciclo de vida de uma aplicação Android [1] . . . . . . . . . . . . . . . 285.2 Serviços na aplicação. . . . . . . . . . . . . . . . . . . . . . . . . . . . 295.3 Activity em modo de rádio interativa. . . . . . . . . . . . . . . . . . . 315.4 Activity em modo de rádio . . . . . . . . . . . . . . . . . . . . . . . . 345.5 Activity Podcasts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355.6 Activity Transito . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355.7 Activity Programas. . . . . . . . . . . . . . . . . . . . . . . . . . . . 365.8 Activity Settings. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375.9 Diálogo Call Radio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375.10 Diálogo Lyrics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385.11 Diálogo MyRecords . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395.12 Base de dados - Relações entre tabelas . . . . . . . . . . . . . . . . . 405.13 Salesforce - Lista de ouvintes recentes. . . . . . . . . . . . . . . . . . 425.14 Salesforce - Detalhes de um ouvinte. . . . . . . . . . . . . . . . . . . 435.15 Salesforce - Mapa de audiência. . . . . . . . . . . . . . . . . . . . . . 445.16 Salesforce - Grá�co músicas mais ouvidas . . . . . . . . . . . . . . . . 44

A.1 Interactive Radio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

6

Page 10: Instituto Politécnico da Guarda AutoRadio para ...bdigital.ipg.pt/dspace/bitstream/10314/1795/1/Ivo Rocha_1009255.pdf · SDK Software Development Kit - Kit de Desenvolvimento de

Lista de Tabelas

4.1 Métodos da API do Facebook. . . . . . . . . . . . . . . . . . . . . . . 194.2 Métodos da API Twitter4j. . . . . . . . . . . . . . . . . . . . . . . . . 204.3 Métodos do serviço web musiXmatch. . . . . . . . . . . . . . . . . . . 22

7

Page 11: Instituto Politécnico da Guarda AutoRadio para ...bdigital.ipg.pt/dspace/bitstream/10314/1795/1/Ivo Rocha_1009255.pdf · SDK Software Development Kit - Kit de Desenvolvimento de

Lista de listagens

1 Exemplo de uma aplicação Android. . . . . . . . . . . . . . . . . . . . 192 Função de partilha de uma mensagem na rede social Facebook. . . . . 203 Função de partilha de uma mensagem na rede social Twitter. . . . . . 204 Exemplo de documento de feed [14]. . . . . . . . . . . . . . . . . . . . 215 Obter o lyrics de uma música. . . . . . . . . . . . . . . . . . . . . . . 226 Código para efetuar uma chamada através da Internet com o Twilio. . 237 Código para inserir um registo na tabela SocialActivity no Salesforce. 248 Código de exemplo para implementar o sistema de relatórios de erro. 25

8

Page 12: Instituto Politécnico da Guarda AutoRadio para ...bdigital.ipg.pt/dspace/bitstream/10314/1795/1/Ivo Rocha_1009255.pdf · SDK Software Development Kit - Kit de Desenvolvimento de

Glossário

• Activity � É uma classe interface que gera e controla a interface grá�ca do utili-zador no sistema operativo Android.

• ACRA � Application Crash Report for Android - É uma library que permite àsaplicações Android enviarem automaticamente relatórios de erros para um formulárioGoogleDocs.

• API � Application Programming Interface - É um conjunto de funções e padrõesestabelecidos por um software para a utilização das suas funcionalidades em aplica-ções.

• Blog� É um site cuja estrutura permite a atualização rápida a partir de acréscimosdos chamados artigos, ou posts.

• Classe � Modelo abstrato para criar objetos.

• CRM � Customer relationship management (Gestão de relação com o Cliente)

• Eclipse � É um IDE desenvolvido em Java, seguindo um modelo open source dedesenvolvimento de software.

• Feeds � É um formato de dados, usado em formas de comunicação, com conteúdoatualizado frequentemente.

• Frictionless Sharing � Termo utilizado para descrever a partilha de recursos emredes sociais, sem interação do utilizador após este a permissão deste.

• GPS � Global Positioning System - Sistema de posicionamento global - É umsistema de navegação por satélite que fornece a um aparelho recetor móvel a posiçãogeográ�ca do mesmo.

• IDE � Integrated Development Environment - Ambiente Integrado de Desenvolvi-mento - É um programa que reúne características e ferramentas de apoio ao desen-volvimento de software com o objetivo de agilizar o processo.

• Interface � Em Java, uma interface é um conjunto de tipos de métodos que asclasses podem implementar.

• Internet�Omaior conjunto de redes de dados do mundo, tendo em comum apenasa utilização do protocolo TCP/IP.

• IP � Internet Protocol - É um protocolo de comunicação usado entre duas ou maismáquinas em rede para encaminhamento de dados.

• Java�É uma linguagem de programação orientada a objetos da Sun Microsystems.

9

Page 13: Instituto Politécnico da Guarda AutoRadio para ...bdigital.ipg.pt/dspace/bitstream/10314/1795/1/Ivo Rocha_1009255.pdf · SDK Software Development Kit - Kit de Desenvolvimento de

10

• Library � Coleção de subprogramas utilizados no desenvolvimento de software.

• Lyrics � Letra de uma música.

• NetBeans � É um IDE gratuito e de código aberto para desenvolvimento naslinguagens Java, C, C++, PHP, etc.

• RTSP� Real Time Streaming Protocol - É um protocolo a nível de aplicação, paracontrolo na transferência de dados com propriedades de tempo real.

• SDK � Software Development Kit - Kit de Desenvolvimento de Software.

• SO � Sistema Operativo.

• Trigger � É um recurso de programação, tipicamente usado em base de dados,executado sempre que o evento associado ocorrer.

• Plugin � É um programa de computador usado para adicionar funcionalidades aoutros programas maiores, provendo alguma funcionalidade especial ou muito espe-cí�ca.

• XML � Extended Markup Language - É uma linguagem de descrição documentalpara utilização em ambientes de Internet.

Page 14: Instituto Politécnico da Guarda AutoRadio para ...bdigital.ipg.pt/dspace/bitstream/10314/1795/1/Ivo Rocha_1009255.pdf · SDK Software Development Kit - Kit de Desenvolvimento de

Capítulo 1

Introdução

O presente relatório descreve o projeto em contexto de estágio desenvolvido peloaluno Ivo Tiago Ramos Rocha, na empresa Dom Digital - Consultoria e ServiçosInternet, no âmbito da disciplina de Projeto de Informática na Escola Superior deTecnologia e Gestão no Instituto Politécnico da Guarda.

O projeto consistiu em desenvolver uma aplicação para o sistema operativo Androiddenominada AutoRadio. Esta aplicação destina-se nomeadamente aos automobilis-tas ouvintes da Rádio Nacional Antena3 pela Internet. Para uso da aplicação Auto-Radio é necessário um equipamento que funcione com o sistema Android, como porexemplo, um smartphone ou um tablet.

O conceito de tablet surgiu em 1968 por Alan Kay, cientista americano da computa-ção e pioneiro em áreas como interfaces grá�cas e programação orientada a objetos[12]. O fenómeno dos tablets, que parece ser a principal aposta da indústria detecnologia a partir do ano 2010 [9], impulsionado pelo sucesso do modelo da Apple,tornou possível o aparecimento de tablets em diferentes versões, tamanhos, cores efuncionalidades de diversas empresas, tais como Asus, Samsung e Sony. Segundo osdados da Gartner, em 2010 existiam aproximadamente 20 milhões de tablets comer-cializados, e até 2014 são esperados mais de 208 milhões de aparelhos no mercado.

Atualmente, a industria automóvel está a incluir tablets nos seus automóveis, damesma forma como incluiu o navegador GPS, o leitor de MP3, o leitor de CD oleitor de cassetes e o rádio. A inclusão de um tablet num automóvel permite aosseus ocupantes usufruir de muitos serviços com grande facilidade, como por exemplo,acesso a emissões, quer de estações de rádio, quer de televisão, acesso à internet,chamadas telefónicas por internet, acesso a conteúdos de áudio e vídeo.

O projeto enquadra-se no âmbito e complexidade adequada às competências adqui-ridas no curso:

• Autonomia e capacidade de de�nir objetivos

• Capacidade de modelação de problemas

• Saber elaborar relatórios de análise, desenho e implementação de soluções

• Gestão do tempo e cumprimento de prazos

11

Page 15: Instituto Politécnico da Guarda AutoRadio para ...bdigital.ipg.pt/dspace/bitstream/10314/1795/1/Ivo Rocha_1009255.pdf · SDK Software Development Kit - Kit de Desenvolvimento de

CAPÍTULO 1. INTRODUÇÃO 12

O projeto realizado obedeceu às seguintes condições:

• Ter a duração de aproximadamente três meses e uma carga horária com aopção de combinação projeto/formação entre a instituição de acolhimento e oaluno. O estágio teve inicio no dia 3 de Março de 2012 e terminou a 10 deJulho de 2012.

• Ter um orientador docente da Unidade Técnico-Cientí�ca de Informática daESTG do Instituto Politécnico da Guarda, ou outro, assim como um supervisordireto na empresa.

• Ter um plano de desenvolvimento aprovado pelo diretor de curso.

1.1 Instituição de acolhimento

A Dom Digital é uma empresa que presta serviços tendo como base a infra-estruturada Internet. Foi fundada em Janeiro de 1997 na cidade da Guarda. Esta é umaempresa que acredita no futuro, onde as tecnologias da Internet farão cada vez maisparte da vida das empresas. Tem como missão criar soluções criativas, com base emtecnologia �ável, que cria valor acrescentado ao negócio dos seus clientes; prestarserviços de excelência e contribuir para o desenvolvimento da Internet portuguesana sua componente social.

1.2 Motivação

A principal motivação para o desenvolvimento deste projeto é a possibilidade depoder trabalhar com novas tecnologias, com as quais nunca tive oportunidade detrabalhar, principalmente para o desenvolvimento de aplicações móveis para o sis-tema operativo Android. Também a possibilidade em poder reforçar a marca daRádio, alargar a sua audiência para uma escala global, �delizar a audiência atual,conhecer melhor as audiências e agregar facilmente outros conteúdos de qualidade.

1.3 Solução

A solução proposta consiste em desenvolver uma aplicação para tablets Androidcom um FrontO�ce, onde os ouvintes da rádio poderão consultar conteúdos únicosda Rádio Nacional Antena3, entre outras funcionalidades e um BackO�ce em quepermitirá, aos administradores da rádio, obter um conjunto de dados sobre as suasaudiências, gostos musicais e distribuição geográ�ca dos seus ouvintes, entre muitasoutras.

1.4 Estrutura do documento

Este documento está organizado da seguinte forma:

Page 16: Instituto Politécnico da Guarda AutoRadio para ...bdigital.ipg.pt/dspace/bitstream/10314/1795/1/Ivo Rocha_1009255.pdf · SDK Software Development Kit - Kit de Desenvolvimento de

CAPÍTULO 1. INTRODUÇÃO 13

• Capítulo 2 - De�nição do problema e objetivos - apresentação do problema edos objetivos do projeto.

• Capítulo 3 - Metodologia e calendarização - apresentação das metodologiasusadas no desenvolvimento do trabalho realizado e a sua calendarização.

• Capítulo 4 - Tecnologias utilizadas - neste capítulo são abordadas com algumdetalhe as tecnologias utilizadas na implementação do projeto.

• Capítulo 5 - Trabalho realizado - descrição detalhada do trabalho realizado edas tecnologias utilizadas durante o projeto.

• Capítulo 6 - Conclusões e trabalho futuro - considerações �nais sobre o traba-lho desenvolvido e possível trabalho futuro.

Page 17: Instituto Politécnico da Guarda AutoRadio para ...bdigital.ipg.pt/dspace/bitstream/10314/1795/1/Ivo Rocha_1009255.pdf · SDK Software Development Kit - Kit de Desenvolvimento de

Capítulo 2

De�nição do problema e objetivos

previstos

2.1 De�nição do problema

Desenvolver uma aplicação para dispositivos móveis, nomeadamente para tabletsembutidos em automóveis, com o sistema operativo Android, permitindo aos utili-zadores ter acesso à emissão online da Rádio Antena3. A aplicação deve forneceras seguintes funcionalidades: ouvir podcasts, consultar a programação, partilhar emredes sociais, telefonar para a rádio, etc. Também foi criada uma plataforma de ges-tão apenas direcionada para a rádio, onde será guardada toda a informação sobreos ouvintes que utilizam a aplicação.

Para o desenvolvimento deste projeto, será preciso ultrapassar alguns problemaspara obter a informação a disponibilizar na aplicação. Todo o conjunto destasinformações terá que ser obtido através do acesso da aplicação à Internet.

Os principais problemas a resolver são os seguintes:

• Como obter os dados da música ou programa que está atualmente a tocar narádio;

• Como reproduzir o que está a ser reproduzido na rádio, na aplicação;

• Como obter os diversos podcasts e programação da rádio;

• Como obter a letra da música que está a tocar no momento;

• Como integrar a aplicação nas redes sociais;

• Como centralizar toda a informação dos ouvintes num único lugar para esta-tísticas da rádio;

• Como permitir à aplicação efetuar chamadas através da Internet para a rádio;

• Como obter informações da situação das estradas, por exemplo: obras, sinis-tralidade, tráfego, etc. e disponibilizá-las num mapa.

14

Page 18: Instituto Politécnico da Guarda AutoRadio para ...bdigital.ipg.pt/dspace/bitstream/10314/1795/1/Ivo Rocha_1009255.pdf · SDK Software Development Kit - Kit de Desenvolvimento de

CAPÍTULO 2. DEFINIÇÃO DO PROBLEMA E OBJETIVOS PREVISTOS 15

2.2 Objetivos previstos

A seguir segue uma lista dos principais objetivos de�nidos no início deste projeto.Dependendo de vários fatores estes poderão ser ou não implementados.

Objetivos a atingir:

• Desenvolver uma aplicação móvel em Android para a rádio Antena3;

• Integrar a informação da rádio na aplicação;

• Relacionar os dados dos ouvintes, como por exemplo, gostos musicais, músicasmais ouvidas, etc. para estatísticas da rádio através de relatórios e grá�cos;

• Permitir aos ouvintes partilhar o que ouvem na aplicação nas redes sociais;

• Integrar um sistema de chamadas VoIP permitindo aos ouvintes falar com oslocutores da rádio, de forma gratuita;

• Permitir à rádio saber onde se encontram os vários ouvintes no mundo.

Page 19: Instituto Politécnico da Guarda AutoRadio para ...bdigital.ipg.pt/dspace/bitstream/10314/1795/1/Ivo Rocha_1009255.pdf · SDK Software Development Kit - Kit de Desenvolvimento de

Capítulo 3

Metodologia e resultados esperados

3.1 Metodologia

Para o desenvolvimento deste projeto foi utilizada uma metodologia ágil, que consis-tiu em ter, todas as semanas, uma versão para entrega na empresa, e apenas no �nal,documentar tudo. Então, a metodologia utilizada para desenvolver, implementar etestar a aplicação móvel é a seguinte:

1. Análise de sistema dos requisitos do projeto de�nindo as funcionalidades daaplicação móvel;

2. Implementação do projeto;

3. Realização de testes e análise da e�ciência e �abilidade da aplicação;

4. Documentação do projeto num relatório.

3.2 Descrição das tarefas

As principais tarefas foram:

• Tarefa 1 � Análise dos requisitos;

• Tarefa 2 � Estudo do ciclo de vida de uma aplicação no sistema operativoAndroid;

• Tarefa 3 � Aquisição e estudo das várias API's necessárias para o projeto;

• Tarefa 4 � Implementação da solução proposta;

• Tarefa 5 � Testes da aplicação;

• Tarefa 6 � Elaboração do relatório.

O agendamento das tarefas é apresentado na �gura 3.1.

16

Page 20: Instituto Politécnico da Guarda AutoRadio para ...bdigital.ipg.pt/dspace/bitstream/10314/1795/1/Ivo Rocha_1009255.pdf · SDK Software Development Kit - Kit de Desenvolvimento de

CAPÍTULO 3. METODOLOGIA E RESULTADOS ESPERADOS 17

Figura 3.1: Mapa de Gantt.

3.3 Resultados esperados

No �m deste projeto, espera-se que a aplicação esteja terminada e pronta para serdisponibilizada ao público. A aplicação deverá ser capaz de:

• Permitir a um ouvinte ouvir a rádio e saber o que está a tocar;

• Permitir que o ouvinte possa partilhar nas redes sociais de�nidas, o que estáa ouvir, onde e como;

• Permitir que o ouvinte possa telefonar para a rádio;

• Permitir ao ouvinte consultar a programação da rádio e ouvir podcasts;

• Permitir ao ouvinte de�nir o quê, e com quem pretende partilhar a informaçãoda aplicação;

• Permitir ao ouvinte gravar um programa/música para mais tarde ouvir denovo;

• Permitir ao ouvinte usar o sistema de GPS para consultar o estado das estra-das.

Na plataforma de gestão online deverá ser possível, para os administradores darádio:

• Consultar relatórios e grá�cos com estatísticas dos seus ouvintes;

• Consultar um mapa de audiência permitindo saber onde se encontram distri-buídos os seus ouvintes em Portugal e no mundo;

• Alterar de�nições da aplicação móvel.

Page 21: Instituto Politécnico da Guarda AutoRadio para ...bdigital.ipg.pt/dspace/bitstream/10314/1795/1/Ivo Rocha_1009255.pdf · SDK Software Development Kit - Kit de Desenvolvimento de

Capítulo 4

Tecnologias utilizadas

O desenvolvimento da aplicação AutoRadio requer a utilização de diversas tecnolo-gias, descritas nas secções seguintes. Para cada uma delas é apresentado um pequenoexemplo de utilização com código escrito na linguagem de programação Java.

4.1 Sistema operativo Andoid

O Android é um sistema operativo baseado em Linux, para dispositivos móveiscomo smartphones e tablets, desenvolvido pela Open Handset Alliance, lideradapela empresa Google [5]. A primeira versão do Android foi apresentada em 20Setembro de 2008, e atualmente encontra-se na versão 4.1 dada pelo nome JellyBean, lançada a 10 de Julho de 2012.

A Open Handset Alliance é um consórcio de 84 �rmas que desenvolvem standardsabertos para dispositivos móveis [4].

4.2 Programação Android

Para desenvolver aplicações para Android, normalmente é utilizada a linguagemde programação Java. No desenvolvimento de aplicações que requerem melhor de-sempenho, pode-se recorrer à linguagem de programação C para otimizar algumasfuncionalidades.

As aplicações podem ser desenvolvidas, utilizando o ambiente de programação Eclipsee NetBeans, entre outros, sendo necessário recorrer à instalação de plugins e o SDKAndroid.

A listagem 1 apresenta um exemplo de uma aplicação de Hello World. Esta aplicaçãocontém uma EditText, que é uma caixa para introdução de texto, um botão e umaTextView para apresentar uma mensagem. Após introduzir um nome na caixa detexto e premindo o botão, na TextView será apresentada uma mensagem de boasvindas.

18

Page 22: Instituto Politécnico da Guarda AutoRadio para ...bdigital.ipg.pt/dspace/bitstream/10314/1795/1/Ivo Rocha_1009255.pdf · SDK Software Development Kit - Kit de Desenvolvimento de

CAPÍTULO 4. TECNOLOGIAS UTILIZADAS 19

Listagem 1 Exemplo de uma aplicação Android.package android.ivo;

import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.TextView;

public class HelloWorld extends Activity {private EditText nameEditText;private Button buttonSubmit;private TextView textViewMessage;

@Overrideprotected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

nameEditText = (EditText) findViewById(R.id.nameEditText);buttonSubmit = (Button) findViewById(R.id.buttonSubmit);textViewMessage = (TextView) findViewById(R.id.textViewMessage);

buttonSubmit.setOnClickListener(new View.OnClickListener() {public void onClick(View v) {

textViewMessage.setText("Hello " + nameEditText.getText() + "!");}

});}

}

4.3 API com a rede social Facebook

Para poder integrar a aplicação no Facebook, em primeiro lugar, foi preciso registá-la, seguindo certos passos necessários, para que tudo no �m, funcione perfeitamente.Para tal, foi usado um tutorial disponibilizado na página de documentação da API,no Facebook [2].

Esta API utiliza o método SSO (Single Sign-On), que faz com que os utilizadores,que já tenham a aplicação Android do Facebook instalada nos seus dispositivos, nãotenham que introduzir o username e password numa aplicação de externos (como éo caso da aplicação do projeto).Alguns dos métodos disponibilizados pela API são apresentados na tabela 4.1.

Método Parâmetros de entrada Parâmetros de saída

logout contexto:Context result:String

isSessionValid result:Boolean

request graphPath:String, param:Bundle, http:String

Tabela 4.1: Métodos da API do Facebook.

A listagem 2, apresenta uma função em Java, que permite publicar uma mensagemno per�l do utilizador. É através do método request, que todos os pedidos e enviossão efetuados para o Facebook.

Page 23: Instituto Politécnico da Guarda AutoRadio para ...bdigital.ipg.pt/dspace/bitstream/10314/1795/1/Ivo Rocha_1009255.pdf · SDK Software Development Kit - Kit de Desenvolvimento de

CAPÍTULO 4. TECNOLOGIAS UTILIZADAS 20

Listagem 2 Função de partilha de uma mensagem na rede social Facebook....public static AsyncFacebookRunner facebookAsyncRunner;...private void partilhaFacebook(String mensagem) {Bundle params = new Bundle();params.putString("message", mensagem);params.putString("name", "AutoRadio Antena3");facebookAsyncRunner.request("me/feed", params, "POST", new postOnWallListener(), null);

}

public class postOnWallListener extends BaseRequestListener {public void onComplete(final String response, final Object state) {

showToast("Atividade publicada no Facebook.");}

public void onFacebookError(FacebookError error) {showToast("Ocorreu um erro ao publicar a sua atividade no Facebook.");

}}

4.4 API com a rede social Twitter

O Twitter, atualmente, ainda não disponibilizou uma API proprietária para o sis-tema operativo Android, e após uma breve pesquisa, foram encontradas algumas,desenvolvidas pela comunidade. A API usada denomina-se Twitter4j [15].

A listagem 3 exempli�ca uma função com o �m de partilhar uma mensagem noTwitter.

Listagem 3 Função de partilha de uma mensagem na rede social Twitter.private void partilhaTwitter(String mensagem) {try {twitter.updateStatus(mensagem);showToast("Tweet publicado no seu Twitter.");

} catch (TwitterException te) {Log.e("MainActivity", "Ocorreu um erro ao publicar tweet: " + te);showToast("Ocorreu um erro ao publicar o seu tweet.");

}}

Alguns dos métodos disponibilizados pela API são apresentados na tabela 4.2.

Método Parâmetros de entrada Parâmetros de saída

createFriendship userID:long beFriendUser:User

getAccountSettings settings:AccountSettings

updateStatus status:String lastStatus:Status

Tabela 4.2: Métodos da API Twitter4j.

4.5 RSS feeds

Um feed é um formato de dados usado em formas de comunicação com conteúdofrequentemente atualizado [6]. Em sites onde ocorrem muitas atualizações, tais como

Page 24: Instituto Politécnico da Guarda AutoRadio para ...bdigital.ipg.pt/dspace/bitstream/10314/1795/1/Ivo Rocha_1009255.pdf · SDK Software Development Kit - Kit de Desenvolvimento de

CAPÍTULO 4. TECNOLOGIAS UTILIZADAS 21

blogs, sites de notícias, etc., é frequente terem feeds, e assim os utilizadores poderãosubscrevê-los e então, passarão a ter toda a informação num único sítio, evitandoque estes visitem frequentemente os sites.

A listagem 4 ilustra um exemplo de um documento de feed da Rádio Antena3, quecontém as últimas músicas tocadas na rádio, referentes à data 2012-07-26 e hora21:34:52.

Listagem 4 Exemplo de documento de feed [14].

<rss xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:t="http://www.rtp.pt" version="2.0"><channel><title><![CDATA[ Antena3 / Últimas Músicas ]]>

</title><link>http://www.rtp.pt</link><name>Antena3</name><description><![CDATA[ Últimas músicas Antena3 ]]>

</description><language>pt-pt</language><lastBuildDate>Thu, 26 Jul 2012 20:40:46</lastBuildDate><category>Antena3 Rss</category><copyright> c© 2011 RTP.PT, Gabinete Multimedia</copyright><item><title><![CDATA[ These Boots Are Made For Walking ]]>

</title><author><![CDATA[ Legendary Tigerman & Maria de Medeiros ]]>

</author><durationInt>221</durationInt><durationTime>00:03:41</durationTime><start_timeDate>2012-07-26T21:34:52.848</start_timeDate><start_timeTime>21:34:52</start_timeTime><hora>496444</hora>

</item><item><title><![CDATA[ Lovers Lollypops ]]>

</title><author><![CDATA[ Long Way To Alaska ]]>

</author><durationInt>177</durationInt><durationTime>00:02:57</durationTime><start_timeDate>2012-07-26T21:32:03.614</start_timeDate><start_timeTime>21:32:03</start_timeTime><hora>2028331</hora>

</item></channel>

</rss>

4.6 Serviços web

Um serviço web é uma solução utilizada na integração de sistemas e na comunicaçãoentre aplicações diferentes. Com esta tecnologia é possível que novas aplicaçõespossam interagir com aqueles que já existem. Como cada aplicação pode ter a suaprópria "linguagem", esta é traduzida para uma linguagem universal XML [7].

Page 25: Instituto Politécnico da Guarda AutoRadio para ...bdigital.ipg.pt/dspace/bitstream/10314/1795/1/Ivo Rocha_1009255.pdf · SDK Software Development Kit - Kit de Desenvolvimento de

CAPÍTULO 4. TECNOLOGIAS UTILIZADAS 22

4.6.1 Serviço web da musiXmatch

O serviço web disponibilizado pela musiXmatch permite obter a letra de uma música(lyrics), com base no título e artista da música. Alguns dos métodos disponibilizadospelo serviço web [13] são apresentados na tabela 4.3. Este serviço fornece uma API,desenvolvida em Java, para facilitar as pesquisas e o tratamento de resultados.

Método Parâmetros de entrada Parâmetros de saída

getMatchingTrack trackName:string, artistName:string track:Track

getLyrics trackID:int lyricBody:Lyric

Tabela 4.3: Métodos do serviço web musiXmatch.

A listagem 5 ilustra um exemplo da utilização do método getMatchingTrack paraobtenção da letra da música com o título Burn It Down e artista Linkin Park. Na�gura 4.1 é apresentado o resultado, ou seja a letra da referida musica.

Listagem 5 Obter o lyrics de uma música....try {

Track track = musixMatch.getMatchingTrack("Burn It Down","Linkin Park");TrackData data = track.getTrack();Lyrics lyrics = musixMatch.getLyrics(data.getTrackId());String lyricBody = lyrics.getLyricsBody();

} catch (MusixMatchException e) {Log.e("MusicMatch", "Lyrics da música não foi encontrado");

}...

The cycle repeatedAs explosions broke in the skyAll that I neededWas the one thing I couldn't find

And you were there at the turnWaiting to let me know

We're building it upTo break it back downWe're building it upTo burn it downWe can't waitTo burn it to the ground

The colors conflictedAs the flames climbed into the cloudsI wanted to fix thisBut couldn't stop from tearing it down

...***** This Lyrics is NOT for Commercial use *****

Figura 4.1: Letra música Burn It Down e artista Linkin Park.

Page 26: Instituto Politécnico da Guarda AutoRadio para ...bdigital.ipg.pt/dspace/bitstream/10314/1795/1/Ivo Rocha_1009255.pdf · SDK Software Development Kit - Kit de Desenvolvimento de

CAPÍTULO 4. TECNOLOGIAS UTILIZADAS 23

4.6.2 Serviço web Twilio

O Twilio é um serviço que disponibiliza API's para várias plataformas, sendo umadelas o Android [11]. Com o Twilio é possível efetuar chamadas sobre a rede IP, paraa rede móvel, enviar mensagens de texto, chamadas de conferência, criar call center's,etc. Para utilizar este serviço é necessário efetuar um registo de utilizador. Paraefeitos não comerciais é possível realizar chamadas gratuitas limitadas no tempo.Na aplicação AutoRadio é utilizado apenas o serviço de chamadas de voz do Twilio.

A seguir, segue um exemplo na listagem 6, de uma função que efetua uma chamadapara um determinado número de telefone, recebido como parâmetro da função. Éatravés do método device.connect(), que a chamada é efetuada, recebendo comoparâmetro, um número de telefone e uma Interface Listener para se programar osestados da chamada.

Listagem 6 Código para efetuar uma chamada através da Internet com o Twilio.public void connect(String phoneNumber) {if (phoneNumber == null) {isInACall = false;Log.e(TAG, "Numero de telefone nao pode ser null.");return;}Map<String, String> parameters = new HashMap<String, String>(1);parameters.put("PhoneNumber", phoneNumber);connection = device.connect(parameters, new ConnectionListener(){

public void onDisconnected(Connection inConnection, int inErrorCode, String inErrorMessage) {Log.i(TAG, "DISCONNECTED_ERROR: " + inErrorMessage + " Code:" + inErrorCode);isInACall = false;

}

public void onDisconnected(Connection inConnection) {Log.i(TAG, "DISCONNECTED");isInACall = false;

}

public void onConnecting(Connection inConnection) {Log.i(TAG, "CONNECTING");

}

public void onConnected(Connection inConnection) {Log.i(TAG, "CONNECTED");

}});

if (connection == null) {fireAfterErrorOcurred("Failed to create new connection");this.isInACall = false;

} else {this.isInACall = true;}

}

4.7 Salesforce.com

O Salesforce é uma empresa líder de mercado mundial, em CRM. Esta plataformana cloud, bastante �exível, permite a uma empresa, gerir toda a sua relação com ocliente, desde a área comercial até ao atendimento [10].

Page 27: Instituto Politécnico da Guarda AutoRadio para ...bdigital.ipg.pt/dspace/bitstream/10314/1795/1/Ivo Rocha_1009255.pdf · SDK Software Development Kit - Kit de Desenvolvimento de

CAPÍTULO 4. TECNOLOGIAS UTILIZADAS 24

Neste projeto, o Salesforce foi usado para guardar toda a informação recebida pelaaplicação Android. Para isto, o Salesforce fornece uma API para o sistema operativoAndroid, no qual permite enviar a informação da aplicação para a plataforma [8].

Na listagem 7 é exempli�cado o envio de dados para a tabela SocialActivity emSalesforce, através de uma aplicação Android.

Listagem 7 Código para inserir um registo na tabela SocialActivity no Salesforce.public static void insertSalesforceSocialActivity(String mensagem, String socialNetwork) {

if (!(socialNetwork.equals("Facebook") ^ socialNetwork.equals("Twitter"))) {Log.d(TAG, "socialNetwork desconhecido");return;

}SObject obj = new SObject();obj.setType("Social_activity__c");HashMap<String, String> requestFields = new HashMap<String, String>();requestFields.put("listener_id__c", salesUserID);requestFields.put("social_message__c", mensagem);requestFields.put("Social_Network__c", socialNetwork);obj.setFields(requestFields);ArrayList<SObject> objs = new ArrayList<SObject>();objs.add(obj);

Salesforce.create(objs, new Salesforce.ResponseListener() {

public void onSforceError(ApiFault apiFault) {String msg = apiFault.getExceptionMessage();String code = apiFault.getExceptionCode().getValue();if (code.equals(ExceptionCode._INVALID_FIELD)) {Log.e(TAG, "Query: Invalid field");

}Log.e(TAG, "ERRO: " + msg);

}

public void onException(Exception e) {Log.e(TAG, "Exception:", e);

}

public void onComplete(Object response) {ArrayList<SaveResult> resultArray = (ArrayList<SaveResult>) response;for (SaveResult sr : resultArray) {if (sr.isSuccess()) {Log.d(TAG, "social message inserted");

} else {Log.d(TAG, "Record insert failed.");for (com.sforce.android.soap.partner.Error error : sr.getErrors()) {Log.d(TAG, "Custom Error: " + error.getMessage());

}}

}}

});}

4.8 Android Crash Reports

Android Crash Reports (ACRA) é uma library que permite às aplicações Androidenviar, automaticamente, relatórios de erros para um formulário do GoogleDocs [3],para ajudar os programadores a obter a informação que levou a aplicação a um erro.

Page 28: Instituto Politécnico da Guarda AutoRadio para ...bdigital.ipg.pt/dspace/bitstream/10314/1795/1/Ivo Rocha_1009255.pdf · SDK Software Development Kit - Kit de Desenvolvimento de

CAPÍTULO 4. TECNOLOGIAS UTILIZADAS 25

Para se poder usar esta library basta colocá-la dentro do projeto, e adicionar umaslinhas de código na classe de aplicação. O exemplo na listagem 8, mostra o que énecessário colocar nessa classe.

Listagem 8 Código de exemplo para implementar o sistema de relatórios de erro.import org.acra.*;import org.acra.annotation.*;

@ReportsCrashes(formKey = "dGVacG0ydVHnaNHjRjVTUTEtb3FPWGc6MQ") //form-key do formulário do GoogleDocspublic class MyApplication extends Application {@Overridepublic void onCreate() {ACRA.init(this);super.onCreate();

}}

Page 29: Instituto Politécnico da Guarda AutoRadio para ...bdigital.ipg.pt/dspace/bitstream/10314/1795/1/Ivo Rocha_1009255.pdf · SDK Software Development Kit - Kit de Desenvolvimento de

Capítulo 5

Trabalho realizado

A aplicação Android, com o recurso ao SDK Android, foi desenvolvida no ambientede programação Eclipse. O Eclipse é um IDE desenvolvido em Java, seguindo ummodelo open source de desenvolvimento de software.

O sistema de gestão para a administração, foi desenvolvida em Salesforce.com, per-mitindo ter toda a informação armazenada na cloud.

Para a integração da aplicação nas redes sociais Facebook e Twitter, foi preciso, emprimeiro lugar, obter as API's necessárias e depois realizar um breve estudo de comoestas funcionariam.

Todos os conteúdos da rádio a apresentar na aplicação, foram obtidos através defeeds disponibilizados pela rádio.

Também foi necessário recorrer às tecnologias da Google, mais propriamente aosmapas, para serem apresentados na aplicação.

Para obter a letra da música (lyrics), foi utilizado um web service da Musixmatch,e �nalmente, para chamadas através da Internet, usou-se a API do Twillio.

5.1 Ciclo de vida de uma aplicação Android

Para o desenvolvimento desta aplicação foi preciso primeiro entender o ciclo de vidade uma activity no sistema operativo Android. Isto é muito importante para garantira criação de uma aplicação robusta.

A responsabilidade do ciclo de vida da aplicação é do sistema operativo. Quandouma activity está a ser executada, esta vai para o topo da pilha de atividades. Umaactivity pode assumir vários estados:

• Em execução;

• Interrompida;

• Em segundo plano;

• Destruída.

26

Page 30: Instituto Politécnico da Guarda AutoRadio para ...bdigital.ipg.pt/dspace/bitstream/10314/1795/1/Ivo Rocha_1009255.pdf · SDK Software Development Kit - Kit de Desenvolvimento de

CAPÍTULO 5. TRABALHO REALIZADO 27

No momento em que uma activity é interrompida em segundo plano, o sistemaoperativo pode, de acordo com a necessidade, libertar os recursos da memória e comisso, encerrar o processo da aplicação. É neste ponto, que pode ser necessário guardaralgumas informações da aplicação para que seja possível o retorno da aplicação aomesmo ponto em que foi deixada.

5.1.1 Máquina de estados

A activity possui métodos que auxiliam o programador a controlar o estado daaplicação. De seguida será feita uma descrição de cada método:

• OnCreate� É apenas executado uma vez quando a activity é iniciada e logoapós a sua execução o método onStart é chamado.

• OnStart� Pode ser executado após o onCreate ou o onRestart, e após a suaexecução o método onResume é chamado.

• onResume � É chamada quando uma activity está a ser executada. É cha-mada após o onStart.

• onRestart � Este método é chamado quando a activity estava no estado deinterrompida em segundo plano e volta a ser executada.

• onPause� É executado quando a activity é interrompida. Aqui o programa-dor deve guardar o estado da aplicação para que seja possível uma recuperaçãopelo método onResume.

• onStop � É chamado quando a activity está a ser terminada.

• onDestroy � Aqui a activity é terminada.

A �gura 5.1 mostra a máquina de estados de uma activity.

Page 31: Instituto Politécnico da Guarda AutoRadio para ...bdigital.ipg.pt/dspace/bitstream/10314/1795/1/Ivo Rocha_1009255.pdf · SDK Software Development Kit - Kit de Desenvolvimento de

CAPÍTULO 5. TRABALHO REALIZADO 28

Figura 5.1: Ciclo de vida de uma aplicação Android [1]

Page 32: Instituto Politécnico da Guarda AutoRadio para ...bdigital.ipg.pt/dspace/bitstream/10314/1795/1/Ivo Rocha_1009255.pdf · SDK Software Development Kit - Kit de Desenvolvimento de

CAPÍTULO 5. TRABALHO REALIZADO 29

5.2 FrontO�ce - A aplicação Android

O FrontO�ce do projeto refere-se à aplicação em si, ou seja, tudo o que o utilizador�nal tem acesso. Entende-se por utilizadores �nais, os ouvintes da rádio que irãoutilizar a aplicação para uso próprio. Esta é a parte visual a que o utilizador temacesso através do que lhe é apresentado pela aplicação.

5.2.1 Arquitetura das tecnologias utilizadas

Grande parte da aplicação utiliza serviços web, para obtenção dos dados necessáriose ligação a redes sociais. A �gura 5.2, representa a ligação destes serviços com aaplicação.

Figura 5.2: Serviços na aplicação.

Utilização de cada serviço:

• Twilio � Este serviço foi utilizado na aplicação para permitir aos ouvintesligar para a rádio sem qualquer custo.

• Twitter e Facebook � As API's destes serviços foram utilizadas para par-tilha de conteúdos nas respetivas redes sociais.

Page 33: Instituto Politécnico da Guarda AutoRadio para ...bdigital.ipg.pt/dspace/bitstream/10314/1795/1/Ivo Rocha_1009255.pdf · SDK Software Development Kit - Kit de Desenvolvimento de

CAPÍTULO 5. TRABALHO REALIZADO 30

• musiXmatch � Utilizado para obter a letra da música que está a tocar narádio.

• Rádio Antena3� A rádio Antena3 disponibilizou vários links de feed's paraobter informações tais como: programação da rádio, lista de podcast's, o queestá atualmente a tocar na rádio, links para streaming da rádio, etc..

• Salesforce � O "coração"da aplicação. É no Salesforce.com que �ca toda ainformação dos ouvintes guardada, tal como o que ouviu, quando e onde, oque partilhou nas redes sociais, quando ligou para a rádio, etc.. Basicamentetorna a aplicação num "Big Brother".

• Crash Reports� Este último, não é bem um serviço, pois não fornece nadaà aplicação. Este apenas permite ajudar-me como programador, a detetarproblemas que ocorram quando a aplicação já está disponibilizada ao público.Sempre que ocorra um problema na aplicação que a leve a um crash, estainformação será enviada para um documento no GoogleDocs para posterioranálise e correção de bugs.

5.2.2 A aplicação Android

Nesta secção são apresentados todos os menus da aplicação e todas as suas funcio-nalidades ilustradas, a seguir:

• Modo Interativo

� Ouvir rádio

∗ Através de stream RTSP

� Record e MyRecords

∗ Registados em Salesforce

� Call Radio

∗ Utilização da API Twilio

� Lyrics

∗ Utilização da API musiXmatch

� Partilhas Sociais

∗ Utilização das API's Facebook e Twitter

� Like e Unlikes

∗ Registados em Salesforce

� Settings

∗ Login Facebook ou Twitter

· Username

· Password

∗ Partilhas

· Com a rádio

· Com a rede social Facebook e Twitter

� Auto-mode

Page 34: Instituto Politécnico da Guarda AutoRadio para ...bdigital.ipg.pt/dspace/bitstream/10314/1795/1/Ivo Rocha_1009255.pdf · SDK Software Development Kit - Kit de Desenvolvimento de

CAPÍTULO 5. TRABALHO REALIZADO 31

• Modo Rádio

� Ouvir rádio

• Podcasts

� Lista de podcasts

� Ouvir podcasts

� Obtidos através de feed's

• Trânsito

� Google Maps

� Posicionamento GPS

� Tráfego

• Programas

� Lista de programação diária da rádio

� Obtidos através de feed's

5.2.2.1 Activity principal - Modo Interativo

Figura 5.3: Activity em modo de rádio interativa.

Este é o menu, apresentado na �gura 5.3, que aparece quando a aplicação é exe-cutada pela primeira vez pelo ouvinte. Através deste, é possível aceder a todas asfuncionalidades da aplicação.

Na primeira vez que o utilizador abre a aplicação, esta irá registar o ouvinte naplataforma Salesforce, com um identi�cador único. O registo deste ouvinte implicaque o dispositivo tenha um e-mail associado; se não o ouvinte �cará registado comoanónimo, até que seja associado um e-mail ao dispositivo.

Page 35: Instituto Politécnico da Guarda AutoRadio para ...bdigital.ipg.pt/dspace/bitstream/10314/1795/1/Ivo Rocha_1009255.pdf · SDK Software Development Kit - Kit de Desenvolvimento de

CAPÍTULO 5. TRABALHO REALIZADO 32

O registo do ouvinte acontece uma única vez, e se o ouvinte possuir mais dispositi-vos que possam usar esta aplicação (ou outras, por exemplo a aplicação InteractiveRadio desenvolvida também por mim, que irei falar um pouco no �nal deste relató-rio), estes ligar-se-ão á conta do mesmo utilizador, desde que o e-mail associado aorespetivo dispositivo seja o mesmo em todos os dispositivos.

Logotipo da marca

No topo da aplicação aparece a marca de automóveis no qual esta está integrada.Devido a burocracias, ainda não foi de�nida a marca que irá utilizar esta aplicação,por isso, e de maneira a continuar a realizar o projeto, foi colocado o logo da "Mer-cedes Benz", que puderá ser mudado ou mantido mais tarde.

Auto-mode

De seguida, mesmo á direita do logotipo da marca, é apresentada a funcionalidadeAuto-mode. Esta é uma funcionalidade muito interessante, mas com muita penaminha, ainda não foi implementada da forma pretendida. Isto é, esta funcionali-dade se estiver em modo ON, fará com que a aplicação mude de estado conforme oveículo esteja em andamento ou não. Se o veículo estiver em andamento este menudeixará de ser apresentado e passará ao modo de rádio (que irá ser apresentado nasecção seguinte), não permitindo que o ouvinte esteja a conduzir e ao mesmo tempoa interagir com a aplicação. Se estiver em modo OFF, o ouvinte tem a possibilidadede escolher o ecrã que desejar.Esta funcionalidade ainda não foi implementada, pois como referido atrás, ainda nãofoi decidida a marca de automóveis que irá adotar esta aplicação. Então, para efeitosde apresentação da aplicação, decidi colocar um temporizador nesta funcionalidade,e então, quando este esteja ON, de x em x segundos, a aplicação irá alternar entremodos automaticamente, e assim simular o automóvel quando em andamento ouparado.

Botão Lyrics

Este botão permite abrir uma janela de diálogo onde irá apresentar a letra da músicaque está atualmente a ser reproduzida pela rádio, caso exista na base de dados dosite da musiXmatch. Esta janela de diálogo será apresentada mais à frente, pela�gura 5.10.

Botão Record

Este botão permite fazer uma gravação da música ou programa que está atualmenteem reprodução na rádio. Toda a lista de gravações do ouvinte �cará guardada onlinena plataforma Salesforce.com.

Botão MyRecords

Page 36: Instituto Politécnico da Guarda AutoRadio para ...bdigital.ipg.pt/dspace/bitstream/10314/1795/1/Ivo Rocha_1009255.pdf · SDK Software Development Kit - Kit de Desenvolvimento de

CAPÍTULO 5. TRABALHO REALIZADO 33

Mais a frente será apresentada pela �gura 5.11, a janela de diálogo que apareceráao pressionar este botão.

Botão Settings

Este botão permite abrir uma janela de diálogo, com todas as con�gurações queexistem na aplicação.

Caixa de informações do que está a ser reproduzido

Nesta caixa, é apresentada a hora de início e �m da música/programa que está atu-almente a ser reproduzido na rádio, e por baixo desta, uma barra de progresso quepermite ao ouvinte saber o estado da duração do que está em reprodução. Estainformação aqui apresentada é obtida através de um feed disponibilizado pela RádioAntena3.Mais abaixo, existe uma barra de volume para controlar o volume do áudio da apli-cação.

Botão Tweet

Este botão, como o nome também indica, permite ao utilizador publicar no seuTwitter, o que está a ouvir na rádio e onde o está a ouvir. Nos Settings da aplicaçãoé possível con�gurar o que o ouvinte deseja ou não partilhar no seu Twitter.

Botão Share

Este botão, permite também publicar, mas no Facebook, o que o ouvinte está aouvir e onde. Também é possível con�gurar isto tudo nos Settings. Este botão talcomo o do Tweet, pode ser dispensado caso o ouvinte ativar nos Settings a opçãode publicar automaticamente no seu mural da rede social.

Botão Like e Dislike

Estes dois botões servem para estatísticas da rádio. Serão submetidos "gosto"e "nãogosto"ao que está atualmente a ser reproduzido na rádio. Esta informação será envi-ada e guardada no Salesforce. É preciso esclarecer que estes botões serão "gostos"dosegundo (tempo) da música/programa que está a tocar, e não um "gosto"global damúsica/programa.

Botão Call Radio

Este botão permite abrir uma janela de diálogo, mais a frente apresentada, possibi-litando efetuar chamadas através da Internet, para a Rádio Antena3.

5.2.2.2 Activity principal - Modo Radio

Este é um modo, no qual o ouvinte pouco interage com a aplicação. Este apenasterá a possibilidade de parar e tocar o stream de rádio.

Page 37: Instituto Politécnico da Guarda AutoRadio para ...bdigital.ipg.pt/dspace/bitstream/10314/1795/1/Ivo Rocha_1009255.pdf · SDK Software Development Kit - Kit de Desenvolvimento de

CAPÍTULO 5. TRABALHO REALIZADO 34

Figura 5.4: Activity em modo de rádio

Este modo é ativado sempre que o automóvel esteja em andamento, caso o ouvintetenha a opção de Auto-mode ligada.

Neste modo também continua a ser apresentada a informação da música/programaque está atualmente em reprodução.

5.2.2.3 Activity Podcasts

Nesta activity, representada pela �gura 5.5, o ouvinte poderá consultar e ouvir todosos podcasts disponibilizados pela rádio. A informação aqui apresentada é obtidaatravés de vários feed's.Estes podcasts estão agrupados pelo programa da rádio, recorrendo a uma lista euma sub-lista para cada podcast do programa respetivo.

5.2.2.4 Activity Trânsito

Nesta activity, representada pela �gura 5.6, é apresentado um mapa, e comrecurso ao GPS do dispositivo é possível determinar a posição do ouvinte. Aqui serápossível veri�car qual o percurso que o ouvinte poderá tomar caso haja incidentesna zona do seu percurso rodoviário. Também com recurso aos dados fornecidospelo GoogleMaps, é possível consultar o estado do tráfego nas principais estradasdo país.

5.2.2.5 Activity Programas

Nesta activity, representada pela �gura 5.7 apenas é apresentada toda a progra-mação do dia, da rádio, através de uma lista. Esta informação é obtida através deum feed disponibilizado pela rádio.

Page 38: Instituto Politécnico da Guarda AutoRadio para ...bdigital.ipg.pt/dspace/bitstream/10314/1795/1/Ivo Rocha_1009255.pdf · SDK Software Development Kit - Kit de Desenvolvimento de

CAPÍTULO 5. TRABALHO REALIZADO 35

Figura 5.5: Activity Podcasts

Figura 5.6: Activity Transito

Page 39: Instituto Politécnico da Guarda AutoRadio para ...bdigital.ipg.pt/dspace/bitstream/10314/1795/1/Ivo Rocha_1009255.pdf · SDK Software Development Kit - Kit de Desenvolvimento de

CAPÍTULO 5. TRABALHO REALIZADO 36

Figura 5.7: Activity Programas.

5.2.2.6 Activity Settings

Esta activity, representada pela �gura 5.8, apresentada sob a forma de uma janelade diálogo, permite ao utilizador efetuar o seu login nas redes sociais Facebook eTwitter e con�gurar o que pretende ou não partilhar.

O ouvinte pode partilhar no Facebook e Twitter:

• A sua localização;

• O que está a ouvir.

O ouvinte pode partilhar com a rádio:

• A sua localização;

• O que está a ouvir;

• As chamadas que efetuou para a rádio;

• As suas partilhas nas redes sociais.

Esta informação partilhada com a rádio, será guardada na plataforma Salesforce.Neste menu ainda é possível, com a permissão do ouvinte, ativar a opção de publicarautomaticamente, nas redes sociais de�nidas, tudo o que faz na aplicação, sem terque, por exemplo, no menu interativo ter que carregar no botão de Tweet ou Share.A isto dá-se o nome de Frictionless Sharing.

Exemplo de uma mensagem de partilha nas redes sociais: "Estou a ouvir LinkinPark - Burn It Down na aplicação AutoRadio, na Rua Xanana Gusmão, Guarda.

Page 40: Instituto Politécnico da Guarda AutoRadio para ...bdigital.ipg.pt/dspace/bitstream/10314/1795/1/Ivo Rocha_1009255.pdf · SDK Software Development Kit - Kit de Desenvolvimento de

CAPÍTULO 5. TRABALHO REALIZADO 37

Figura 5.8: Activity Settings.

Figura 5.9: Diálogo Call Radio.

Page 41: Instituto Politécnico da Guarda AutoRadio para ...bdigital.ipg.pt/dspace/bitstream/10314/1795/1/Ivo Rocha_1009255.pdf · SDK Software Development Kit - Kit de Desenvolvimento de

CAPÍTULO 5. TRABALHO REALIZADO 38

5.2.2.7 Janela de diálogo Call Radio

Nesta janela de diálogo, representada pela �gura 5.9, o ouvinte poderá efetuarchamadas pela Internet, com recurso à API do Twilio, sem qualquer custo, para arádio, podendo assim, participar em passatempos da rádio, etc.

Na plataforma Salesforce, será possível alterar o número de telefone para o qual achamada será estabelecida.

5.2.2.8 Janela de diálogo Lyrics

Figura 5.10: Diálogo Lyrics

Nesta janela de diálogo, o ouvinte poderá consultar a letra da música em reprodução.As letras das músicas são obtidas pelo web-service da musiXmatch.

Nem sempre é possível obter todas as letras, pois podem não estar disponíveis, enem sempre a rádio está a passar músicas.

5.2.2.9 Janela de diálogo MyRecords

Nesta janela de diálogo, representada pela �gura 5.11, são apresentadas todas asgravações que o ouvinte efetuou através do botão Record. A lista de gravações �caguardada na plataforma Salesforce.

Atualmente ainda não é possível ouvir as gravações, pois não �cou decido na empresaqual seria a melhor abordagem para implementar esta funcionalidade. Se gravar osom obtido pelo stream da rádio, ou arranjar um serviço, que mediante uma música

Page 42: Instituto Politécnico da Guarda AutoRadio para ...bdigital.ipg.pt/dspace/bitstream/10314/1795/1/Ivo Rocha_1009255.pdf · SDK Software Development Kit - Kit de Desenvolvimento de

CAPÍTULO 5. TRABALHO REALIZADO 39

Figura 5.11: Diálogo MyRecords

fornecida, devolvesse o �cheiro de áudio. Esta será uma funcionalidade a terminarmais tarde.

Page 43: Instituto Politécnico da Guarda AutoRadio para ...bdigital.ipg.pt/dspace/bitstream/10314/1795/1/Ivo Rocha_1009255.pdf · SDK Software Development Kit - Kit de Desenvolvimento de

CAPÍTULO 5. TRABALHO REALIZADO 40

5.3 BackO�ce

O BackO�ce foi desenvolvido em Salesforce. Nesta plataforma são guardados todosos dados que são enviados pela aplicação. Todo o conteúdo nesta plataforma édirecionado para os administradores da rádio.

5.3.1 Base de Dados

Os dados são armazenados numa base dados desenvolvida para o efeito na plataformaSalesforce. Na �gura 5.12 é apresentado o modelo relacional da base de dados.

Figura 5.12: Base de dados - Relações entre tabelas

As ligações a vermelho, denominadas em Salesforce por Master-Detail Relationship,indicam obrigatoriedade, ou seja, para um registo existir na tabela respetiva, éobrigatório existir registos ao qual se ligarão em outras tabelas, enquanto que asazuis, Lookup Relationship, não têm obrigatoriedade.

5.3.1.1 Descrição das tabelas

Listener

Esta tabela contêm toda a informação relativa aos ouvintes: Endereço email, Id'snas redes sociais, nome, última vez que entrou na aplicação, etc.

Page 44: Instituto Politécnico da Guarda AutoRadio para ...bdigital.ipg.pt/dspace/bitstream/10314/1795/1/Ivo Rocha_1009255.pdf · SDK Software Development Kit - Kit de Desenvolvimento de

CAPÍTULO 5. TRABALHO REALIZADO 41

Music

Esta tabela contêm todas as músicas que vão passando pela rádio. Como a rádionão pode estar sempre a introduzir músicas nesta tabela, então quem introduz osdados é a aplicação. Para não serem introduzidas músicas repetidas, criou-se umtrigger que sempre que uma música é introduzida, este veri�ca se já existe ou não.

Music Listened

Aqui �cam guardadas todas as músicas ouvidas por cada ouvinte.

Record

Nesta tabela, �cam guardadas todas as músicas que um determinado ouvinte gra-vou. Assim, sempre que o ouvinte se ligue noutro dispositivo, terá sempre as suasgravações disponíveis.

Music Like

Esta é uma tabela que não é usada por esta aplicação, mas sim pela InteractiveRadio. Aqui �cam registados todos os Likes que os ouvintes submetem para asmúsicas. Este é um Like a um todo, ou seja, um like da música em geral.

RealTime Like

Nesta tabela �cam guardados todos os instantes de likes e unlikes submetidos pelaaplicação. Estes dados, por agora, não estão a ser tratados de nenhuma maneira.Fica ao dispor da rádio tomar decisões com eles. Um real time like, como já descritoanteriormente, é um like de algo que está num certo instante a passar na rádio.

Call

Aqui �cam registadas todas as chamadas efetuadas pelos ouvintes. Isto se o ouvintepermitir nas de�nições da aplicação a partilha desta informação com a rádio.

Social Activity

Nesta tabela �ca registada toda a atividade feita pelos ouvintes na aplicação, comas redes sociais Facebook e Twitter. Esta informação também só é partilhada coma rádio se o ouvinte assim o permitir.

Gps position

Esta tabela contém a informação GPS obtida pela aplicação, ou seja, onde o ou-vinte está a utilizar esta aplicação. Esta tabela será usada para criar um mapa deaudiência (apresentado mais à frente). A aplicação submete dados para esta tabelade três em três minutos, com a permissão do ouvinte.

App Settings

Nesta tabela apenas são guardadas informações relativas à aplicação, como chaves deacesso ao Facebook, Twitter, Twilio, musiXmatch, número de telefone, etc. Decidiu-se criar esta tabela, pois assim, sempre que algo tenha que ser alterado, basta ser

Page 45: Instituto Politécnico da Guarda AutoRadio para ...bdigital.ipg.pt/dspace/bitstream/10314/1795/1/Ivo Rocha_1009255.pdf · SDK Software Development Kit - Kit de Desenvolvimento de

CAPÍTULO 5. TRABALHO REALIZADO 42

alterado nesta tabela e não no source-code da aplicação, e assim, não sendo necessá-rio que os ouvintes tenham que atualizar a aplicação para obter o resultado destasalterações.

Radio

Esta é uma tabela que por agora não está a ser utilizada pela aplicação. Futu-ramente esta tabela permitirá que aplicação se torne multi-rádio, não só para aAntena3 como também para outras rádios.

Phone

Finalmente, esta tabela, irá guardar os números de telefone de cada uma das rádios,na tabela Radio.

5.3.2 Páginas de visualização de dados

Para cada tabela existe uma página que lista todo o conteúdo recente destas (outotal), e selecionando cada registo, é aberta uma outra página com os respetivosdetalhes.A �gura a seguir mostra a lista de ouvintes recentes registados na aplicação.

Figura 5.13: Salesforce - Lista de ouvintes recentes.

A �gura a seguir mostra os detalhes de um ouvinte.Todas as outras páginas são similares, usando sempre o mesmo estilo de apre-

sentação dos dados.

A �gura a seguir, apresenta o mapa de audiência, com recurso ao GoogleMaps.Nesta página é possível visualizar todos os ouvintes que estão no momento a uti-lizar a aplicação. Também é possível recuar no tempo e mostrar os ouvintes queestiveram online na última hora, no último dia, ou desde sempre. Ao clicar no pinque representa a posição do ouvinte, aparecerá um "balão"com o nome do ouvinte

Page 46: Instituto Politécnico da Guarda AutoRadio para ...bdigital.ipg.pt/dspace/bitstream/10314/1795/1/Ivo Rocha_1009255.pdf · SDK Software Development Kit - Kit de Desenvolvimento de

CAPÍTULO 5. TRABALHO REALIZADO 43

Figura 5.14: Salesforce - Detalhes de um ouvinte.

e foto. Estes dados são obtidos através do per�l de uma das redes sociais ao qual oouvinte se tenha ligado na aplicação.

5.3.3 Grá�cos

Com a criação de relatórios de dados é possível criar vários grá�cos com os dados queas tabelas contêm. Devido ao escasso tempo para a criação dos mesmos, apenas tivea possibilidade de criar dois. Um grá�co com as músicas mais ouvidas, durante umdeterminado período de tempo, como também os autores de músicas mais ouvidos.A �gura 5.16 mostra um grá�co das músicas mais ouvidas num determinado dia.É claro que, como a aplicação ainda não está disponível ao público, este grá�corepresenta muito pouco do que será quando já estiver disponível.

Muitos mais grá�cos serão possíveis de criar com os dados que existem nas tabelas,tais como por exemplo:

• Quais os países ou cidades com mais ouvintes que usam a aplicação?

• Quais as músicas que os ouvintes mais gostam ou não?

• Quais as horas do dia que têm uma maior ou menor audiência?

A plataforma Salesforce contém inúmeras funcionalidades que ainda poderiamser utilizadas para este projeto. Talvez no futuro possa tirar uma certi�cação emSalesforce e aprender tudo o que esta plataforma tem de bom para dar.

Page 47: Instituto Politécnico da Guarda AutoRadio para ...bdigital.ipg.pt/dspace/bitstream/10314/1795/1/Ivo Rocha_1009255.pdf · SDK Software Development Kit - Kit de Desenvolvimento de

CAPÍTULO 5. TRABALHO REALIZADO 44

Figura 5.15: Salesforce - Mapa de audiência.

Figura 5.16: Salesforce - Grá�co músicas mais ouvidas

Page 48: Instituto Politécnico da Guarda AutoRadio para ...bdigital.ipg.pt/dspace/bitstream/10314/1795/1/Ivo Rocha_1009255.pdf · SDK Software Development Kit - Kit de Desenvolvimento de

Capítulo 6

Conclusões e trabalho futuro

6.1 Conclusões

Durante o período do projeto em contexto de estágio, tive a oportunidade de tra-balhar com um conjunto diversi�cado de tecnologias que revolucionaram, e aindaestão a revolucionar, o mercado.

Quase todas as funcionalidades previstas no início do projeto foram implementadas,algumas mais difíceis de implementar que outras. Mas, resumidamente, estou muitosatisfeito com o que consegui implementar neste curto tempo de estágio.

As maiores di�culdades na realização deste projeto deveram-se à plataforma Sales-force, pois foi a primeira vez que trabelhei com esta, e o modelo de base de dadosé um pouco diferente, pois utiliza uma simbologia diferente do que foi lecionadonas disciplinas de Base de Dados no curso. Mas devido à ajuda e boa vontade daempresa, algumas das di�culdades foram logo superadas.

Com a realização deste projeto, aprendi a trabalhar com várias tecnologias, e prin-cipalmente o que mais me agradou foi trabalhar com o sistema operativo Android.Programar para este SO era uma das minhas ambições já há muito tempo.

6.2 Trabalho Futuro

De todos os objetivos previstos, não foi terminada a funcionalidade de gravação. Aaplicação apenas guarda o que o ouvinte pretendeu gravar mas não é possível ouvirmais tarde a gravação. Isto será uma funcionalidade a terminar mais tarde. Estafuncionalidade não foi implementada, pois não foi decidido como efetuar as grava-ções. Também não foi possível concluir a parte de navegação com os mapas, pararepresentar nele pontos críticos nas estradas, tal como, obras, sinistralidade, tráfego,etc., devido a não ter sido encontrado nenhum serviço web que disponibilizasse talinformação.

Uma futura funcionalidade que poderá ser implementada na aplicação é uma fun-cionalidade capaz de analisar as expressões faciais do condutor e gerar sinais dealarme se fossem detetados sinais de cansaço, ou mesmo captar sorrisos e cruzaressa informação com o que está atualmente a ouvir na rádio.

45

Page 49: Instituto Politécnico da Guarda AutoRadio para ...bdigital.ipg.pt/dspace/bitstream/10314/1795/1/Ivo Rocha_1009255.pdf · SDK Software Development Kit - Kit de Desenvolvimento de

CAPÍTULO 6. CONCLUSÕES E TRABALHO FUTURO 46

Também poderiam ser implementados controlos por voz, pois as tecnologias Googlejá o permitem, para efetuar ações na aplicação sem ter que tocar no ecrã do dispo-sitivo. Por exemplo, dizer simplesmente "Gosto"e seria submetido um "Like"para oque o ouvinte estaria atualmente a ouvir.

Estas e mais algumas, foram as ideias que tive para um trabalho futuro a implemen-tar na aplicação, e claro, isto poderá ser possível se eu puder continuar a trabalharem conjunto com a empresa Dom Digital.

Fora do âmbito do projeto descrito neste relatório. estive envolvido noutro projectoque consiste no desenvolvimento de uma aplicação para smartphones Android, comas mesmas e outras funcionalidade da aplicação AutoRadio, apresentada em anexo.

Page 50: Instituto Politécnico da Guarda AutoRadio para ...bdigital.ipg.pt/dspace/bitstream/10314/1795/1/Ivo Rocha_1009255.pdf · SDK Software Development Kit - Kit de Desenvolvimento de

Bibliogra�a

[1] Activity lifecycle. http://developer.android.com/reference/android/

app/Activity.html, 2012.

[2] Android tutorial - programadores do facebook. https://developers.

facebook.com/docs/mobile/android/build/, May 2012.

[3] Application crash report for android - google project hosting. http://code.

google.com/p/acra/, 2012.

[4] Faq. http://www.openhandsetalliance.com/oha_faq.html, 2012.

[5] Philosophy and goals. http://source.android.com/about/philosophy.

html, 2012.

[6] Rss. http://en.wikipedia.org/wiki/RSS, May 2012.

[7] Web service. http://en.wikipedia.org/wiki/Web_service, 2012.

[8] Sandeep Bhanott. Getting started with the mobile sdk for an-droid. http://wiki.developerforce.com/page/Getting_Started_with_

the_Mobile_SDK_for_Android, 2012.

[9] Richard Cameron. Chegamos ao �m da primeira década 100% digital. http:

//www.nvidia.com.br/object/prbr_011311.html, April 2012.

[10] Conversion. Salesforce crm. http://www.conversion.com.br/salesforce/,2012.

[11] Twilio Inc. Twilio client android sdk. http://www.twilio.com/docs/client/android, 2012.

[12] informacaoetecnologia.net. Evolução dos tablets. http://www.

informacaoetecnologia.net/2011/07/evolucao-dos-tablets.html,April 2012.

[13] musiXmatch. musixmatch lyrics api. https://developer.musixmatch.com/

documentation, 2012.

[14] Antena3 RTP. Antena3 on air feed. http://feeds.rtp.pt/EPG/rssepgradio.php?canal=antena3&dia=0, 2012.

[15] Twitter4j. Twitter4j a java library for the twitter api. http://twitter4j.org/en/index.html, 2012.

47

Page 51: Instituto Politécnico da Guarda AutoRadio para ...bdigital.ipg.pt/dspace/bitstream/10314/1795/1/Ivo Rocha_1009255.pdf · SDK Software Development Kit - Kit de Desenvolvimento de

Anexo A

Projeto Interactive Radio

Esta é uma aplicação para smartphones Android que foi desenvolvida num curtoperíodo de tempo, no qual contêm quase todas as funcionalidades que o projetoAutoRadio tem. Isto também graças ao BackO�ce em Salesforce já existente doprojeto realizado. Ainda falta muito para esta aplicação estar concluída pois iráconter muitas funcionalidades.

De seguida deixo algumas caraterísticas que a aplicação tem e terá:

• Seguir emissões em direto

• Interagir com o locutor ou programa

• Efetuar partilhas com amigos

• Avaliar ao segundo tudo o que decorre na emissão

• Votar em músicas favoritas

• Gravar playlist's com os conteúdos para o ouvinte ouvir quando e onde quiser

• Seguir as letras dos temas

• Comprar músicas ou álbuns

• De�nir alarmes para programas

• Karaoke

• e muito mais...

48

Page 52: Instituto Politécnico da Guarda AutoRadio para ...bdigital.ipg.pt/dspace/bitstream/10314/1795/1/Ivo Rocha_1009255.pdf · SDK Software Development Kit - Kit de Desenvolvimento de

ANEXO A. PROJETO INTERACTIVE RADIO 49

Figura A.1: Interactive Radio