Você está na página 1de 50

{Facebook.com} {Facebook.

com} Farejador de Plgio - Registrado para


MARCO ANTONIO GOMES
UNISA UNIVERSIDADE DE SANTO AMARO
CURSO BACHARELADO EM SISTEMAS DE INFORMAO


CHRISTIAN SOUSA
LCIO LIMA
MARCELO FELIPE




APLICATIVO ANDROID BOHEMIAN






So Paulo
2013



CHRISTIAN SOUSA
LCIO LIMA
MARCELO FELIPE





APLICATIVO ANDROID BOHEMIAN


Monografia apresentada para obteno do
ttulo de Bacharel em Sistemas de Informao a
Curso de Sistemas de Informao da Universidade
de Santo Amaro UNISA sob orientao da
(Eugnio Akihiro Nassu).




So Paulo
2013



















CHRISTIAN SOUSA
LCIO LIMA
MARCELO FELIPE


APLICATIVO ANDROID BOHEMIAN

Monografia apresentada para obteno do ttulo de Bacharel em
_______________________ao Curso de __________________________da
Universidade de Santo Amaro UNISA sob orientao da rea de
Concentrao__________________________.

Data de Aprovao: ____/____/____

BANCA EXAMINADORA


_____________________________________________________________________________
______
(nome do orientador e Titulao)

_____________________________________________________________________________
______
(nome do professor e Titulao)

CONCEITO FINAL: _____________________________________________________



DEDICATRIA


Trabalho dedicado a todos os nossos familiares, esposas e filhos, que acreditam em
nossos potenciais, nos motivando a ir sempre alm de todas as expectativas, e nos
tornarmos pessoas realizadas, informadas e sempre dispostas a fazer o melhor, buscando
sempre os caminhos corretos para o nosso desenvolvimento que tambm ser o melhor
para eles, sempre seguindo os nossos coraes orientados pela fora de Deus.




















AGRADECIMENTOS
A todos os professores, que nos apoiaram para que hoje possamos apresentar
esse trabalho muito importante, feito atravs de muitas pesquisas, estudos e a ajuda
diretamente deles tirando as nossas dvidas, aconselhando, mostrando sempre os
melhores caminhos a serem seguidos para o nosso desenvolvimento pessoal e
acadmico.


































A maior inveno do mundo no a minha tecnologia!
a morte! pois atravs dela,
o velho sempre dar lugar para o novo!
Steve Jobs








RESUMO
Com o grande avano da tecnologia, a cada dia temos novidades nesse vasto
mercado, uma das novidades so os aplicativos para dispositivos mveis, que a cada dia
ganham mais funcionalidades teis para o usurio, aplicativos so desenvolvidos e
disponibilizados a todo o momento, e para todas as reas de conhecimento, como sade,
diverso, informao, e muito mais. Com base nessa situao desenvolvemos um
prottipo de aplicativo na plataforma Android com o nome Bohemian, a fim de ajudar
usurios que tenham necessidades especficas, nosso aplicativo simula uma comanda,
mas em tempo real, voc no faz o pedido diretamente ao garom, voc usa o Bohemian
para fazer pedido, o garom apenas serve, evitando assim que seja marcado em sua
comanda um item que voc no solicitou, para quem frequenta bares muito comum
acontecer e pode causar constrangimentos. Usaremos a tecnologia Java e Android para
desenvolver nosso aplicativo que simples, porm muito objetivo na tarefa que executa.

Palavras-chaves: Android, Bohemian, Java.












ABSTRACT
With breakthrough technology, we have news every day from this vast market,
one of those are the mobile device applications, that every day earn more useful
features for the uses, applications are developed and made available every moment, and
for all areas of knowledge, like health, entertainment, information, and a lot more.
Based on this situation we developed an Android Plataforms prototype application
called Bohemian, to help users that have specific needs, our application simulates an
order, but in real time, you dont do the order directly to the waiter, you use the
Bohemian to make that order, and the waiter only deliveries that request, avoiding some
item that you did not asked for it, to be marked on your order, for those who uses to
frequent bars it is specially likely to occur and can cause embarrassment . We will use
Java and Androids technology to develop our application that it is simple, but very
purpose on the tasks that executes.
Keywords: Android, Bohemian, Java













LISTA DE FIGURAS

FIGURA 1 Diagrama de Classe do software...................................pg 21
FIGURA 2 Tela Principal................................................................pg 25
FIGURA 3 Tela de Instrues..........................................................pg 26
FIGURA 4 Tela Pedidos..................................................................pg 27
FIGURA 5 Tela Pedidos com erro...................................................pg 28
FIGURA 6 Tela Pedidos preenchida................................................pg 29
FIGURA 7 Tela Listar enviados.......................................................pg 30
FIGURA 8 Tela Listar Pedidos........................................................pg 31
FIGURA 9 Tela Total.......................................................................pg 32
FIGURA 10 Sqlite............................................................................pg 34











Sumrio
Introduo .............................................................................................. 13
Organizao do Trabalho ...................................................................... 13
1 - Histria da Programao .................................................................. 14
1.2 Histria do Java ............................................................................... 14
1.3 Histria do Android .......................................................................... 15
O que Android? ................................................................................... 15
2 - Vantagens do Android ...................................................................... 17
2.1 Cdigo aberto (Open Source) .......................................................... 18
3 - Caso de Uso Bohemian (Use Case) ................................................. 19
3.1 Principais objetivos do Caso de Uso................................................ 19
3.2 Componentes do caso de Uso ......................................................... 19
3.3 - Diagrama de Classes .................................................................... 21
4 - Anlises de Requisitos ..................................................................... 22
4.1 Requisitos do projeto ....................................................................... 22
4.2 Requisitos Funcionais ...................................................................... 22
4.3 Requisitos no funcionais ................................................................ 22
4.4 Requisitos do produto ...................................................................... 22
5 - Anlise dos requisitos Bohemian ...................................................... 23
5.1 Requisitos do projeto Bohemian ...................................................... 23
5.2 Requisitos funcionais do Bohemian ................................................. 23
5.3 Requisitos no funcionais do Bohemian .......................................... 23
5.4 Requisitos do produto Bohemian ..................................................... 23
6 - Desenvolvimento do Bohemian ........................................................ 24
6.1 Tela Principal ................................................................................... 25
6.2 Tela Instrues ................................................................................ 26


6.3 Tela de Pedidos ............................................................................... 26
6.4 Erro Tela Pedidos ............................................................................ 27
6.5 Tela Pedidos preenchida ................................................................. 28
6.7 Pedidos Enviados ............................................................................ 30
6.8 Tela Listar ........................................................................................ 31
6.9 Tela Total ......................................................................................... 32
7 - Desenvolvimento do software ........................................................... 33
7.1 Banco de dados ............................................................................... 33
7.2 Tela de criao de bancos de dados. .............................................. 34
7.3 Android/Java .................................................................................... 35
7.4 Styles ............................................................................................... 36
7.5 Tela principal ................................................................................... 36
7.6 Tela pedidos .................................................................................... 36
7.7 Tela DB (Banco de Dados) .............................................................. 37
7.8 Design Patterns ............................................................................... 38
7.9 Tela PedidosPojo ............................................................................. 38
7.10 Tela PedidosDao ........................................................................... 38
7.11 Tela PedidosAdapters .................................................................... 39
7.12 Tela Listar ...................................................................................... 39
7.13 Tela Fechamento ........................................................................... 39
8 - Concluso ......................................................................................... 40
9 - Referncias Bibliogrficas ................................................................ 41
10 - Codificao do projeto Bohemian ................................................... 42
9 - Referncias Bibliogrficas ................................................................ 40
10 - Codificao do projeto ..................................................................... 41

13

Introduo
Nesse trabalho temos o objetivo de propor uma soluo para um problema que
apesar de simples, causa constrangimentos em frequentadores de bares e pequenos
restaurantes, algumas vezes aparecem itens que no consumimos em nossa conta,
pensando em como resolver isso criamos um o prottipo de aplicativo que funciona
como uma comanda o Bohemian, onde o cliente que envia os seus pedidos para o
garom ou atendente abordaremos um tipo de tecnologia a que cada dia cresce mais, as
plataformas Mobile, especificamente o sistema operacional da Google, o Android, que
hoje em dia utilizada por 75% dos smartphones no mundo, e por isso est em
evidncia no mercado h anos. Levando em considerao a grande evidncia de tal
tecnologia, e atravs de muito empenho, dedicao e estudos sobre a linguagem, nosso
grupo resolveu criar um aplicativo prottipo utilizando Android/Java com o sugestivo
nome de Bohemian.
Bohemian uma comanda que permite a iterao em tempo real entre o garom
e o cliente, assim que o cliente faz o pedido, o garom pode listar a informao do
pedido identificado pela mesa e os produtos solicitados, assim o cliente
{www.tenhasucessonavida.com.br} {www.tenhasucessonavida.com.br} {Facebook.com} {Facebook.com}
{www.tenhasucessonavida.com.br} {www.tenhasucessonavida.com.br} no pagar pelo o que no pediu,
j que {www.tenhasucessonavida.com.br} {www.tenhasucessonavida.com.br} ele que controla o
pedido. J existem aplicativos similares no mercado, o Bohemian relativamente
simples, mas bem funcional e com boas prticas de programao e escolhemos como
Design Patterns o (Dao) para melhor controle do banco de dados.
Organizao do Trabalho
O trabalho est dividido em oito partes, no captulo 1 abordaremos a histria da
programao Android e Java, captulo 2, as vantagens do Java sobre o principal
concorrente, captulo 3, apresentao dos diagramas de classe e diagrama de Uso,
captulo 4, mostraremos a anlise de requisitos do software, captulo 5, anlise de
requisitos do Bohemian, captulo 6, apresentao do software, captulo 7,
desenvolvimento do software, captulo 8, captulo 9, referncias bibliogrficas, captulo
10, codificao do software.
14


Antes de comearmos com o trabalho, importante falar um pouco da histria
da programao, um breve resumo de como tudo comeou at os dias de hoje.

1 - Histria da Programao
Comeamos falando sobre Ada Augusta Byron King ser que voc a conhece? E
Ada Lovelace? - Provavelmente no, mas saiba que muitos a consideram a me da
programao, graas a um projeto em que Ada trabalhou, ela escreveu um programa
para ser utilizado na mquina analtica de Charles Babbage, tal mquina considerada
o marco inicial da programao de computadores, o algoritmo que Ada escreveu
calculava a sequncia de Bernoulli, tambm conhecida como a Lei dos Grandes
Nmeros. Ada na verdade no implementou o algoritmo ela apenas o traduziu e o
estudou, tambm conheceu a fundo a mquina de Babagge. Com esse estudo em mos,
Ada foi capaz de escrever um artigo com o passo a passo de como calcular os nmeros
de Bernoulli, esse seu artigo considerado o primeiro programa de computador, mas
pesquisadores apontam possveis pais da programao bem antes de Ada, Joseph-Marie
Jacquard, um francs que inventou o Tear Mecnico um deles, mas Ada foi a primeira
a registrar academicamente e conceber um algoritmo, alm de tratar implantar
realmente em uma mquina de fato.

1.2 Histria do Java
Java uma linguagem de programao orientada a objetos que foi criada em
1991, pela empresa Sun Microsystems, os programadores da Sun trabalhavam no
desenvolvimento de um programa para set-top Box. No incio do projeto escolheram a
linguagem C/C++ para o projeto, mas logo perceberam que com essa linguagem, seu
sistema no poderia ser porttil.
Com base no que precisavam, decidiram tirar alguns recursos da plataforma e
acabaram quase que acidentalmente criando uma nova linguagem de programao. Que
15

tinha como nome OaK (Carvalho em portugus) em homenagem ao desenvolvedor
que criou os cdigos de baixo de uma rvore de carvalho, mesmo sendo uma grande
novidade no mercado, a linguagem no foi aceita.
Mas cinco anos depois com o grande crescimento da internet, a Oak passou a
ser a melhor opo para a web, j que a internet precisava de uma linguagem de
programao porttil e que pudesse ser usada para escrever programas que funcionasse
em diferentes plataformas, o que a principal caracterstica do Java.
Pensando no futuro e com a aceitao imediata da linguagem, a empresa Sun
decidiu no mesmo ano renomear a linguagem para JAVA aps mais algumas
alteraes na plataforma, foi relanada no mercado. Os desenvolvedores de todo o
{Facebook.com} {Facebook.com} mundo descobriram o potencial da tecnologia Java, que virou
febre e entre os programadores, e hoje em dia estima se que aproximadamente 800
milhes de computadores e 3,5 bilhes de cartes magnticos inteligentes usam Java.
1.3 Histria do Android
O que Android?
Segundo o site www.areadecobertura.com O Android um Sistema
Operacional de Cdigo aberto desenvolvido pela Open Handset Alliance, ou como
define o site oficial do Android a primeira plataforma totalmente personalizvel,
gratuita e de cdigo aberto. Deixando em panos limpos, dizer que o Android um
Sistema Operacional, dizer que ele est para os telefones assim como o Windows est
para os computadores. Assim, criado o Android, fabricantes esto construindo
inmeros telefones capazes de funcionar com ele. importante afirmar que sabendo
todos que o Android um sistema operacional, muito errado dizer "Celular Android",
mas tudo bem vai, vamos deixar o mercado falar assim para ficar mais fcil.
Quando se fala em Android, todos associam o nome imediatamente ao Google,
mas a histria do Android comeou muito antes, em outubro de 2003, na cidade de Palo
Alto na Califrnia, quando Andy Rubin , Rich Miner, Nick Sears e Chris White
fundaram a Android Inc. O foco era em desenvolvimento de sistemas operacionais para
celulares, baseados no sistema operacional do ncleo Linux para dispositivos mveis, o
16

desenvolvimento tinha por objetivo ser uma plataforma flexvel, aberta e de fcil
migrao para outros fabricantes, todos os projetos eram secretos, o primeiro sistema
Android criado por eles foi o Android 1.5 chamado de Cupcake.
S em outubro de 2005 a Google comprou a Android, fazendo uma subsidiria e
investiu pesado em desenvolvimento para que a linguagem fosse realmente bem
difundida e que posteriormente se tornasse a principal tecnologia nos dispositivos
mveis, os fundadores Andy Rubin, Rich Miner e Chris White foram mantidos na
equipe.
Em dezembro de 2006 saiam as primeiras notcias no canal (BBC), e (The Wall
Street Journal), ambos publicaram que a Google estava entrando para o mercado de
telefones mveis, tecnologia que era desenvolvida com uma parceria da empresa de
software Sun Corp.
O primeiro telefone mvel comercializado e disponvel a rodar com o sistema
Android foi o HTC Dream com a verso 1.5 na data de 22 de outubro de 2008. Segundo
o Google, mais de um milho e 300 mil aparelhos com este sistema operacional so
ativados todos os dias utilizados por fabricantes de diversas empresas como: HTC,
Samsung, Sony, Motorola, LG e recentemente a Positivo Informtica. Atualmente a
verso do Android est na 4.2.2 chamada Jelly Bean.










17


2 - Vantagens do Android
Fazendo algumas comparaes com ao principal concorrente (Iphone) segundo o
http://www.bspcn.com temos uma lista 10 vantagens do Android sobre o Iphone, so
elas:
1- Permite executar mais de um programa ao mesmo tempo, seja nativo ou
oriundo do Android Market, {www.tenhasucessonavida.com.br} {www.tenhasucessonavida.com.br}
{Facebook.com} {Facebook.com} enquanto o da Apple s permite aplicaes do prprio
{Facebook.com} {Facebook.com} telefone rodando no background.
2- O uso dos widgets (atalhos rpidos para servios web) bem dinmico no Android,
e a informao que eles apresentam est sempre visvel e ao alcance de interao. Assim
fica mais fcil checar o email, as redes sociais e o tempo.

3- Como baseado em ferramentas de cdigo aberto, o Android Market, embora
ainda menor que o App Market do Iphone, floresce a olhos vistos e traz muitas
alternativas gratuitas.
4- As notificaes do Android so mais organizadas, e contam com uma barra com
cones diferenciados para melhor identificao dos avisos, alm de o sistema permitir
aos programadores a insero de notificaes diretamente na lock screen (a rea de
trabalho inicial do telefone).
5- O sistema do Google est em vrias marcas de celulares diferentes -
Motorola,Samsung, HTC, Samsung, LG, enquanto o iPhone, iPhone.
.
6- Embora aqui o Iphone esteja em diferentes operadoras, nos EUA ele exige
contrato com a AT&T, enquanto o Android se espalha por Sprint, Verizon, T-Mobile.

7- O Android permite programao mais personalizada, inclusive portando interfaces
customizadas de um aparelho a outro.
8- A mudana de configurao (por exemplo, mudar a conexo de WiFi para 3G) do
sistema do Google mais rpida.
9- A integrao com servios do Google e redes sociais a melhor parte do Android,
que permite uma conexo rpida e transparente com os sites.
18


10- Os preos - ao menos nos EUA - so mais convidativos. L, as operadoras j
oferecem smartphones com Android gratuitamente se ligados a um plano de dois anos.
(Aqui, j h ofertas semelhantes, mas com mensalidades polpudas).

Essas so vantagens citadas por usurios e desenvolvedores de Android, podem at ser
tendenciosas devido aos usurios serem os principais envolvidos nas pesquisas, porm
temos que ponderar, e reconhecer que o timo IOS da Apple arranca suspiros de seus
fs e usurios e que a questo de qual o melhor bem relativa, depende de muita coisa
para ser avaliada, e esse tipo de pesquisa s tende a deixar as concorrncias bem
saudveis, e quem ganha com isso? Os simples usurios.
2.1 Cdigo aberto (Open Source)
Aps seu lanamento, ao Android se tornou a primeira plataforma mvel a ser
livre e ter seu cdigo totalmente aberto (open-source), o que acabou se tornando um
grande diferencial diante dos seus principais concorrentes. O sistema passa
periodicamente por melhorias, e conta com a contribuio de milhares de
desenvolvedores ao redor do mundo para ajudar no desenvolvimento da plataforma.
Essa a maior vantagem para os fabricantes, pois eles podem utilizar o S.O Android em
seus dispositivos sem pagar absolutamente nada por isso. Outra vantagem uma
licena chamada Apache Software Foundation (ASF) permite que o cdigo-fonte possa
ser alterado e assim criar dispositivos personalizados sem a necessidade de divulgar as
alteraes.
Todo o cdigo fonte do Android pode ser baixado no nesse endereo:
http://source.android.com/index.html.






19


3 - Caso de Uso Bohemian (Use Case)
O caso de uso uma tcnica utilizada para demonstrar o que o sistema far aps
ser projetado. Normalmente feito com base na abordagem junto ao cliente, mas no
nosso caso que somos o prprio cliente, as especificaes foram feitas conforme as
necessidades apontadas por ns mesmos. O comportamento do sistema mostrado
amplamente nesse caso de uso mostraremos o que acontece quando acontece a iterao
do usurio com o software.
3.1 Principais objetivos do Caso de Uso
Definir detalhadamente os requisitos do sistema;
Fornecer informaes do que faz o sistema;
Descobrir os requisitos funcionais, classes e como opera o sistema.
3.2 Componentes do caso de Uso
Ator, que solicita aes e recebe as reaes do software.
Sistema, o software que ser modelado.
Caso de Uso, um conjunto especfico de aes feitas pelo sistema que
contm um resultado observvel. Caso de uso representado por uma elipse, com o nome do
caso de uso dentro ou abaixo. Se h limites do sistema no diagrama, o caso de uso deve ficar
dentro.
Usaremos o Unified Method Language (UML) para representar o nosso caso de
uso.






Nome do caso de uso
20

Ator Nome do Caso de Uso
Para o projeto construmos o caso de uso com dois atores, um faz o papel do
cliente e o outro faz o garom do estabelecimento e ambos interagem como nosso
software.





Cliente Garom
Bohemian
21

3.3 - Diagrama de Classes
O diagrama de classe exibe toda a estrutura e relacionamento entre as classes,
uma modelagem muito til e serve de base para a construo dos diagramas como o de
sequencia, o de estado e outros. Nesse trabalho temos apenas {Facebook.com}
{Facebook.com} o de uso, descrito acima e o de classes que ser apresentado abaixo:

Figura 1
22

4 - Anlises de Requisitos
A anlise de requisitos a chave para o sucesso de qualquer que seja o projeto,
nessa etapa do projeto feita toda a anlise de todas as necessidades do cliente, esse
levantamento essencial para que se possa definir definitivamente como ser e como
funcionar o software.
Os requisitos do projeto se dividem em partes:
4.1 Requisitos do projeto
Levantamento de requisitos referentes ao projeto, essa etapa feita logo no
incio projeto, mas deve ser gerenciada at o fim ela determinante para o sucesso de
um bom projeto.
4.2 Requisitos Funcionais
Os requisitos funcionais como diz o prprio nome, especifica com o
funcionamento do software, ele torna a vida dos envolvidos na construo do sistema
mais fcil porque detalha todo o funcionamento do software.
4.3 Requisitos no funcionais
Contempla tudo o que no faz o seu software, todas as restries que ele tem
juntamente com as suas propriedades.

4.4 Requisitos do produto
Requisitos do produto descrevem propriedades de um software ou produto uma
das vrias maneiras de conseguir satisfazer um conjunto de requisitos de negcio que
foi proposto. Abaixo descreveremos todos os requisitos acima citados dentro do nosso
projeto.

23

5 - Anlise dos requisitos Bohemian
Como j foi citado, o grupo o idealizador do projeto, por isso desenvolvemos a
anlise dos requisitos do projeto, uma vez que a necessidade de criao desse software
foi levantada pelo grupo, assim toda a funcionalidade e necessidade foram feitas de
acordo com o que julgamos que seria vlido.
5.1 Requisitos do projeto Bohemian
Os requisitos do projeto foram levantados e discutidos por todos os integrantes
do grupo, veio de uma necessidade em comum, por isso foi desenvolvido esse software
para que o cliente possa ter o real controle do que pedido em sua comanda, e pagar
apenas pelo que o cliente realmente solicitou, essa foi a principal necessidade levantada
para o projeto.
5.2 Requisitos funcionais do Bohemian
Aps ser instalado no dispositivo mvel, o cliente faz os seus pedidos, o garom
lista os pedidos e serve o cliente em sua mesa, o cliente continua a fazer os seus pedidos
at ele apertar o boto para fechar a sua conta, feito isso ele vai at o caixa e efetua o
pagamento para a atendente.
5.3 Requisitos no funcionais do Bohemian
Quanto ao uso do nosso software, necessrio ter o sistema Android instalado
no dispositivo mvel, o Bohemian no funciona em outro sistema operacional,
exclusivamente projetado para Android.

5.4 Requisitos do produto Bohemian
O Bohemian um software simples, com apenas quatro telas, bem intuitivas, na
principal o cliente escolhe fazer os pedidos, na tela de pedidos o cliente digita as
quantidades e os itens que deseja consumir, na tela de listagem o cliente verifica o que
pediu depois ele fecha os pedidos e verifica qual o valor da sua conta. {Facebook.com}
24

{Facebook.com} {Facebook.com} {Facebook.com} como se o usurio estivesse fazendo o pedido
{Facebook.com} {Facebook.com} em um simples papel, simula muito bem uma comanda em
que o cliente tem total controle dos seus pedidos, a necessidade de criao quase que
exclusiva da parte dos clientes, para os donos de estabelecimento ele no to
interessante.

6 - Desenvolvimento do Bohemian
O Bohemian foi construdo para funcionar em qualquer dispositivo mvel com
Android instalado, qualquer seja a verso, o modo da instalao atual um prottipo,
ele ainda no a verso definitiva que propomos, mas mostra o funcionamento do
programa, para que o Bohemian funcione do jeito em que foi idealizado precisaremos
instalar o banco de aplicao em Web Service, assim podemos promover a iterao do
cliente com o garom do estabelecimento com um banco de dados em comum nos dois
aparelhos, clientes/estabelecimentos.
25

6.1 Tela Principal

Figura 2
Na figura2, temos a tela principal do software, com apenas dois botes, o boto
para iniciar os pedidos, e o boto para sair da aplicao, alm disso, temos uma breve
instruo de como utilizar o Bohemian. Se o cliente clicar em sair volta para o menu do
celular, se clicar em pedidos, abrir a tela de pedidos, assim poder iniciar as operaes
com o nosso software seguindo as coordenadas que podem ser lidas antes clicando nas
instrues.
Se o cliente clicar em instrues, abre-se a tela que explica o funcionamento do
software, como podemos verificar na figura3.


26

6.2 Tela Instrues

Figura 3
6.3 Tela de Pedidos
A figura 4 mostra a tela de Pedidos, Agora o cliente faz os seus pedidos,
preenchendo todos os dados desta tela, no possvel deixar nenhum campo em branco,
ao deixar campos sem preenchimento o sistema no prossegue, se o usurio clicar em
enviar sem preencher os campos, o sistema apresenta uma mensagem para que o usurio
preencha os campos faltantes corretamente.




27


Figura 4

6.4 Erro Tela Pedidos
Na figura 5 a tela com a mensagem de erro caso falte alguma informao no
pedido do cliente, o sistema pede para que seja corrigido o campo para que o pedido
possa ser realizado.






28


Figura 5

6.5 Tela Pedidos preenchida
Agora temos a tela de pedidos devidamente preenchida, assim podemos dar
prosseguimento ao nosso pedido o cliente digita o item e a quantidade e clica em
adicionar pedido e a quantidade solicitada e clica em adicionar, os preos e o total so
preenchidos automaticamente pelo sistema, assim o garom pode visualizar todos os
pedidos feitos em diversas mesas e posteriormente poder servir todos os clientes do
estabelecimento atravs da visualizao que ele vai fazer na tela de listagem, veja na
figura6 a tela preenchida corretamente.


29


Figura 6

Aps o pedido ser preenchido o cliente clica em enviar, para que o pedido seja
processado e enviado para o sistema, assim o garom poder verificar os pedidos das
mesas na tela de listar e servir os clientes veja a mensagem de confirmao de pedido
que foi enviado e gravado no banco de dados na figura7.
30

6.7 Pedidos Enviados

Figura 7
Agora veremos a tela de listagem, que chamada atravs do boto listar, nessa
tela o cliente v o que foi pedido e garom tambm, sendo que o garom verifica em
que mesa e o que servir aos respectivos clientes os pedidos so identificados pelo
nmero e sua respectiva mesa, vejam a figura8.
31

6.8 Tela Listar

Figura 8
Nessa tela o cliente verifica o status do seu pedido, o cliente verifica apenas o
seus pedidos, enquanto o garom visualiza todos os pedidos.






32

6.9 Tela Total

Figura 9

Finalizando, temos na figura 9 a tela de Total de pedidos, nela temos a soma de
tudo o que foi pedido pela mesa, assim o cliente pode pagar a sua conta no caixa.









33

7 - Desenvolvimento do software
Agora iremos mostrar o desenvolvimento do projeto, etapa por etapa, tudo o que
foi usado para a construo do Bohemian, que comea coma escolha do IDE Eclipse,
ferramenta de desenvolvimento Open Source que considerada por muitos a melhor
ferramenta para desenvolvimento, o Eclipse IDE for Java EE Developers oferece edio
de Java superior com compilao incremental, suporte a Java EE 5, a HTML / JSP / JSF
editor grfico, ferramentas de gerenciamento de banco de dados e suporte a mais
popular servidores de aplicativos, tudo bem explicado para mostrar como chegamos ao
resultado final.
7.1 Banco de dados
A aplicao usa um banco de dados open source chamado Sqlite, foi
desenvolvido {www.devmedia.com.br/sqlite-o-pequeno-notavel/7249} {carlosgilsonandrade.wordpress.com}
{www.devmedia.com.br/sqlite-o-pequeno-notavel/7249} pela empresa Hwaki (www.hwaki.com),
segundo artigo do site www.devmedia.com.br, {www.devmedia.com.br/sqlite-o-pequeno-
notavel/7249} {carlosgilsonandrade.wordpress.com} {www.devmedia.com.br/sqlite-o-pequeno-notavel/7249} O
pequeno notvel Ganhador do premio Google OReilly 2005 Open Source Awards
Winner!, o SQLite tem subido muito no conceito dos programadores, ele gera um banco
de dados {www.devmedia.com.br/sqlite-o-pequeno-notavel/7249} {carlosgilsonandrade.wordpress.com}
{www.devmedia.com.br/sqlite-o-pequeno-notavel/7249} que pode ser entregue junto com a aplicao,
excelente para aplicaes pequenas que com um instalador do {www.devmedia.com.br/sqlite-o-
pequeno-notavel/7249} {carlosgilsonandrade.wordpress.com} {www.devmedia.com.br/sqlite-o-pequeno-
notavel/7249} tipo NNF (Next, Next, Finish), instala perfeitamente um sistema simples, sem
as complicaes da instalao de um cliente/servidor.
Ele bem simples de ser utilizada, sua interface grfica a Sqlite Express
Personal, bastante intuitiva, para comear a criar os bancos s preciso ter noes
bsicas de SQL, que o desenvolvedor poder criar bancos bem completos para as suas
aplicaes, os comandos SQL so os mesmo existentes em outros bancos de dados, e a
grande vantagem de tudo isso que ele totalmente gratuito. Existem apenas alguns
{www.devmedia.com.br/sqlite-o-pequeno-notavel/7249} {carlosgilsonandrade.wordpress.com}
{www.devmedia.com.br/sqlite-o-pequeno-notavel/7249} pontos negativos do banco que so as
ausncias de {Facebook.com} {Facebook.com} alguns comandos SQL que so:
34

Instruo DELETE em mltiplas tabelas;
Suporte a FOREIGN KEY;
Suporte a Triggers;
Suporte Completo ao ALTER TABLE (Somente algumas funcionalidades
esto implementadas);
Ausncia do RIGHT JOIN e FULL OUTER JOIN;
GRANT e REVOKE.
7.2 Tela de criao de bancos de dados.
A figura mostra o layout do Sqlite para criao de bancos

Figura 10
35






7.3 Android/Java
No desenvolvimento Android, necessrio usar Java juntamente com a
linguagem Android, os arquivos do Android so todos em xml, todos os layouts que
aparecem nas telas so feitos em xml, para cada tela criada para o Android, temos que
criar uma nova classe Activity em Java, para que as duas se tornem uma s dentro do
software, dentro das Activitys tem especificado qual o layout xml que as mesmas
esto utilizando. E o principal, temos que registrar as Activitys no arquivo chamado
Manifest XML, ele gerencia todas as Activitys existentes no sistema. Funciona assim,
no xml adicionamos os campos que os usurios utilizaro para digitar os dados, cada
campo tem seu nome e respectivo id, aps ser construdo o xml, hora de fazer as
classes que iro recuperar os valores digitados nas caixas de dilogo, e os cliques que
sero feitos no botes, veja um exemplo de recuperao de um Button (Boto) no
cdigo que est na tela principal, a chamada da tela pedidos atravs do boto chamado
btnPedidos:


btnPedidos.setOnClickListener(new View.OnClickListener() {

public void onClick(View v) {

36

startActivity(new Intent(getBaseContext(),Pedido.class));

}
});

7.4 Styles
Todos as letras, backgrounds e cores nas caixas de texto e botes, esto
configurados em um arquivo externo xml chamado Styles, nesse arquivo configuramos
as aparncias das caixas de texto, botes, textos em geral, seu funcionamento similar
ao arquivo css no HTML, serve para organizarmos os cdigos xml e deixamos mais
limpos e sem repetio durante a fase de desenvolvimento.
7.5 Tela principal
A Activity principal a mais simples de todas, apenas com um layout inicial do
programa, temos a partir desta tela chamadas para as telas de Pedidos, uma para sair do
sistema e voltar ao menu principal do telefone e um texto de instrues de uso do
software.
7.6 Tela pedidos
Nessa tela onde temos mais chamadas de mtodos e Activitys, onde est
concentrado quase todos as chamadas de telas e operaes do sistema, nossa regra de
negcio, nela temos como listar os pedidos, enviar ao banco de dados, alm de
validaes como de no deixar que o cliente envie um pedido em branco, que digite
corretamente o nome dos itens, e que faz a confirmao dos pedidos.
Usamos o mtodo findViewById para recuperar os comandos dos xmls nas
classes Java, instanciamos tambm os objetos para que possam ser inicializados e
utilizados no nosso cdigo.
37

7.7 Tela DB (Banco de Dados)
Essa a Activity que faz a criao do banco de dados e das tabelas, utilizados no
projeto, ela tem que herdar os mtodos de uma classe abstrata chamada
SqliteOpenHelper para que possamos fazer as operaes no banco de dados e trabalhar
com os design patterns, no nosso projeto usamos o DAO, que nos possibilita tambm
trabalhar com os objetos Pojos.
Ao herdar dessa classe, temos classe dois mtodos que so muito teis para
futuras alteraes no software.

public void onCreate(SQLiteDatabase db) {
db.execSQL(sql);}
Esse mtodo cria o banco de dados na aplicao, quando o usurio acessa o
software pela primeira vez, esse mtodo cria o banco de dados em modo exclusivo, s
para que a nossa aplicao utilize esse banco.
public void onUpgrade(SQLiteDatabase db, int oldVersion, int
newVersion) {
}
Esse mtodo pode ser utilizado quando houver a necessidade de mudana no
banco de dados do software, se na verso anterior foram detectadas algumas
necessidades como adio ou subtrao de tabelas, os comandos podem ser executados
nesse mtodo, assim a nova verso passar a funcionar com todas as alteraes
necessrias.
Existem outros mtodos para a criao do banco de dados, mas em nossa
aplicao procuramos usar as melhores prticas de programao, utilizamos o DAO
(Data Access Object) como design patterns, isso deixa o software mais leve e
principalmente de fcil manuteno, o trabalho em equipe fica muito mais prtico j que
preciso apenas alterar a classe DAO para acrescentar o remover argumentos no cdigo
na parte de conexo de dados.
38

7.8 Design Patterns
O Design Patterns um padro de desenvolvimento de software, so solues
para problemas conhecidos no desenvolvimento de software. uma soluo para um
problema de desenvolvimento de software recorrente, enfatizando um contexto e
forando a aproximao do problema, e as consequncias e os impactos de sua
soluo. So dispositivos que permitem que os programas compartilhem conhecimento
sobre o seu desenvolvimento. Quando programamos, encontramos problemas que
sempre insistem em ocorrer. A questo como agir para solucionar este problema desta
vez? Colocando tudo isso em uma documentao, o padro (pattern) uma maneira em
que podermos reutilizar e compartilhar informaes que aprendemos sobre a melhor
maneira de se resolver um problema de desenvolvimento de software.
7.9 Tela PedidosPojo
Essa Activity onde feito o mapeamento dos campos da aplicao, o
mapeamentos dos objetos relacionais, os nossos Pojos. Declaramos os atributos
privados da classe e aps geramos o Getters and Setters, assim temos o espelho do
nosso banco de dados, como resultado temos uma classe criada com todos os atributos
relacionados ao banco de dados necessrios.
7.10 Tela PedidosDao
Essa classe responsvel pela persistncia dos dados no banco de dados, nela
utilizamos os famosos mtodos CRUD (Create, Read, Update e Delete), que so as
funes bsicas do banco de dados, o DAO sempre recebe um objeto Pojo, assim no
relacionamos a interface do software com o acesso aos dados, e importante dizer que
para chegarmos a classe DB atravs do DAO, temos que ir passando contextos na
classe, o uso do DAO se faz necessrio porque como j dito, buscamos usar as melhores
prticas de programao para que o desenvolvimento siga um padro.

39

7.11 Tela PedidosAdapters
Essa Activity que tambm herda mtodos de uma classe abstrata chamada Base
adapter cria os adaptadores para que possamos ter acesso aos dados e trazer listagens de
dados no sistema, o adapter funciona como dataset, ou datasource como em linguagens
como o Delphi, ele busca as informaes na base de dados para trabalharmos com esses
dados na aplicao.

7.12 Tela Listar

Essa Activity retorna os resultados que foram digitados no banco de dados,
herda os mtodos de uma classe abstrata chamada ListActivity, no podemos ter um
setContentView nessa classe, pois, quando usamos um ListActivity e Adapters
configuramos o layout no prprio adapter, se definirmos o layout novamente nessa
classe, a mesma no ser executada. Esta Activity a que menos tem linhas de cdigo,
devido concentrao de dada ser toda feita nas classes Pojo e DAO.
No desenvolvimento desse software, temos para cada tabela do banco de dados,
um adapter, um DAO e um Pojo, para uma boa prtica de desenvolvimento necessrio
que seja feito desta forma, assim temos o controle total dos dados concentrados nessas
classes e muito mais agilidade no acesso aos dados.
7.13 Tela Fechamento
Nessa Activity temos o fechamento dos pedidos feitos pelos clientes, a soma de
todos os pedidos feitos por cada mesa, assim o cliente finaliza a operao como nosso
software, verificando se est tudo certo com os pedidos realizados e posteriormente
pagando a sua comanda, sem problemas com os itens da mesma, j que ele mesmo os
fez e acompanhou passo a passo at a entrega, com isso terminamos de explicar o
funcionamento do Bohemian.

40





8 - Concluso
O Android um sistema operacional com infinitas possibilidades de criao, o
programador pode desenvolver softwares em todos os ramos do conhecimento, ajudar a
resolver grandes problemas atravs de softwares especficos, dependendo da
necessidade dos seus clientes ou da sua prpria, por ser um software livre existe grande
base de conhecimento na prpria internet, os programadores contribuem para que cada
vez mais o Android melhore e seja difundido. A fcil integrao do Eclipse com o
plugin de desenvolvimento Android, tambm facilita o desenvolvimento, uma vez que a
IDE acomoda bem as duas ferramentas integradas e o uso das duas muito fcil que o
desenvolvedor possa assimilar.
Nesse caso atravs de uma necessidade mesmo que simples, conseguimos achar
uma soluo prtica e interessante para os usurios controlar os seus pedidos atravs de
uma simples comanda, funcional e muito fcil de ser utilizado, ele pode ser instalado em
qualquer dispositivo mvel com Android como sistema operacional, uma proposta,
um prottipo, pode ser que realmente venha a ser til um dia, mas ajuda a entender o
funcionamento da linguagem Android/Java e completar o ciclo no curso de sistemas de
informao, agregando um vasto conhecimento nas pessoas envolvidas nesse projeto.





41





9 - Referncias Bibliogrficas
LECHETA, R. R. Google Android - Aprenda a Criar Aplicaes para Dispositivos
Mveis com o Android
SDK. So Paulo: Editora Novatec, 2010. 608p
DEVELOPERS. DEVELOP Disponvel em:
http://developer.android.com/tools/sdk/eclipse-adt.html Acessado em: 20/09/2013
http://www.escolacriatividade.com/introducao-ao-desenvolvimento-para-android-parte-
ii/ Acessado em: 05/10/2013
http://www.felipesilveira.com.br/2010/03/comecando-a-desenvolver-aplicativos-para-
android/ Acessado em 25/08/2013
http://www.motorola.com/sites/motodev/us-en/motodev_lp.html
Acessado em 10/09/2013
https://developer.android.com/training/index.html Acessado em 28/09/2013
http://www.mobiltec.com.br/blog/index.php/tutorial-desenvolvimento-android-passo-a-
passo/ Acessado em 08/09/2013





42





10 - Codificao do projeto Bohemian
Tela Principal:
package com.example.br.bohemian;
import com.example.br.bohemian.R.id;
import android.R.string;
import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.database.sqlite.SQLiteDatabase;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class Principal extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.principal);
/* Chamada para a tela de instrues */
TextView Instrucoes = (TextView) findViewById(id.Instrucoes);
Instrucoes.setOnClickListener(new View.OnClickListener() {

public void onClick(View v) {

startActivity(new Intent(getBaseContext(), Instrucoes.class));

}
});

/* Recuperao de botes do arquivo xml no java */
Button btnPedidos = (Button) findViewById(id.btnPedidos);

Button btnSair = (Button) findViewById(id.btnSair);

btnPedidos.setOnClickListener(new View.OnClickListener() {

public void onClick(View v) {

startActivity(new Intent(getBaseContext(), Pedido.class));

}
43

});

btnSair.setOnClickListener(new View.OnClickListener() {

public void onClick(View v) {
finish();

}
});

}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}

Tela Pedidos
package com.example.br.bohemian;

import android.R.integer;
import android.app.Activity;
import android.app.AlertDialog.Builder;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.text.Editable;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import br.Bohemian.dao.PedidosDao;
import br.Bohemian.pojo.PedidosPojo;

import com.example.br.bohemian.R.id;

public class Pedido extends Activity {

private EditText txtMesa;
private EditText txtItem;
private EditText txtQuantidade;
private EditText txtPreco;
private EditText txtTotal;
private double total = 0;
private EditText x;
private EditText y;

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.pedido);
/* Recuperao do boto do xml pedidos */
Button btnEnviar = (Button) findViewById(id.btnEnviar);
/* Declarando as varivei s serem utilizadas */
txtMesa = (EditText) findViewById(id.txtMesa);
44

txtItem = (EditText) findViewById(id.txtItem);
txtQuantidade = (EditText) findViewById(id.txtQuantidade);
txtPreco = (EditText) findViewById(id.txtPreco);
txtTotal = (EditText) findViewById(id.txtTotal);

btnEnviar.setOnClickListener(new View.OnClickListener() {

public void onClick(View v) {

/* Estanciando o Pojo */
PedidosPojo pj = new PedidosPojo();

pj.setMesa(txtMesa.getText().toString());
pj.setItem(txtItem.getText().toString());
pj.setQuantidade(txtQuantidade.getText().toString());
pj.setPreco(txtPreco.getText().toString());
pj.setTotal(txtTotal.getText().toString());

/* Estanciando o Dao */
PedidosDao dao = new PedidosDao(getBaseContext());

if (txtMesa.getText().toString().equals("")) {
txtMesa.setBackgroundColor(Color.RED);

Toast t = Toast
.makeText(getBaseContext(),
"Preencha o
numero da sua mesa",

Toast.LENGTH_SHORT);
t.show();
txtMesa.requestFocus();
}
/*
* Adicionando regras para que no seja digitadas
informaes
* inconsistentes
*/

if (txtItem.getText().toString().equals("")) {

Toast t = Toast.makeText(getBaseContext(),
"Preencha qual o item escolhido",
Toast.LENGTH_SHORT);
t.show();
txtMesa.requestFocus();
}

if (txtQuantidade.getText().toString().equals("")) {

Toast t = Toast.makeText(getBaseContext(),
"Qual a quantidade?",
Toast.LENGTH_SHORT);
t.show();
txtMesa.requestFocus();
}

else {
dao.insert(pj);

45

Toast t = Toast.makeText(getBaseContext(),
"Pedido enviado",
Toast.LENGTH_SHORT);
t.show();

}

txtMesa.setText("");
txtItem.setText("");
txtQuantidade.setText("");
txtPreco.setText("");
txtTotal.setText("");

}

});

/* A chamada da tela Listar */
findViewById(R.id.btnListar).setOnClickListener(
new View.OnClickListener() {

public void onClick(View v) {

startActivity(new Intent(getBaseContext(),
Listar.class));

}
});
/* Evento boto apagar */
findViewById(R.id.btnApagar).setOnClickListener(
new View.OnClickListener() {

public void onClick(View arg0) {

txtMesa.setText("");
txtItem.setText("");
txtQuantidade.setText("");
txtPreco.setText("");
txtTotal.setText("");

}
});

/* Adicionando os preos conforme digitao do cliente */
findViewById(R.id.btnAdiciona).setOnClickListener(
new View.OnClickListener() {

public void onClick(View arg0) {

if
(txtItem.getText().toString().equals("cerveja")) {
txtPreco.setText("3.50");

double val1 =
Double.parseDouble(txtPreco.getText()
.toString());
double val2 =
Double.parseDouble(txtQuantidade

.getText().toString());
46



txtTotal.setText(String.valueOf(val1 * val2) + "00");

}

if
(txtItem.getText().toString().equals("lanches")) {
txtPreco.setText("8.50");

double val1 =
Double.parseDouble(txtPreco.getText()
.toString());
double val2 =
Double.parseDouble(txtQuantidade

.getText().toString());


txtTotal.setText(String.valueOf(val1 * val2) + "00");

} else {

Toast.makeText(getBaseContext(),
"Item no
cadastrado no sistema",

Toast.LENGTH_LONG).show();
}

}

});

}
}

Tela BD:
package com.example.br.bohemian;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;

public class DB extends SQLiteOpenHelper {

private static String dbNome = ("pedido_clientes.db");
private static String sql = "CREATE TABLE [pedidos] ( [id] INTEGER PRIMARY
KEY AUTOINCREMENT, [item] [CHAR(30)] NOT NULL, [mesa] [INT(5)] NOT NULL,
[quantidade] [INT(5)] NOT NULL, [preco] [INT(5)] NOT NULL, [total] [INT(5)] NOT NULL);";
public static int version = 1;

public DB(Context contx) {
super(contx, dbNome, null, version);

47

}

@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(sql);

}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

}
}
Tela Listar:
package com.example.br.bohemian;

import br.Bohemian.adapters.PedidosAdapter;
import br.Bohemian.dao.PedidosDao;
import br.Bohemian.pojo.PedidosPojo;
import br.Bohemian.pojo.TotalPojo;
import android.app.Activity;
import android.app.AlertDialog.Builder;
import android.app.ListActivity;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.ListView;
import android.widget.Toast;

public class Listar extends ListActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

PedidosDao dao = new PedidosDao(getBaseContext());

setListAdapter(new PedidosAdapter(getBaseContext(), dao.getAll()));

}

@Override
protected void onListItemClick(ListView l, View v, int position, long id) {


startActivity(new Intent(getBaseContext(), Total.class));

}
}

Tela Instrues:
package com.example.br.bohemian;

48

import android.app.Activity;
import android.os.Bundle;

public class Instrucoes extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.instrucoes);

}
}

Tela Total:
package com.example.br.bohemian;
import br.Bohemian.adapters.AdapterTotal;
import br.Bohemian.adapters.PedidosAdapter;
import br.Bohemian.dao.DaoTotal;
import br.Bohemian.dao.PedidosDao;
import br.Bohemian.pojo.PedidosPojo;
import br.Bohemian.pojo.TotalPojo;
import android.app.Activity;
import android.app.ListActivity;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.ListView;
import android.widget.Toast;

public class Total extends ListActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

DaoTotal dao = new DaoTotal(getBaseContext());

setListAdapter(new AdapterTotal(getBaseContext(), dao.getAll()));

}

}

Farejador de Plgio - Registrado para MARCO ANTONIO GOMES


Relatrio do arquivo: TCC UNISA.docx em 30/10/2013

49

Utilizando : Google - LycosAltavistaLiveBing
Resumo Estatstico

Trechos pesquisados 1850
Sites semelhantes 6156
Google 106
Yahoo OFF
Lycos
Altavista
Live
Ask OFF
Bing 6070
Google Acad OFF
Google Desk OFF
reas suspeitas 4
Sites suspeitos
1 e 2 mais usados 01 %
1 a 5 mais usados 01 %
1 a 10 mais usados 00 %
Pequisas / minuto 23 sites
Confirmaes / minuto 75 sites



50


Principais Sites - Analisar detalhadamente

Repete | Site encontrado
26 | Facebook.com
10 | www.devmedia.com.br/sqlite-o-pequeno-notavel/7249
10 | carlosgilsonandrade.wordpress.com
8 | www.tenhasucessonavida.com.br

Você também pode gostar