1. Desenvolvimento de Aplicações para Ambientes Móveis 2010 / 2011
Mestrado em Engenharia Informática
Quinta-feira, 2 de Junho de 2011
Professor: Carlos Serrão
Autor: Vasco Manuel Antunes da Silva Nº 11782
2. Desenvolvimento de Aplicações em Ambientes Móveis
Índice de conteúdos
1 Introdução.........................................................................................................................................3
2 Tema da aplicação.............................................................................................................................4
2.1 Tema..........................................................................................................................................4
2.2 Razão da escolha do tema.........................................................................................................4
3 Levantamento de requisitos..............................................................................................................5
3.1 Requisitos funcionais................................................................................................................5
3.1.1 Gestão de pedidos.............................................................................................................5
3.1.2 Gestão de pagamentos.......................................................................................................5
3.1.3 Gestão de abertura e fecho de mesa..................................................................................5
3.1.4 Gestão de produtos consumidos por mesa........................................................................5
3.1.5 Gestão de preços...............................................................................................................5
3.1.6 Flexibilidade da configuração da aplicação......................................................................5
3.2 Requisitos não funcionais.........................................................................................................6
3.2.1 Acesso simultâneo ............................................................................................................6
3.2.2 Actualização de informação..............................................................................................6
3.2.3 Acesso à rede.....................................................................................................................6
4 Especificação detalhada da solução..................................................................................................7
4.1 Nome da aplicação....................................................................................................................7
4.2 Arquitectura..............................................................................................................................7
4.3 Modelo de dados.......................................................................................................................8
4.4 Modelos de Implementação da infraestrutura...........................................................................9
4.4.1 Modelo tradicional............................................................................................................9
4.4.2 Modelo Cloud SaaS..........................................................................................................9
5 Manual de Instalação......................................................................................................................10
5.1 Instalação da Aplicação AndRest – Client-side......................................................................10
5.1.1 Instalação off-line............................................................................................................10
5.1.2 Instalação on-line utilizando a aplicação aptoide............................................................10
5.2 Instalação da Aplicação AndRest – Server-side.....................................................................10
5.2.1 Pré-requisitos...................................................................................................................11
5.2.2 Criação da base de dados................................................................................................11
5.2.3 Instalação e configuração dos Web-services...................................................................11
6 Manual de Utilização......................................................................................................................12
6.1 Primeira utilização..................................................................................................................12
6.2 Ecrã principal da aplicação.....................................................................................................13
6.3 Ecrã Add Product....................................................................................................................14
6.4 Ecrã Pay.................................................................................................................................15
7 Conclusões......................................................................................................................................16
2
3. Desenvolvimento de Aplicações em Ambientes Móveis
1 Introdução
Este trabalho enquadra-se no âmbito da cadeira de Desenvolvimento de Aplicações em Ambientes
Móveis.
Esta tem trabalho tem como objectivo dotar os alunos da cadeira de conhecimentos em arquitecturas
e tecnologias em ambientes aplicacionais móveis.
Das várias tecnologias possíveis para a realização deste trabalho, a tecnologia escolhida foi
Android, utilizando uma arquitectura cliente servidor, utilizando web-services como comunicação.
A aplicação desenvolvida, trata-se de um sistema de POS, direccionado ao mercado da restauração
3
4. Desenvolvimento de Aplicações em Ambientes Móveis
2 Tema da aplicação
2.1 Tema
A aplicação desenvolvida consiste num sistema POS (point of sale) direccionado ao mercado de
bares e restaurantes. Esta aplicação terá as funcionalidades simples de adição de produtos às mesas,
e a sua respectiva liquidação.
2.2 Razão da escolha do tema
Nos dias que decorrem, cada vez mais estão presentes em bares e restaurantes, sistemas de POS.
Estes, por norma, são da marca Winrest . Este são compostos por Hardware próprio e dispendioso.
Com este trabalho, pretendi desenvolver um pequeno protótipo do que pode ser uma aplicação
alternativa à referida acima. O Factor de diferenciação da aplicação desenvolvida, é a possibilidade
da execução da mesma em terminais móveis, que corram a plataforma Android, e o facto da
aplicação permitir toda a informação num servidor central.
Na perspectiva de negócio, este servidor, poderá ser um servidor na Cloud, sendo assim o serviço
oferecido aos potenciais clientes no modelo SaaS, ou, conforme o modelo tradicional, a instalação
de um servidor local nas instalações do Cliente.
Assim, numa eventual situação em que o cliente já possuísse os terminais Android necessários, e
optasse por utilizar a aplicação no modelo SaaS, o custo inicial de implementação da solução, seria
mínimo.
4
5. Desenvolvimento de Aplicações em Ambientes Móveis
3 Levantamento de requisitos
A aplicação AndRest deverá respeitar os seguintes requisitos funcionais e não funcionais descritos
de seguida.
3.1 Requisitos funcionais
3.1.1 Gestão de pedidos
A aplicação deverá permitir a adição de produtos da ementa a determinada mesa. Caso ainda não
hajam quaisquer produtos associados a determinada mesa, a aplicação deverá “Abrir a mesa” (ver
ponto 3.1.3).
3.1.2 Gestão de pagamentos
A aplicação deverá permitir o pagamento dos itens associados a determinada mesa. Este pagamento
deverá poder ser total, ou parcial, havendo a possibilidade de selecção dos elementos a serem pagos.
Após o pagamento, os elementos deverão sair da respectiva conta. Quando todos os elementos
forem pagos, a aplicação deverá assim “Fechar a mesa” (ver ponto 3.1.3).
3.1.3 Gestão de abertura e fecho de mesa
As acções de abertura e fecho de mesa, consistem em guardar a data/hora da abertura ou fecho da
mesa, respectivamente. Esta acção deverá ser gerida de forma “automática” pela aplicação. Através
deste requisito, poderão ser efectuadas análises de afluência ao estabelecimento.
3.1.4 Gestão de produtos consumidos por mesa
A aplicação deverá guardar o historial de produtos consumidos por cada mesa, sendo este historial
associado à hora de abertura e fecho da mesa.
3.1.5 Gestão de preços
Deverá ser possível a introdução de dois preços por cada produto. O preço a aplicar ao produto
deverá variar consoante a hora de aquisição. Até determinada hora, será aplicado o Preço1, após
essa hora, será aplicado o Preço2. A aplicação do respectivo preço, deverá ser gerido de forma
“automática” pela aplicação. A hora deverá poder ser configurada na aplicação.
3.1.6 Flexibilidade da configuração da aplicação
A aplicação deverá ter o máximo de configurações possíveis, permitindo assim a máxima adaptação
possível às necessidades dos clientes. Assim, a aplicação deverá permitir a configuração dos
seguintes parâmetros:
• Número de mesas existente no estabelecimento;
• Hora da mudança da aplicação do preço (preço1/preço2);
5
6. Desenvolvimento de Aplicações em Ambientes Móveis
• Gestão dos produtos (descrição, preço1, preço2, categoria);
• etc.
Dos requisitos acima definidos, apenas os requisitos R3.1.1 Gestão de pedidos e R3.1.2 Gestão de
pagamentos, deverão ser efectuados nos terminais móveis Android. Os restantes requisitos deverão
ser assegurados através do back-office da aplicação em plataforma WEB.
3.2 Requisitos não funcionais
3.2.1 Acesso simultâneo
O sistema deverá permitir a utilização simultânea de diversos terminais móveis.
3.2.2 Actualização de informação
A informação deverá estar sempre actualizada para que possa ser devidamente utilizada pelos
terminais em acessos concorrentes.
3.2.3 Acesso à rede
Será necessária a ligação entre os terminais móveis e o servidor central da aplicação. Assim, caso
toda a infraestrutura seja instalada localmente, será necessária apenas ligação local, caso a
instalação seja configurada de forma a correr na cloud, será necessária ligação à internet.
6
7. Desenvolvimento de Aplicações em Ambientes Móveis
4 Especificação detalhada da solução
4.1 Nome da aplicação
O nome da aplicação a desenvolver será AndRest. Este nome resulta do nome da plataforma em
que será desenvolvido(Android), em conjunto com o target da mesma – o mercado da Restauração.
4.2 Arquitectura
A arquitectura implementada nesta aplicação, será uma arquitectura de Cliente-Servidor.
Contextualizando a arquitectura a implementar com o modelo Model-View-Controller, os
componentes de Model e Controller serão implementados no servidor, ficando apenas a componente
de View no lado dos terminais móveis.
View Controller Model
Terminais Android Servidor
As tecnologias utilizadas nesta arquitectura serão:
• Na componente do servidor: MySql para a gestão de Base de dados, e PHP para o
desenvolvimento da camada de controlo de dados e de disponibilização de Web-Services;
• Na componente de Cliente será utilizado o SDK Android para a concepção da aplicação;
• A comunicação entre estes será feita através de Web-services standard utilizando o formato
Rest + Json.
O diagrama seguinte, ilustra as tecnologia a utilizar em cada uma das componentes:
Web-services
<Rest> + <Json>
Client Servidor
7
8. Desenvolvimento de Aplicações em Ambientes Móveis
4.3 Modelo de dados
O seguinte diagrama ilustra o modelo de dados a ser implementdo.
Tables
Consumed Id int
Id int
TableID int ConsumedItems
OpenDate int
CloseDate decimal Id int
Total boolean ConsumedID int
ProductID int
Price decimal
Pay boolean
Products
Id int
Category
Price1 decimal
Price2 decimal
Id int
Description text
Description text
CategoryID int
Do diagrama acima, salienta-se as seguintes particularidades:
• Cada entrada na tabela Consumed representa uma abertura de mesa;
• Cada entrada na tabela ConsumedItems representa o pedido de um determinado produto
para uma mesa;
• O campo Price na tabela ConsumedItems, permite a inserção de diferentes preços, consoante
a hora a que o produto foi inserido (Requisito referido no ponto 3.1.5).
8
9. Desenvolvimento de Aplicações em Ambientes Móveis
4.4 Modelos de Implementação da infraestrutura
Em termos de infraestrutura e modelo de negócio, esta aplicação poderá ser instalada segundo o
modelo tradicional, em que todos os componentes ficam nas instalações do cliente, ou num modelo
SaaS (Software as a service), em que apenas o cliente apenas necessitaria dos terminais móveis
Android, e toda a componente de servidor, seria disponibilizada na Cloud.
4.4.1 Modelo tradicional
AndRest Client AndRest Server
Instalações do Cliente
No modelo tradicional, é o cliente adquire toda a infraestrutura.
4.4.2 Modelo Cloud SaaS
AndRest Client AndRest Server
Instalações do Cliente AndRest Services Provider
Neste modelo de SaaS toda a infraestrutura de servidor é gerida por uma entidade responsável.
AndRest Services Provider. Esta entidade cobraria ao cliente, na modalidade “pay-as-you-use”.
9
10. Desenvolvimento de Aplicações em Ambientes Móveis
5 Manual de Instalação
Neste capítulo são descritas as instruções de instalação das componentes client-side e server-side.
5.1 Instalação da Aplicação AndRest – Client-side
A componente client-side, poderá ser instalada de duas formas. Poderá ser instalada de forma off-
line, instalando o ficheiro apk entregue no dispositivo Android, através do aplicativo adb,
distribuído no SDK Android, ou de forma on-line recorrendo à aplicação aptoide.
5.1.1 Instalação off-line
Para instalar a aplicação de forma offline, execute o seguinte comando, após ter o dispositivo
Android devidamente conectado ao computador:
./adb install $deliverable/andrest/Andrest.apk
nota: a variável $deliverable deverá ser substituída pelo caminho para o entregável do presente
trabalho.
5.1.2 Instalação on-line utilizando a aplicação aptoide
Para instalar a aplicação de forma offline poderá utilizar a aplicação aptoide. Esta é uma aplicação
para download de aplicações, que permite ao utilizador configurar a lista de repositórios a utilizar.
Esta aplicação poderá ser instalada a partir do market android ou a partir do URL http://aptoide.com
Para a aplicação AndRest, estar disponível para download, teve que ser anteriormente submetida
para a plataforma bazaar. A aplicação AndRest no bazaar, poderá ser vista no URL:
http://vsilva.bazaarandroid.com/app/pt.iscte.daam/1/12142
Os passos de instalação a partir do Aptoide são:
• Abrir a aplicação Aptoide;
• Clicar no botão menu e escolher a opção Manage Repo do menu de contexto;
• Adicionar o repositório http://vsilva.bazaarandroid.com
• Procurar a aplicação AndRest e selecionar para instalação;
• De seguida, o download e a instalação serão feitos automaticamente.
5.2 Instalação da Aplicação AndRest – Server-side
A componente Server-side não é necessária, caso se pretenda executar a aplicação com ligação à
cloud. Esta componente apenas é necessária, caso se pretenda instalar toda a infraestrutura Andrest
10
11. Desenvolvimento de Aplicações em Ambientes Móveis
5.2.1 Pré-requisitos
Os seguintes componentes são pré-requisitos desta componente:
• Software web-server com interpretador de PHP activo;
• MySql;
É aconselhada para a instalação dos pré-requisitos acima, a instalação do meta pacote LAMP(Linux
Apache MySql PHP) ou WAMP(Windows Apache Mysql PHP), consoante o sistema operativo a ser
utilizado.
5.2.2 Criação da base de dados
Criar uma base de dados em MySql com o nome “Andrest”.
De seguida, selecionar a base de dados criada anteriormente e correr o script de SQL:
mysql -u root -p andrest <<
$deliverable/andrest/serverside/database/andrest.sql
nota: a variável $deliverable deverá ser substituída pelo caminho para o entregável do presente
trabalho.
5.2.3 Instalação e configuração dos Web-services
Copiar a directoria deliverable/andrest/serverside/webservices/andrest para a path WWWRoot/
cp -r $deliverable/andrest/serverside/webservices/andrest
/var/www/
nota1: a variável $deliverable deverá ser substituída pelo caminho para o entregável do presente
trabalho.
nota2: o caminho /var/www deverá ser substituído pelo devido caminho WWWRoot do servidor
em causa.
Após a cópia dos ficheiros, será necessário configurar os valores de acesso à Base de dados. Para
isso é necessário abrir o ficheiro em /WWWRoot/andrest/connectionDB.php e editar os valores:
$dbuser = 'definir o username de acesso à BD';
$dbpass = 'definir o password de acesso à BD';
11
12. Desenvolvimento de Aplicações em Ambientes Móveis
6 Manual de Utilização
Neste capítulo são descritas as instruções de utilização da componente client-side.
6.1 Primeira utilização
Após a instalação da aplicação, serão necessários definir alguns parâmetros da aplicação. Estes
parâmetros serão configurados na primeira utilização. Assim o utilizador irá ver o seguinte
mensagem na primeira utilização:
O utilizador deverá clicar sobre Yes, para abrir o ecrã de configurações:
Neste ecrã o utilizador deverá configurar o endereço do servidor e o caminho relativo para os web-
services do mesmo. Os valores por omissão neste ecrã, permitem que a aplicação funcione
imediatamente funcionando no modo Cloud.
Caso o utilizador pretenda utilizar um servidor próprio, é neste menu que deve definir o endereço
desse mesmo servidor. Este menu pode ser acedido também, clicando no botão opções no menu
inicial da aplicação.
12
13. Desenvolvimento de Aplicações em Ambientes Móveis
Após o utilizador definir os valores pretendidos, deverá fazer SAVE, e irá de seguida para o menu
principal da aplicação.
6.2 Ecrã principal da aplicação
O primeiro ecrã a ser apresentado ao utilizador, assim que este abre a aplicação é o ecrã com a lista
das mesas disponíveis (o número de mesas apresentadas, depende da configuração do servidor):
É neste ecrã que o utilizador clica na mesa em que pretende intervir, e irá surgir o seguinte ecrã:
Neste menu o utilizador deverá escolher a opção “Add Product” ou “Pay”. (A opção View Details
não foi implementada. Esta iria apresentar ao utilizador os dados da mesa, nomeadamente data de
abertura de mesa, ou data de fecho, caso essa estivesse fechada.
13
14. Desenvolvimento de Aplicações em Ambientes Móveis
6.3 Ecrã Add Product
Neste ecrã o utilizador terá a possibilidade de adicionar produtos à respectiva mesa, anteriormente
seleccionada.
Os produtos estão divididos em quatro categorias: Snack, Drink, Food e Desert. O utilizador deverá
selecionar a categoria, e de seguida o produto.
O interface permite adicionar elemenentos clicando no botão com o nome do elemento a adicionar,
e removê-los clicando no respectivo botão à direita “REM”. O número de itens já selecionados
aparece entre parêntesis antes do nome do produto. Após o pedido estar finalizado, basta clicar no
botão do topo do ecrã “Confirm Products”, e a aplicação voltará ao ecrã principal.
14
15. Desenvolvimento de Aplicações em Ambientes Móveis
6.4 Ecrã Pay
Neste ecrã o utilizador poderá pagar os produtos anteriormente adquiridos, liquidando assim a conta
da mesa.
Neste ecrã o utilizador poderá seleccionar os produtos a serem pagos, individualmente. No início do
ecrã, aprace o valor total de itens por pagar da mesa, e o total dos itens seleccionados. Caso o
utilizador pretenda seleccionar todos itens, basta fazer um “clique longo” sobre o botão “Pay
Selected Items” e todos os itens serão selecionados.
Após o utilizador seleccionar os itens a serem pagos, deverá clicar sobre “Pay Selected Items”. Este
menu, exige a confirmação do utilizador:
Após esta confirmação, caso ainda existam itens a serem pagos, a aplicação ficará no ecrã de
pagamentos, caso contrário, irá voltará para o ecrã principal.
15
16. Desenvolvimento de Aplicações em Ambientes Móveis
7 Conclusões
De um modo geral, os objectivos, tanto da cadeira, como do presente trabalho foram cumpridos.
Com esta cadeira, adquiri novos conhecimentos ao nível da tecnologia Android que me permitirão
de realizar o presente trabalho.
A aplicação, cumpre os objectivos inicialmente definidos, e foi realmente interessante e motivante o
desenvolvimento desta. Com o decorrer da aplicação, foram surgindo novas ideias, que com
algumas melhorias, poderão até fazer deste “pequeno” projecto académico, um possível negócio.
Claro que para isso será necessário bastante trabalho, novas funcionalidades e uma melhori de
backoffice, mas como proof-of-concept, a aplicação superou todas as dificuldades e demonstra um
bom desempenho.
16