Escolar Documentos
Profissional Documentos
Cultura Documentos
Cadê Meu Pet? Aplicativo Android para auxiliar na localização de animais achados e
perdidos
Fernando Marchetti
2019
Fernando Marchetti
Cadê Meu Pet? Aplicativo Android para auxiliar na localização de animais achados e
perdidos
2019
Dedico esta obra aos amantes dos animais e minha mãe que me observa do céu.
AGRADECIMENTOS
Cadê meu Pet, aplicativo Mobile visando auxiliar na localização de animais achados e
perdidos. Ter passado por essa adversidade me mostrou a necessidade de um sistema que
facilite e auxilie a procura de animais perdidos. O aplicativo permite incluir cadastros dos
animais perdidos, assim como os encontrados por outras pessoas em qualquer local.
Utilizando os recursos disponíveis atualmente nos smartfones é possível registrar a
localização via GPS, obter imagens e através das informações fornecidas no cadastro,
compartilhar estes dados possibilitando a consulta desses animais e sua possível localização.
Desenvolvido utilizando o Android Studio sendo uma ferramenta robusta e prática e escolhido
o sistema operacional Android por ser o mais comum entre a população, utilizado também
recursos nativos oferecidos pelo Google como o Firebase que oferece o recurso de Banco de
dados e armazenamento de arquivos no Storage, essenciais para realizar as consultas e
persistência dos dados e imagens.
ABSTRACT
Cade Meu Pet. mobile app to help locate lost and found animals. Having gone through this
adversity showed me the need for a system that facilitates and assists in the search for lost
animals. The app allows you to include records of lost animals, as well as those found by
other people anywhere. Using the resources currently available in smartphones it is possible
to record the location via GPS, obtain images and through the information provided in the
registration, users can share these data allowing consultation of these animals and their
possible location. Developed using Android Studio as a robust and practical tool and Android
operating system is the most common among the population, also using native features
offered by Google such as Firebase that offers the database and file storage feature. Storage,
essential for querying and persisting data and images.
1 INTRODUÇÂO ........................................................................................................... 14
2 FUNDAMENTOS TEÓRICOS .................................................................................. 16
3 MATERIAIS E MÉTODOS ....................................................................................... 23
4 DESENVOLVIMENTO.............................................................................................. 29
5 RESULTADOS ............................................................................................................ 48
6 CONSIDERAÇÔES FINAIS ...................................................................................... 49
REFERÊNCIAS ..................................................................................................................... 50
APÊNDICES ........................................................................................................................... 52
APÊNDICE A – TERMO DE ORIGINALIDADE ............................................................. 53
14
1 INTRODUÇÂO
Devido aos grandes números de pet’s perdidos, e com isso trazendo grandes
desconfortos aos seus donos, sendo assim foi pensado em desenvolver um app mobile de fácil
acesso, e de rápida utilização, para facilitar o encontro dos pet’s. Tendo em vista que no
mundo atual, todos utilizam os mais diversos tipos de app em seu smartphones garantindo um
alcance maior na quantidade de pessoas que podem utilizá-lo
1.1 Justificativa
Este app terá o nome de “Cadê Meu Pet?”. Um programa desenvolvido para
smartphones Android onde o usuário pode consultar e cadastrar um pet que perdeu ou
encontrou, com isso, compartilhando as informações feitas no cadastro e os filtros no app para
auxiliar no reencontro do pet com seu dono. Para agilizar o seu uso, foi feito com uma
interface simples e com isso a possibilidades de rapidamente realizar um cadastro ou consulta
no Banco de dados dos animais perdidos e achados.
A relação do ser humanos é muito importante, este relacionamento vai muito além de
um simples animal, pois para ambos cria um elo emocional e psicológico. Quando um pet por
algum motivo é perdido, ou acaba fugindo, gera um grande abalo na família a qual ele
pertence, gerado pela incerteza de seu paradeiro e pela preocupação com sua saúde e
segurança.
Utilizando um Smartphone com um sistema que é utilizado por uma grande fração da
população e seus recursos, pode ser criado uma ferramenta intuitiva, de fácil acesso, que visa
facilitar e auxiliar o reencontro desses animais, com a ajuda da comunidade que o usa gerando
uma rede de achados e perdidos, que pode facilmente ser consultada e atualizada, aumentando
as chances de um reencontro.
1.2 Motivação
Algumas sensações, não podem ser facilmente descritas, muitas delas é preciso passar
pela situação para entender, assim como a perda deum pet querido, gera uma enorme
incerteza e infelicidade, que nos leva a várias horas de buscas em vão, nada supera a alegria
de um reencontro e um conforto repentino.
15
Ter passado por essa adversidade me fez perceber que apesar de termos vários
recursos, poucos são usados de forma eficiente, mesmo hoje em dia quando um animal é
perdido recorremos a entrar no carro, passando por ruas desconhecidas na esperança de
encontra-lo e colar fotos em postes torcendo para o telefone tocar e termos uma boa notícia.
Foram duas semanas de dúvidas e preocupação, até recebemos uma ligação, mas pelo menos
nessa teve um final feliz.
1.3 Objetivos
Também é possível o usuário escrever uma breve descrição, bem como informar dados
de contato caso desejar, exibir uma lista ordenada por estado e região, bem como filtros
específicos que podem facilitar a consulta de animais que foram perdidos ou encontrados
pelos usuários.
Para facilitar o acesso por todos, a interface foi feita pensando em ser prática e sem
muitas configurações necessárias para que qualquer pessoa possa utilizar.
16
2 FUNDAMENTOS TEÓRICOS
não tem um contato com qualquer tipo de tecnologia, independente do grau de instrução,
social, econômico e local (BARBOSA; SILVA, 2010 p.44).
No software descrito neste projeto utilizaremos recursos como a Internet, GPS, Banco
de Dados para realizar a coleta e disseminação de informação para integrar e promover a
relação entre usuários e tecnologia visando um bem comum.
Nosso projeto por ser desenvolvido para plataforma mobile, utiliza uma área de estudo
da TI muito importante. A Interação humano computador foca no estudo da integração entre
pessoas e computadores, são incluídos nesse processo a acessibilidade e usabilidade.
“O design de sistemas interativos preocupa-se com o desenvolvimento de sistemas
interativos de alta qualidade, produtos e serviços que combinam com as pessoas e com seus
modos de vida [...]” (BENYON, 2010 p.3).
A acessibilidade consiste na remoção de barreiras que poderiam excluir um grupo de
pessoas de usarem o sistema enquanto a usabilidade consiste na qualidade das interações.
De acordo com Benyon (2010, p.80) “Um sistema deve ser acessível antes de usável”
e ainda o autor descreve alguns conceitos que o desenvolvedor deve ter em mente para que
seja acessível. Na lista abaixo descrevo um breve resumo destes conceitos.
a) Fisicamente o sistema não deve excluir pessoas devido a localização errada de
equipamentos ou de dispositivos de entrada e saída que exigem habilidades
específicas.
b) Conceitualmente o sistema tem que possuir instruções simples e claras sem
comandos obscuros.
c) Economicamente serão excluídas se tiverem que pagar para uma tecnologia
essencial.
d) Culturalmente serão excluídas quando os designers fazem suposições
inadequadas de como as pessoas trabalham e organizam as suas vidas.
e) Socialmente quando a aplicação não está disponível a um grupo de pessoas
devido a localização ou grupo social particular.
18
No software deste projeto, foi projetada uma navegação fácil entre as telas, com
poucas informações a serem digitadas pelo usuário e utilizando opções pré-definidas. As
informações são coletadas e utilizadas de forma padronizada permitindo uma uniformidade na
apresentação dos anúncios e facilitando o seu uso.
3 MATERIAIS E MÉTODOS
Fonte Android(2019)
Tanto o Android como o IOS da Apple, são os sistemas que dominam o mercado, e o
ideal sempre é construir um software para as duas plataformas para atingir quase os 100% de
usuários de smartphones, mas ao definir qual sistema operacional seria utilizado, onde o
25
nosso software iria executar, escolhemos o Android devido ser o sistema mais comum entre
os usuários de smartfones e por ter uma maior familiaridade com o uso do sistema, garantindo
assim um melhor detalhamento desse documento.
No gráfico 2 podemos constatar como os dois sistemas operacionais dominam o
mercado de smartfones ficando o Android com cerca de 69%, IOS 29% e o restante com
outros sistemas.
3.2 Firebase
Na Figura abaixo temos uma imagem da tela do Console do Firebase com acessos
rápidos a serviços e estatísticas.
Quando desenvolvemos um app que será usado por vários usuários, é indispensável
uma forma de controlar esses acessos ao sistema. Reconhecendo e confirmando a identidade
do usuário, possibilita salvar os dados em nuvem com segurança e oferece uma experiencia
personalizada (Firebase Authentication, 2019).
Vários serviços de autenticação de usuários estão disponíveis a escolha do
desenvolvedor, como a utilização de provedores federados Google, Facebook, Twitter, assim
como utilização de usuário e senha, número de telefone. Em nosso aplicativo, inicialmente foi
definido que a autenticação por usuário e senha como sendo suficiente para controlar o acesso
de usuários.
Na figura 5 verificamos uma lista de métodos disponíveis para login no Firebase,
assim como os seus status que define quais métodos estão ativos para utilização.
27
O usuário pode tanto ser cadastrado pelo Firebase console como pela aplicação que o
desenvolvedor está criando. No nosso sistema como será utilizado por vários usuários o
método mais eficiente é realizar pela própria aplicação, processo que será descrito mais à
frente.
28
Nosso app utiliza essa o Cloud Storage para salvar as imagens que serão inseridas nos
cadastros dos pets e seu gerenciamento assim como Realtime Database é realizado pelo
Firebase Console.
4 DESENVOLVIMENTO
Neste capítulo será feito um relato sobre a construção e recursos utilizados para o
desenvolvimento do nosso software, detalharemos os as telas e suas funcionalidades em
ordem de utilização do software para ficar mais didático, e não a ordem em qual foram
criadas, pois todo desenvolvedor quando está criando muitas vezes pode retornar a outras
etapas do projeto e refaze-las caso tenha surgido uma nova necessidade ou ideia.
Abaixo descrevo alguns dos requisitos que foram anotados para garantir a entrega e
funcionamento deste software.
Requisito de usuário
a. O app deverá ser um sistema mobile onde será possível cadastrar e listar
animais perdidos e encontrados e acessado em qualquer lugar.
Requisito de Sistema
a. Deverá listar estes cadastros e possuir filtros de pesquisa.
b. Permitir que usuário sem cadastro no sistema visualize a lista.
c. O usuário deve se cadastrar no sistema para criar um cadastro.
d. Ser possível cadastrar animais perdidos e achados separadamente.
e. Os dados devem ser salvos em banco de dados
f. O sistema deve usar o GPS para aprimorar a precisão do cadastro
Requisitos Funcionais
a. O app irá listar os cadastros de acordo com a localidade do usuário.
b. Ao realizar o cadastro de usuário deverá garantir que os dados sejam validos.
c. O menu deve permitir o usuário selecionar o tipo de cadastro que deseja criar.
d. Ao cadastrar os anúncios, os dados serão padronizados através de dados
prescritos e todos os dados essenciais devem estar preenchidos.
e. O sistema deve salvar o local onde está sendo feito o anúncio através do GPS
Requisitos não funcionais
a. Requisitos de usabilidade.
a. O app deve ser fácil de utilizar e de rápida aprendizagem
b. Requisito de Confiabilidade
a. O usuário deve sempre ter a acesso ao app.
c. Requisito de Desempenho
a. O sistema deve listar rapidamente a lista de animais.
d. Requisito de portabilidade
a. O app deve ser possível utilizar em qualquer local
e. Requisito segurança
a. O sistema deve garantir a privacidade dos dados dos usuários e
controlar o acesso ao banco de dados
31
Podemos distinguir quatro colunas na tela, e da esquerda para direita temos a coluna
de consulta do projeto, onde podemos percorrer pelos objetos e recursos criados para serem
32
Como nosso app será utilizado por várias pessoas e suas informações serão
armazenadas e recuperada da nuvem, independentemente do local onde ela estiverem, fica
indispensável o uso de métodos para garantir e proteger as informações dos usuários e os
cadastros realizados no sistema, sendo assim, utilizamos as ferramentas e recursos fornecidos
pelo Firebase Authentication para garantir essa segurança.
33
Ao utilizamos o Firebase em nosso app, ele oferece recursos para validar a criação de
usuários em nosso app que futuramente possam realizar a criação de cadastros. No código
abaixo temos um exemplo de como esse processo funciona, utilizando o método de login por
e-mail e senha.
Ao executar o app e não estando logado no sistema, será apresentado ao usuário duas
telas onde será selecionar um estado e região, com essas informações o sistema irá exibir a
lista de anúncios que foram feitos baseados nestas informações ordenadas por data de criação
36
do cadastro para os mais recentes serem exibidos primeiros, também é possível utilizar alguns
filtros na tela para refinar os tipos de anúncios exibidos, assim o usuário pode realizar uma
consulta e filtrar os resultados.
Na figura 13 temos a exibição das telas de seleção ode estado e região e da lista de
anúncios que é exibida após a seleção de local.
}
});
}
Ao chamarmos a função carregaListaUf() o sistema carrega uma lista de texto na
variável uf, nesta variável será inserido todos os estados de nosso pais, depois essa lista é
carregada no ArrayAdapter que divide o texto em um formato padrão do Android com o nome
de simple_list_item1, que define os espaçamentos, fontes e distancia entre os textos e depois
exibida na tela do usuário através da função listaUfsetAdapter.
A função listaUf.setOnItemClickListener é responsável por retorna em item da lista o
usuário clicou e com isso sabemos o estado que foi selecionado e é enviado para a próxima
tela qual item foi selecionado.
public void recuperaDDD(int numero){
switch (numero) {
case 23:
ddd = new String[]{"47 - Joinville/Blumenau/Itajaí/Balneário Camboriú",
"48 - Florianópolis e Região Metropolitana/Criciúma/Tubarão",
"49 - Chapecó/Lages/Caçador"};
break;
case 24:
ddd = new String[]{"11 - São Paulo/Jundiaí/Itu//Bragança Paulista",
"12 - São José dos Campos/Taubaté/Vale do Paraíba",
"13 - Santos/São Vicente/Baixada Santista/Vale do Ribeira",
"14 - Bauru/Marília/Jaú/Botucatu",
"15 - Sorocaba/Itapetininga/Itapeva",
"16 - Ribeirão Preto/Franca/São Carlos/Araraquara",
"17 - São José do Rio Preto/Catanduva/Barretos/Votuporanga",
"18 - Campinas/Piracicaba/Limeira/Americana",
"19 - Chapecó/Lages/Caçador"};
break;
Na tela de seleção de DDD recuperamos qual estado da lista foi selecionado, e cada
um possui uma numeração diferente, com isso podemos através de um switch recuperar qual
estado foi selecionado e retornar o DD referente ao estado.
38
Na lista de anúncios utilizamos os dados recuperados nessas duas telas para iniciar a
procurar no banco de dados e exibir os anúncios para o usuário que se enquadram nestes dois
parâmetros conforme no código simplificado abaixo.
});
}
Uma das partes principais do nosso software são as etapas de cadastro dos anúncios,
na tela do menu principal possuem dois botões, “Perdi meu pet” onde o usuário que perdeu o
seu pet faz um cadastro para ser visualizado por outras pessoas que utilizam o software e o
botão “Encontrei um pet”, onde o usuário realiza um cadastro sobre um pet que localizou na
rua.
Em ambas as telas os recursos utilizados para criar o anúncio são praticamente os
mesmos, o usuário seleciona uma imagem que foi tirada pelo celular, salva sua posição
através gps, e completa as informações do cadastro utilizando textos padrões definidos na
criação do app para facilitar e padronizar os anúncios, caso o usuário ainda achar que essas
informações não são suficientes, ele pode digitar em uma caixa de texto algumas informações
extras que serão exibidas apenas quando o usuário selecionar um anúncio na lista de anúncios.
Na figura 15 exibimos como são as telas atualmente que realizam o cadastro dos
anúncios.
40
Uma das partes essenciais do nosso projeto, são nessas telas que serão criados os
anúncios onde as informações coletadas neles estarão disponíveis a todos os usuários de nosso
app.
Para facilitar a criação dos cadastros optamos por limitar o que o usuário irá digitar
com spinners que exibirão uma lista de textos fixos em nosso sistema. Campos como Tipo,
gênero, porte, faixa etária utilizam o mesmo recurso em ambas as telas.
O funcionamento dos spinners são semelhantes a lista conforme descremos nas telas
de localidade do usuário, o sistema carrega uma lista de palavras que foram feitas de forma
fixa no sistema, como no gênero, definimos macho ou fêmea, no tipo gato ou cachorro.
Essa lista é carregada no anúncio no spinner e quando o usuário clica sopre a opção é
exibida uma pequena lista com esses textos o que nos poupa espaço e facilidade na
visualização do anúncio.
41
Temos também nesta tela, o local onde podermos salvar a foto do pet, ao clicar sobre a
imagem de câmera será exibida a opção se selecionarmos a galeria de nosso telefone através
da função.
Ao selecionarmos a imagem devemos salvar a sua posição, para depois enviar a imagem ao
banco de dados quando formos salvar o anúncio.
No trecho acima recuperamos a lista que possui o caminho das imagens que
selecionamos e a quantidade de imagens que queremos salvar no banco de dados, e passamos
essas informações na função salvarFotoStorage(urlImagem,tamanhoListaFotos,i); que irá
enviar para o Cloud Storage as nossas imagens.
No trecho acima iremos enviar as imagens, depois de definir o caminho criamos uma
tarefa, UploadTask que informo ao Cloud que estamos enviando uma imagens e o caminho
que irá ser salva, o banco por sua vez retorna a autorização de salvar e com isso a imagem é
enviada e salva e completamos o cadastro que por sua vez passa a ser visualizado pelo outros
usuários do sistema.
44
4.2.5 GPS
Para facilitar inserir a informação do local de onde se encontra ou foi avistado o pet foi
adicionado no app a utilização de GPS o recurso é oferecido no Android Studio e com isso ao
visualizar o anúncio, um usuário pode marcar uma rota e se dirigir ao local da marcação e
para quem está realizando o cadastro, fica possível inserir o local assim que o sistema
recuperar e salvar a sua posição.
Na tela de cadastros dos pets perdidos e localizados ao clicar sobre o botão de mapas o
sistema irá carregar uma nova tela, onde após recuperar e exibir a posição do usuário o
mesmo utiliza o botão salvar posição que será utilizada para compartilhar o local de onde o
cadastro foi feito.
Na imagem 17 visualizamos a tela do GPS com a posição do usuário recuperada.
(ActivityCompat.checkSelfPermission(this,
Manifest.permission.ACCESS_FINE_LOCATION) ==
PackageManager.PERMISSION_GRANTED ) {
locationManager.requestLocationUpdates(
LocationManager.GPS_PROVIDER, 5000, 5, locationListener
);
No código acima temos duas partes a primeira linha informados o local que estão os
dados do usuário no Realtime Database, enquanto na segunda linha criamos um evento para
recuperar essas informações e exibi-las ao usuário.
referenciaUuario.child("nome").setValue(nomealterar);
No menu de dicas, utilizamos uma ListView em conjunto com uma DialogBox para
exibir umas informações de auxílio ao usuário, essas dicas foram retiradas e traduzidas do site
malibupetcare.com/lost-or-found-pets que tem por objetivo auxiliar o usuário a realizar outras
ações em conjunto com o app para que sua procura seja mais eficiente.
Na figura 19 temos um exemplo das telas exibidas no menu de dicas uteis.
5 RESULTADOS
6 CONSIDERAÇÔES FINAIS
REFERÊNCIAS
BARBOSA, Simone Diniz Junqueira; SILVA, Bruno Santana da. Interação humano
computador. Rio de Janeiro: Elsevier, 2010.
BENYON, David. Interação humano-computador. 2. ed. São Paulo: Pearson Prentice Hall,
2011.
CODD E. F. A Relational Model of Data for Large Shared Data Banks. Communications of
the ACM. v13, n.6, p. 377 - 387. Junho 1970
GLAUBER, Nelson. Dominando o Android do básico ao avançado. 10. ed. São Paulo:
Novatec, 2015.
NEGOCIOS, Época. Brasil tem 230 milhões de smartphones em uso, 2019. Disponível em
<https://epocanegocios.globo.com/Tecnologia/noticia/2019/04/brasil-tem-230-milhoes-de-
smartphones-em-uso.html> Acesso em: 07 jun. 2019
APÊNDICES
53
TERMO DE ORIGINALIDADE
Fernando Marchetti