Entrega 02 - Requisitos Funcionais + Viabilidade Técnica 1/2
SPORT TV CHAT
3. Elementos de Pesquisa
4. Mokups
6. Viabilidade Técnica
Na entrega anterior foi apontado um erro acerca do conceito do Projecto em si não ter ficado bem definido. Tal é de facto verídico, pois o grupo não tinha ainda entendido qual o caminho que iria seguir, ficando por isso dificultada a tarefa de definir e conseguir passar a mensagem do que iria ser realizado.
Apesar de não se ter conseguido ultrapassar esse obstáculo nessa fase, conseguiu-se agora, pelo que ao longo do presente documento irá ser apresentada a descrição do conceito e da ideia para a Aplicação, assim como as funcionalidades da mesma e o mapa de navegação.
Como já foi referido, o projecto integra-se no conceito de Social TV Chat, ou seja, trocar impressões socialmente acerca de programas televisivos, mas em vez de ser presencialmente, recorrer ao Chat que é "um neologismo para designar aplicações de conversação em tempo real. Esta definição inclui programas de IRC, conversação em sítio web ou programas de instante messaging."
No projecto que pretendemos realizar, o chat irá ser realizado através de terminais móveis, mais propriamente em dispositivos Android. Além de proporcionar um modo de conversação, a aplicação irá conter outras funcionalidades, explicadas e detalhadas no tópico referente às mesmas, que poderão tornar o uso da aplicação mais divertido, que é um dos objectivos a atingir.
Como o assunto acerca de televisão pode abarcar vários temas, uma vez que existem programas de diversos géneros, como séries, reality shows, desporto e afins, decidimos numa primeira fase dirigirmo-nos a um público-alvo mais restrito, com a finalidade de poder realizar uma aplicação que preencha as medidas desse género em concreto. Surgiu então a ideia de realizar uma aplicação acerca de desporto, e como nesta área existe uma vastidão de desportos decidimos, ainda, reduzir mais o público-alvo e passar de amantes de desporto para amantes de Futebol!
Logo, a aplicação a desenvolver, cujo nome tivemos forçosamente que mudar de TV Chat para SPORT TV CHAT, irá centrar-se no Futebol português e irá proporcionar aos utilizadores uma panóplia de recursos informativos, além de funcionalidades que tornarão o uso da aplicação útil e ao mesmo divertido.
Para esta fase do projecto a pesquisa centrou-me primeiramente em termos de programas e linguagens que teríamos que utilizar, mas uma vez que modificámos o conceito e o tema do trabalho tivemos que pesquisar um pouco acerca do assunto em questão.
Como tal encontrámos uma aplicação relacionada com o que pretendemos realizar, esta aplicação encontra-se no Android Market e é a única a nível nacional, pelo menos que temos conhecimento.
A aplicação Sapo Futebol tem muitas funcionalidades que também pretendemos implementar na nossa aplicação, que serão enunciadas mais adiante, pelo que consideramos uma aplicação a estudar e experimentar com tempo, visto que é a nossa concorrente directa.
Free application category: Sports, APK download size: 1.43 MB, 383 people rated Futebol version 1.6.6 for Android smartphones so far with an average rating of 3.71!
Acompanhe todos os momentos da Primeira Liga com o SAPO Futebol.
De uma forma rápida vai poder consultar todas as notícias e calendários, aceder às classificações e estatísticas das equipas, assistir aos jogos em directo, ver fotos, vídeos e muito mais!
Com recurso à ferramenta Balsamiq Mokup criaram-se vários mokups para ter uma ideia de como poderíamos organizar visualmente a aplicação e tamém para auxiliar na definição dos requisitos funcionais.
Cruzando os requisitos funcionais que estavam previamente previstos para a aplicação TV Chat com o novo tema, surgiram alguns requisitos novos, mas ainda se aproveitaram alguns dos que já estavam pensados.
Os requisitos funcionais abaixo listados, especificam as acções que a nossa aplicação deverá ser capaz de executar. Para facilitar a compreensão os requisitos funcionais são apresentados como uma espécie de mapa de navegação.
1 - Login/Logout;
1.1 – Username;
1.2 – Password;
1.3 - Esqueceu-se da password?;
1.3.1 - Pergunta Secreta;
1.3.2 - Confirmação via email;
1.3.2.1 - Gerar nova password;
1.3.2.2 - Links para inserir nova password;
2 - Sign-Up;
2.1 - Criar novo registo;
2.1.1 - Rede Social (ligação com a API do facebook);
2.1.2 - Formulário de registo: username, password, nome, data de nascimento, escolha do clube;
2.1.3 - Validação do formulário;
2.1.4 - Email de confirmação do registo;
3 - Sistema de ajuda;
3.1 - Overlay com legendas;
3.2 – Hints;
4 - Perfil de utilizador;
4.1 - Sincronização com perfil do facebook;
4.2 - Upload de fotos;
4.3 - Formulário de actualização de informação pessoal;
5 – Pesquisa;
5.1 - Pesquisar clubes;
5.2 - Pesquisar perfis de amigos;
6 – Os meus amigos;
6.1 - Visualizar perfis de amigos;
6.2 - Visualizar estado Online/Offline dos amigos;
6.3 - Adicionar/remover amigos;
7 – Jogos em Directo;
7.1 - Resumo dos momentos chave do jogo;
7.2 - Sistema de chat;
7.2.1 – Possibilidade de publicar posts, género wall do Facebook tendo a opção de publicar ou não no facebook (interacção durante o jogo);
7.2.2 – "Abanómetro" - Aproveitando o acelerómetro do telemóvel, o utilizador pode mostrar a sua satisfação quanto ao desenrolar do jogo. Ao abanar o telemóvel aparecerá uma mensagem na wall indicando que o utilizador está eufórico;
7.2.3 – "Grito de Golo!" - Aproveitando o microfone, o utilizador grita "Golo" e aparece uma mensagem visual no ecrã (possibilidade de utilizar as informações deste ponto e do anterior para efectuar comparações entre utilizadores e avaliar "quem mais grita" e "quem mais abana");
8 – Calendário de jogos;
8.1 – Possibilidade visualizar o calendário de jogos da liga portuguesa;
8.2 – Capacidade de filtrar jogos de acordo com as orientações dadas por parte do utilizador, ao nível da sua preferência clubística, data do jogo, ou jogos que tenham transmissão televisiva;
8.3. – Disponibilização de informação relativa às transmissões televisivas dos jogos;
9 – Os meus troféus
9.1 – Secção da aplicação onde o utilizador pode consultar a sua colecção de troféus;
9.2 - O utilizador é recompensado com troféus por realizar pequenas tarefas a realizar na aplicação como por exemplo atingir um certo número de posts, utilizar o "abanómetro"/"gritos de golo";
10 – Sistema de reminders
10.1 – Sistema que emite um alerta para o dispositivo móvel do utilizador quando o seu clube vai ter um jogo que vai ser transmitido na tv;
11 – Definições
11.1 – Área de edição das informações pessoais (nome, email, password, preferência clubística, etc);
11.2 - Opção para ligar ou desligar o acelerómetro e o microfone, e consequentemente as opções de "abanómetro" e "gritos de golo";
11.3 – Controlo de volume da aplicação;
Desenvolvimento da App para Android.
Android é um conjunto de software para dispositivos móveis que inclui um sistema operativo e aplicações-chave.
Após alguma pesquisa rapidamente se conclui que para começar a desenvolver para Android é prudente utilizar o Android SDK (software development kit) que contém ferramentes e API's (application programming interface) fundamentais. A linguagem de programação utilizada é JAVA.
Neste diagrama podemos observar a estrutura geral do sistema Android. Para developers, o que de mais importante se pode retirar é o facto de termos à disposição uma plataforma open-source muito rica e com enorme potencial. É-nos permitido aproveitar as vantagens que o hardware do dispositivo em si oferece bem como total acesso às API's da Framework.
O facto da programação ser em Java, linguagem com a qual não estamos familiarizados é um entrave enorme à viabilidade técnica do projecto em si. O software normalmente utilizado para desenvolvimento é o Eclipse.
Esta aplicação, em conjunto com o Android SDK e um plugin (ADT Plugin) permite programar uma App para Android.
Como podemos observar, a interface é limpa e agradável para trabalhar. O sistema de ajuda é excelente e a notificação de erros também. Esta seria certamente a plataforma a utilizar para programar, não fosse a obrigatoriedade do próprio Android que utiliza Java. Visto que o tempo disponível para o desenvolvimento do projecto é curto, tentámos encontrar soluções com linguagens de programação que nos fossem mais familiares. Tentámos então encontrar programas que nos permitissem desenvolver a App como se de um website se tratasse, recorrendo a linguagens como Html, Css, Php, MySQL e fundamentalmente, JavaScript.
O software que analisamos de seguidapermite-nos desenvolver os requisitos funcionais da aplicação em si, o sistema de ajuda, perfis de utilizadores, pesquisa, os meus amigos, jogos em directo, calendário de jogos e troféus.
PhoneGap é uma ferramenta de desenvolvimento open-source que nos permite construir apps usando JavaScript. Tanto Android como iPhone e Blackberry são suportados. Oferece-nos uma espécie de ponte entre o desenvolvimento para Android comum e as nossas capacidades de programação correntes.
Usando os ficheiros fornecidos, integramo-los com um projecto em Android e facilmente estamos a programar em Html, como é representado na imagem abaixo.
Esta ferramenta está muito bem documentada, oferecendo uma wiki e um guia de funcionalidades que nos oferece maneiras para utilizar desde o acelerómetro, compasso até métodos de alojamento do dispositivo (sd card, etc).
Algumas funcionalidades são usar html5 e css3, javascript e é compatível com as seguintes funções nativas do dispositivo Android:
Acelerómetro, câmara, compasso, ficheiros, localização geográfica, gravação de áudio, notificações de som e vibração.
Parece-nos uma solução muito forte pois aproveita as funcionalidades do Eclipse enquanto nos permite utilizar programação para Web.
Esta aplicação faz o mesmo que o PhoneGap, mas tem uma interface própria, obrigando-nos apenas a usarmos o nosso próprio editor de texto para produzir código. A instalação e criação de projecto é complicada na primeira vez mas com alguns guias conseguimos que ele funcionasse e testámos mesmo um pequeno exemplo de uma App.
Esta aplicação tem uma página de comunidade muito completa, e oferece muitos exemplos e comandos para o aproveitamento das funções nativas do dispositivo. Em relação ao PhoneGap parece ter maior número de utilizadores e consequentemente maior conteúdo disponível para pesquisa. É utilizada uma API Titanium Mobile que nos oferece um leque de funções extensa como por exemplo um login para o Facebook.É também fornecido uma App (KitchenSink) que é uma extensa lista de funcionalidades com exemplos do que é possível desenvolver.
Requisitos funcionais que utilizam outro tipo de recurso/tecnologia
Os reminders serão possíveis utilizando um sistema de envio de dados do lado do servidor para a App no telemóvel. Isto permite-nos que quando o utilizador tem a aplicação a correr no background, seja enviada informação que o lembre de jogos que vão decorrer da sua equipa de eleição. Nos sistemas da Apple existe o serviço Push Notifications, mas neste momento a Google lançou um serviço do mesmo género, o Cloud to Device Messaging (C2DM). Este serviço ainda não está universalmente disponível mas depois de um registo é possível já utilizá-lo.
Para o requisito funcional de conectar ao Facebook para fins de login, logout, acesso aos amigos e filtros de preferências de clube de futebol, existe a Facebook API que cobre as nossas necessidades.
Para os horários a que os jogos vão ser transmitidos vamos utilizar o EPG (Electronic Programming Guide) da Meo. É, aparentemente o único Web service que nos permite aceder à programação electrónica dos canais transmitidos em Portugal.
O login, logout, signup, troféus, ratings e chat wall obrigam à utilização de uma base de dados. A integração da mesma no desenvolvimento utilizando o Titanium Developer é explicada neste website através de código com variáveis que utilizan JSON.
O Titanium Developer tem também um método directo que oferece a possibilidade de empacotar e distribuir a App para o Android Marketplace
Tentámos ainda analisar outra ferramenta, Rhomobile, mas revelou-se muito difícil testá-la devido a problemas na instalação e configurações. No entanto o apanhado geral é que esta funciona da mesma forma do que o PhoneGap, mas suporta todos os OS para móveis existentes neste momento, suporte para Ruby e um serviço de desenvolvimento em Web, RhoHub. Utilizam tags Html específicas para aceder às funções do dispositivo ao contrário dos anteriores que utilizavam JavaScript para o efeito.
Depois da análise das aplicações a indecisão entre o PhoneGap e o Titanium continua presente. No entanto pesadas as características dos dois o caminho para já parece ser utilizar o Titanium Developer. Foi a aplicação com que nos familiarizámos mais rapidamente e que, apesar de complexa, nos permitiu começar a desenvolver com maior facilidade. Os problemas na configuração, como não detectar Java ou o Android SDK no sistema foram ultrapassadas, e posto de lado esses entraves, é de fácil compreensão num primeiro contacto, ao contrário do PhoneGap. No entanto, os dois estão muito bem documentados e o PhoneGap obriga-nos a trabalhar no Eclipse, que é o software de eleição para desenvolvimento Android. O resto do apanhado das tecnologias e métodos para desenvolvimento dos requisitos funcionais parte do principio que escolhemos o Titanium Developer como Software base para o desenvolvimento da App, no entanto, gostaríamos de deixar em aberto a possibilidade do PhoneGap se tornar útil no nosso projecto. A integração com base de dados MySQL e a programação server-side ainda não está totalmente clara, mas esperamos quando for necessário meter verdadeiramente as "mãos à obra" conseguir clarificar a questão. Para obter os dados das classificações e resultados, não encontrámos qualquer API que nos fornecesse a informação, de modo que nos falta uma solução para o problema.