Escolar Documentos
Profissional Documentos
Cultura Documentos
TEÓFILO OTONI - MG
2017
Edson Gomes Pereira
TEÓFILO OTONI-MG
2017
INSTITUTO ENSINAR BRASIL
FACULDADES UNIFICADAS DE TEÓFILO OTONI
FOLHA DE APROVAÇÃO
foi aprovada por todos os membros da Banca Examinadora e aceita pelo curso
de Sistemas de Informação das Faculdades Unificadas Teófilo Otoni, como
requisito parcial da obtenção do título de
___________________________
Prof. Orientador
___________________________
Prof. Examinador 1
___________________________
Prof. Examinador 2
Dedicamos esta monografia a todos aqueles que descobriram da maneira mais difícil
que todos os sacrifícios valeram a pena.
LISTA DE SIGLAS E ABREVIATURAS
INTRODUÇÃO ............................................................................................................ 9
1. PRINCIPAIS CONCEITOS ............................................................................. 13
1.1. SQL................................................................................................................. 13
1.1.1 Bancos de dados .......................................................................................... 14
1.1.2 Sistema gerenciador de banco de dados ................................................... 14
1.1.3 MariaDB ......................................................................................................... 15
1.2 LINGUAGENS DE PROGRAMAÇÃO ............................................................. 15
1.2.1 Tipos de linguagens ..................................................................................... 15
1.2.2 Programação orientada a objetos ............................................................... 16
1.2.3 História da linguagem Java ........................................................................... 17
1.2.3.1 Conceitos de Java ......................................................................................... 18
1.2.3.2 JDK................................................................................................................ 18
1.3 INTRODUÇÃO AO ANDROID ............................................................................. 19
1.3.1 Plataforma Android ........................................................................................ 19
1.3.2 Arquitetura do Android .................................................................................. 20
1.3.3 SDK .................................................................................................................. 22
1.3.4 Activity ............................................................................................................ 22
1.3.4.1 Ciclo de Vida da Activity ................................................................................ 22
1.3.5 AVD .................................................................................................................. 25
1.3.6 Genymotion .................................................................................................... 25
1.3.7 APIs ................................................................................................................. 26
1.3.7.1 API Google Maps .......................................................................................... 26
1.4 IDEs .................................................................................................................... 27
1.4.1 Principais conceitos....................................................................................... 27
1.4.2 Android Studio ............................................................................................... 27
1.4.3 PHPStorm........................................................................................................ 28
1.5 AMBIENTE WEB ................................................................................................. 28
1.5.1 Introdução ao PHP ......................................................................................... 28
1.5.2 Conceitos de PHP .......................................................................................... 29
1.5.3 JavaScript ....................................................................................................... 29
1.5.4 CSS .................................................................................................................. 30
1.5.5 TypeScript ....................................................................................................... 30
1.5.6 Web Service .................................................................................................... 30
1.5.6.1 JSON ............................................................................................................. 31
1.5.7 Servidores Web .............................................................................................. 31
1.5.7.1 Apache .......................................................................................................... 31
1.6 FRAMEWORKS .................................................................................................. 32
1.6.1 Principais conceitos....................................................................................... 32
1.6.2 Angular 2 ......................................................................................................... 32
1.6.3 Node.js ............................................................................................................ 33
1.6.3.1 NPM .............................................................................................................. 33
1.6.4 Materialize ....................................................................................................... 34
1.7 FERRAMENTAS AUXILIARES PARA O DESENVOLVIMENTO ........................ 34
1.7.1 Postman .......................................................................................................... 34
1.7.2 Balsamiq Mockups ......................................................................................... 35
1.7.3 Git .................................................................................................................... 35
1.7.3.1 Git Hub .......................................................................................................... 35
1.7.4 Inkscape .......................................................................................................... 36
1.8 ENGENHARIA DE SOFTWARE ......................................................................... 36
1.8.1 Conceitos de Engenharia de Software ......................................................... 36
1.8.2 Camadas da Engenharia de Software........................................................... 37
1.8.3 Modelos de Processo..................................................................................... 38
1.8.3.1 Modelos de processo incremental ................................................................. 38
1.8.4 Requisitos ....................................................................................................... 39
1.8.5 UML.................................................................................................................. 41
2. DESENVOLVIMENTO ....................................................................................... 42
2.1 DESENVOLVIMENTO DO APLICATIVO ............................................................ 42
2.1.1 Requisitos ....................................................................................................... 42
2.1.2 Protótipos de tela ........................................................................................... 43
2.1.3 Definição dos Requisitos............................................................................... 48
2.1.4 Modelagem do banco de dados .................................................................... 52
2.1.5 Desenvolvimento da Aplicação Android ...................................................... 56
2.1.6 Desenvolvimento da Aplicação Web ............................................................ 64
2.1.7 Testes da aplicação........................................................................................ 68
3. RESULTADOS OBTIDOS ................................................................................. 71
CONSIDERAÇÕES FINAIS ...................................................................................... 77
REFERÊNCIAS ......................................................................................................... 80
9
INTRODUÇÃO
Vários dos problemas enfrentados por essa prática manual podem vir a ser
solucionados com a utilização de tecnologias móveis, em específico um aplicativo
para esse ramo de atividade. A fim de resolver esses problemas, foi proposto o
desenvolvimento de um aplicativo para dispositivos Android que satisfaçam as
necessidades que um usuário desse tipo de serviço poderia ter. A aplicação permitirá,
pois, que o usuário possa efetuar o seu próprio agendamento selecionando aquele
estabelecimento que melhor o atenderá de acordo com as suas necessidades. Ela
fornece a localização atual do usuário e a localização dos estabelecimentos mais
próximos. Além de efetuar o agendamento, o usuário terá acesso a informações
referentes ao estabelecimento como o seu endereço, a categoria a que ele pertence
e a sua avaliação por outros usuários. Se desejar efetuar um agendamento, o usuário
terá ainda acesso a uma lista de serviços com a qual aquele estabelecimento opera,
o valor e a duração de cada serviço, além da data e horário desejados poderá também
10
A pesquisa proposta pode ser considerada de caráter descritivo, uma vez que
se pretende coletar dados referentes à opinião pública de donos e gerentes que
administram estabelecimentos do setor de beleza através de entrevistas informais,
onde o objetivo é definir melhor os requisitos para o desenvolvimento além, é claro,
de compreender melhor as necessidades dos usuários e dos próprios
estabelecimentos.
Pode ser classificada como bibliográfica, quanto aos meios, pois foram
realizados vários estudos sobre linguagens de programação, ferramentas de
desenvolvimento e testes, metodologias de desenvolvimento, bancos de dados e
sistemas de gerenciamento em artigos, livros e monografias a fim de adquirir o
conhecimento necessário para a concepção do aplicativo. Ainda se tratando dos
meios, também se classifica como pesquisa de opinião pois como já citado, foram
consultados donos e gerentes de estabelecimentos a fim de auxiliar no processo de
desenvolvimento.
12
Tendo por base tudo o que foi exposto, o presente trabalho se mostra de grande
importância uma vez que se pretende através da tecnologia móvel, facilitar a vida dos
clientes que desejam utilizar os serviços de um estabelecimento de beleza,
extinguindo a necessidade de pegar filas de espera, ter que se dirigir a estes
estabelecimentos ou entrar em contato com os mesmos. Satisfazendo a necessidade
de um meio mais eficaz de se efetuar esse tipo de agendamento, aumentando o grau
de satisfação dos clientes ao procurarem por estes serviços. Além de auxiliar na
administração desses horários, possibilitando uma melhor organização dos mesmos
por parte dos estabelecimentos.
1. PRINCIPAIS CONCEITOS
1.1. SQL
1.1.3 MariaDB
única classe que represente um conceito mais abstrato. Enfim, quando uma classe
estende a outra ela herda o comportamento e a estrutura de dados da primeira,
constituindo assim o conceito de herança.
1.2.3.2 JDK
19
1.3.3 SDK
1.3.4 Activity
Fonte: developer.android.com.
1.3.5 AVD
1.3.6 Genymotion
O Genymotion é mais que um emulador que pode ser usado no lugar do AVD
que já vem integrado ao Android Studio, é uma plataforma extremamente rápida,
eficiente e completa de virtualização de dispositivos Android bem mais realistas.
Pode ser uma ótima opção uma vez que o AVD requer muito recurso da máquina.
26
Possui uma versão gratuita e uma paga, sendo a gratuita com poucas
restrições de recursos. É executada como uma máquina virtual, acessando recursos
da própria máquina elevando o desempenho o mais próximo possível de um
dispositivo real, além de estar disponível para Windows, Mac e Linux. (CORDEIRO,
2017).
1.3.7 APIs
1.4 IDEs
1.4.3 PHPStorm
Segundo Alves (2017, p. 157) “O PHP pode ser considerado uma linguagem
de script, muito empregada no desenvolvimento de aplicações web e sites de e-
commerce, com acesso a banco de dados relacional”.
É uma linguagem server side, ou seja, é executada no lado servidor e é
29
1.5.3 JavaScript
1.5.4 CSS
1.5.5 TypeScript
XML e JSON. Uma das grandes vantagens na construção de Web Services é que
eles permitem acessar os serviços de uma forma padronizada e independente de
linguagem de programação. (LECHETA,2015).
1.5.6.1 JSON
1.5.7.1 Apache
1.6 FRAMEWORKS
1.6.2 Angular 2
33
1.6.3 Node.js
1.6.3.1 NPM
34
1.6.4 Materialize
1.7.1 Postman
1.7.3 Git
Por sua vez, o Git Hub é um serviço web que provê diversas funcionalidades
complementares ao Git. Através dele é possível a hospedagem e compartilhamento
de projetos. Quase todos os projetos de frameworks, bibliotecas, etc. que se
encontram em desenvolvimento, estão disponibilizados no Git Hub permitindo com
que desenvolvedores possam acompanhar e até contribuir com esses projetos.
(SCHMITZ, 2015).
36
1.7.4 Inkscape
1.8.4 Requisitos
executada antes.
Em síntese são narrativas em texto que retratam cada item funcional que
comporá o sistema. São largamente empregados para representação dos requisitos
funcionais a serem implementados, e podem também ser representados de outras
maneiras ainda mais simples, através de diagramas contendo figuras por exemplo
proporcionando uma melhor visualização do processo de desenvolvimento para as
partes interessadas, em especial para os desenvolvedores.
1.8.5 UML
2. DESENVOLVIMENTO
2.1.1 Requisitos
Protótipo da tela de cadastro, para que o usuário que nunca tenha acessado o
aplicativo, possa efetuar o seu cadastro. Conta com alguns campos básicos de
cadastro.
45
Por último, mas não menos importante, tem-se a tabela “serviços”, encarregada
de armazenar os dados referentes aos serviços que serão prestados em cada
estabelecimento. Por exemplo o nome, o tempo médio de execução e o preço desses
serviços. Pode-se observar a tabela pela figura 17 que se segue:
A primeira a ser descrita é a tela inicial ou de login, que tal como o protótipo
possui dois campos principais para que o usuário possa acessar o aplicativo e suas
funções. Conta também com um botão de login e uma opção logo abaixo para que o
usuário possa se cadastrar caso nunca o tenha feito. Esta tela é apresentada a seguir
através da figura 18:
Após a seleção do estabelecimento, é aberta uma tela para que o usuário possa
realizar o agendamento. Como pode ser visto na figura n, o usuário dispõe de algumas
opções de serviço, colaborador, data e horário desejados além de ser informado do
valor daquele serviço:
63
map = googleMap;
if (ActivityCompat.checkSelfPermission(this,
Manifest.permission.ACCESS_FINE_LOCATION) !=
PackageManager.PERMISSION_GRANTED &&
64
ActivityCompat.checkSelfPermission(this,
Manifest.permission.ACCESS_COARSE_LOCATION) !=
PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, new
String[]{Manifest.permission.ACCESS_FINE_LOCATION}, 0);
ActivityCompat.requestPermissions(this, new
String[]{Manifest.permission.ACCESS_COARSE_LOCATION}, 0);
return;
map.setMyLocationEnabled(true);
map.setMapType(GoogleMap.MAP_TYPE_NORMAL);
map.getUiSettings().setZoomControlsEnabled(true);
if (!list.isEmpty()) {
double latitude =
Double.parseDouble(list.get(i).getLatitude());
double longitude =
Double.parseDouble(list.get(i).getLongitude());
}
} else {
Toast.makeText(this, list.toString(),
Toast.LENGTH_LONG).show();
@Component({
selector: 'app-cadastro-colaborador',
templateUrl: './cadastro-colaborador.component.html',
styleUrls: ['./cadastro-colaborador.component.scss']
})
export class CadastroColaboradorComponent implements OnInit {
estabelecimentos: EstabelecimentoModel[];
public retorno: string
constructor(private colaboradorService: ColaboradorService) { }
ngOnInit() {
this.colaboradorService.estabelecimentos().subscribe(estabelecimen
tos => this.estabelecimentos = estabelecimentos);
}
save(colab: ColaboradorModel) {
let result
result = this.colaboradorService.addColaborador(colab)
result.subscribe(retorno => this.retorno = retorno);
console.log(this.retorno)
}
}
<?php
require_once '../../DBCON/conexao.php';
require_once '../DAO/colaboradorDAO.php';
$response = array();
$entityBody = file_get_contents('php://input');
if($_SERVER['REQUEST_METHOD']=='POST'){
$obj_request = json_decode($entityBody ,true);
if (!empty($obj_request)){
$pdo = conectar();
$response['retorno'] = colabNovo($pdo,$obj_request);
} else {
$response ['retorno'] = " Erro: Dados não encontrados!";
}
}else{
$response ['retorno'] = true;
$response['retorno']= "Erro: Requisição Invalida!";
}
echo json_encode($response);
Fonte: do próprio autor.
3. RESULTADOS OBTIDOS
O capítulo que se segue tem por objetivo expor os resultados obtidos durante
os testes do aplicativo por donos e clientes de estabelecimentos de beleza situados
na cidade de Malacacheta, Minas Gerais.
Após os testes com a aplicação pelo público alvo, pode-se constatar que:
CONSIDERAÇÕES FINAIS
Visto que são conhecimentos essenciais a serem adquiridos para que seja possível a
produção de um software com qualidade e que atenda aos fins para os quais foi
desenvolvido.
Testes realizados na busca por falhas foram essenciais para o perfeito funcionamento
do aplicativo.
78
Esta primeira hipótese não foi validada, uma vez que através de breves e
informais questionários constatou-se a necessidade de uma aplicação para este fim
tanto por parte de clientes como por parte dos donos/gerentes destes
estabelecimentos.
Esta segunda hipótese também não foi validada, já que a aplicação fornece
um meio mais eficiente para administrar e acompanhar os agendamentos, tornando
esse processo mais simples para o cliente aumentando consequentemente o seu grau
de satisfação com os serviços prestados.
A hipótese acima, tal como as anteriores também não foi validada, devido ao
fato de a aplicação fornecer uma visibilidade superior aos meios de marketing
79
Pode-se sugerir para futuros trabalhos a adaptação desta aplicação para outras
plataformas móveis, a implementação de pagamentos de serviços e o
desenvolvimento de módulos básicos para gerência de outros setores tais como
financeiro e estoque.
80
REFERÊNCIAS
ABLESON, W. Frank; SEM, Robi; KING, Chris. Android em ação. 3. Rio de Janeiro:
Elsevier Editora Ltda. 2012. 656p.
ALVES, Willian Pereira. Construindo uma Aplicação Web Completa com PHP e
MySQL. 1. São Paulo: Novatec Editora Ltda., 2017, 516p. Disponível em: <
https://www.novatec.com.br/livros/aplicacao-web-completa-com-PHP-MySQL/>
Acesso em 23 mai. 2017.
BASSETT, Lindsay. Introdução ao JSON: Um guia para JSON que vai direto ao
ponto. 1. São Paulo: Novatec Editora Ltda. 2015. 152p. Disponível em:
<https://www.livrariacultura.com.br/p/livros/informatica-e
tecnologia/programacao/introducao-ao-json-46064199?id_link=8787> Acesso em
25 ago. 2017.
BURD, Barry. Java para Leigos. 5. Rio de Janeiro: Alta Books. 2013. 424p.
CAMPOMORI, Cleber. Precisamos falar sobre TypeScript. São Paulo: Treina Web.
2017. Disponível em: < https://www.treinaweb.com.br/blog/precisamos-falar-sobre-
o-typescript/> Acesso em 25 ago. 2017.
DOUGLAS, Allan. Introdução à Google Maps API. 2015. DevMedia. Disponível em:
< http://www.devmedia.com.br/introducao-a-google-maps-api/26967> Acesso em
29 ago. 2017.
DURAES, Ramon. Desenvolvendo para Web Usando o Visual Studio 2008. 1. Rio
de Janeiro: Brasport. 2008. 328p. Disponível em: <
https://www.saraiva.com.br/desenvolvendo-para-web-usando-o-visual-studio-2008-
2612200.html> Acesso em 24 ago. 2017.
GUERRA, Eduardo. Design Patterns com Java: Projeto orientado a objetos guiado
por padrões. 1. São Paulo: Casa do Código. 2012. 333p
LECHETA, Ricardo R.. Google Android: Aprenda a criar aplicações para dispositivos
móveis com o Android SDK. 5. São Paulo: Novatec Editora Ltda., 2016, 1066p.
<https://www.saraiva.com.br/guia-pratico-engenharia-de-software-4080098.html>
Acesso em 10 set. 2017.
LUIS, Tiago. Material Design com Materialize. 2015. Disponível em: <
https://tableless.com.br/material-design-com-materialize/> Acesso em 26 ago.
2017.
SIX, Jeff. Segurança de aplicativos Android. 1. São Paulo: Novatec Editora Ltda.
2012. 144p.
MELO, Ana Cristina. Desenvolvendo Aplicações com UML 2.2. 3. Rio de Janeiro:
Brasport Livros e Multimídia Ltda. 2010. 340p. Disponível em: <
https://www.saraiva.com.br/desenvolvendo-aplicacoes-com-uml-22-do-conceitual-
a-implementacao-3-ed-2010-3416267.html> Acesso em 16 set. 2017.
MILANI, André. Construindo Aplicações Web com PHP e MySQL. 2. São Paulo:
Novatec Editora Ltda., 2016, 336p. Disponível em: <
https://novatec.com.br/livros/aplicacoes-web-com-php-mysql-2ed/ > Acesso em 23
mai. 2017.
NORONHA, Ana Paula Leite; OLIVEIRA, Saulo Brito de; LEITE, Maria Silene
Alexandre. Aplicação do custeio baseado em atividade (ABC) aos serviços
prestados por um salão de beleza. 2006. Disponível em:
<http://www.abepro.org.br/biblioteca/ENEGEP2006_TR510343_7212.pdf> Acesso
em 11 abr. 2017.
PEREIRA, Lucio Camilo Oliva. SILVA, Michel Lourenço da. Android para
Desenvolvedores. 2. Rio de Janeiro: Brasport Livros e Multimidia Ltda. 2012.
Disponível em: < https://www.livrariacultura.com.br/p/livros/informatica-e-
tecnologia/programacao/android-para-desenvolvedores-15018007> Acesso em 27
ago. 2017.
RODRIGUES, Joel. Testando serviços Web API com Postman. s/d. Disponível em:
< http://www.linhadecodigo.com.br/artigo/3712/testando-servicos-web-api-com-
postman.aspx> Acesso em 26 ago. 2017.
SCHMITZ, Daniel. Tudo que você queria saber sobre Git e GitHub, mas tinha
vergonha de perguntar. 2015. Disponível em: <https://tableless.com.br/tudo-que-
voce-queria-saber-sobre-git-e-github-mas-tinha-vergonha-de-perguntar/> Acesso
em 26 ago. 2017.
SILVA, José Maria Ferreira da. Como funciona um servidor web. 2012. Disponível
em: < https://www.portaleducacao.com.br/conteudo/artigos/informatica/como-
funciona-um-servidor-web/17165> Acesso em 24 ago. 2017.
85