35
Relatório Técnico de Desenvolvimento de Software Desenvolvimento de Aplicativo de Carona Solidária Relatório Parcial Rafael Henrique Pacheco de Souza Prof. Dr. Paulo Edson Alves Filho Orientador Sorocaba Dezembro - 2019

Desenvolvimento de Aplicativo de Carona Solidária ... · Figura 7 - Gerenciador do Firebase Crash Reporting. Fonte: Firebase (2019) h) Cloud Functions for Firebase: Disponibiliza

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Desenvolvimento de Aplicativo de Carona Solidária ... · Figura 7 - Gerenciador do Firebase Crash Reporting. Fonte: Firebase (2019) h) Cloud Functions for Firebase: Disponibiliza

Relatório Técnico de Desenvolvimento de

Software

Desenvolvimento de Aplicativo de Carona

Solidária – Relatório Parcial

Rafael Henrique Pacheco de Souza

Prof. Dr. Paulo Edson Alves Filho – Orientador

Sorocaba

Dezembro - 2019

Page 2: Desenvolvimento de Aplicativo de Carona Solidária ... · Figura 7 - Gerenciador do Firebase Crash Reporting. Fonte: Firebase (2019) h) Cloud Functions for Firebase: Disponibiliza

Resumo

Este projeto visa elaborar aos estudantes da Fatec Sorocaba um

aplicativo de carona solidária que os auxilie na escolha do transporte diário. A

carona solidária ou compartilhada é elemento constante em cidades

inteligentes, que tem a economia, a tecnologia e ecologia como focos principais

e considera o bem estar das pessoas. A presente proposta engloba a revisão

bibliográfica de ferramentas computacionais e a criação e aprimoramento de

um protótipo que promova a interação entre estudantes. A aplicação será

desenvolvida com ferramentas gratuitas e terá uma interface intuitiva para fácil

uso da comunidade.

Palavras-chave: Carona compartilhada, Fatec Sorocaba, Visual Studio Code,

Flutter, Dart, Android Studio, Firebase.

Page 3: Desenvolvimento de Aplicativo de Carona Solidária ... · Figura 7 - Gerenciador do Firebase Crash Reporting. Fonte: Firebase (2019) h) Cloud Functions for Firebase: Disponibiliza

Sumário

1. Introdução ....................................................................................... 4

2. Escolha das Ferramentas ............................................................... 5

2.1. Firebase ...................................................................................... 7

2.1.1. Ferramentas de desenvolvimento .......................................... 8

a) Firebase Authentication ............................................................... 8

b) The Realtime Database. .............................................................. 9

c) The Cloud Firestore ................................................................... 10

e) Firebase Hosting. ...................................................................... 13

f) Firebase Test Lab ..................................................................... 14

g) Firebase Crash Reporting ......................................................... 14

h) Cloud Functions for Firebase .................................................... 15

2.1.2. Ferramentas para expansão da aplicação ........................... 16

a) Firebase Cloud Messaging. ....................................................... 16

b) Firebase Remote Config ............................................................ 17

c) App Invites and Dynamic Links ................................................. 18

d) Earning with AdMob .................................................................. 18

e) Google Analytics for Firebase ................................................... 18

2.2. Visual Studio Code (VSCode) ................................................... 19

Page 4: Desenvolvimento de Aplicativo de Carona Solidária ... · Figura 7 - Gerenciador do Firebase Crash Reporting. Fonte: Firebase (2019) h) Cloud Functions for Firebase: Disponibiliza

2.2.1. Coloração de sintaxe ............................................................. 19

2.2.2. Correspondência de colchete .... Erro! Indicador não definido.

2.2.3. IntelliSense ................................ Erro! Indicador não definido.

2.3. Flutter ........................................................................................ 20

2.4. Dart............................................................................................ 21

3. Próximas etapas para conclusão do projetoErro! Indicador não

definido.

4. Referências .................................................................................. 31

Page 5: Desenvolvimento de Aplicativo de Carona Solidária ... · Figura 7 - Gerenciador do Firebase Crash Reporting. Fonte: Firebase (2019) h) Cloud Functions for Firebase: Disponibiliza

4

1. INTRODUÇÃO

O projeto pretende elaborar um aplicativo de carona compartilhada, bem

como visa aprofundar os conhecimentos na área de pesquisa acadêmica

relacionada a desenvolvimento de software, especificamente através das

ferramentas Visual Studio Code (IDE – Ambiente de Desenvolvimento

Integrado), Flutter (SDK – kit de desenvolvimento) e o Dart (linguagem de

programação). Uma vez analisadas e descritas essas ferramentas, pretende-

se elaborar um protótipo de sistema informatizado que proporcione aos alunos,

que se deslocam diariamente à instituição, o recurso de carona compartilhada.

Para o desenvolvimento e posterior implementação desse sistema será

pesquisada bibliografia referente às ferramentas citadas e testados modelos

computacionais iniciais, de modo a propiciar aos usuários um recurso com a

menor quantidade de falhas e de grande abrangência à comunidade

acadêmica.

O desenvolvimento do presente projeto toma como referências iniciais

os trabalhos de KELLEY (2007) e MULLER (2009).

Page 6: Desenvolvimento de Aplicativo de Carona Solidária ... · Figura 7 - Gerenciador do Firebase Crash Reporting. Fonte: Firebase (2019) h) Cloud Functions for Firebase: Disponibiliza

5

2. ESCOLHA DAS FERRAMENTAS

Foram pesquisadas ferramentas gratuitas de desenvolvimento mobile

que tivessem fácil integração entre elas e interface intuitiva para

desenvolvimento. Para o desenvolvimento mobile foram necessárias algumas

ferramentas como editor de código-fonte e emulador (aplicação que faz um

sistema computacional simular um outro).

Além disso, foram necessários uma plataforma para armazenar dados,

um kit de desenvolvimento de software (SDK) - um “conjunto de programas da

linha de comando usados para criar, compilar e executar programas” (LEMAY:

2005, p.434) - e sua linguagem de programação.

Com esses recursos, seguimos LEITÃO (1995), que afirma que “uma

linguagem de programação deve ser feita para seres humanos dialogarem

acerca de programas e, só incidentalmente, para computadores os

executarem”.

A escolha do kit de desenvolvimento de software surgiu a partir da

análise do artigo “Estudio comparativo de frameworks multiplataforma para

desarrollo de aplicaciones móviles” (JULIÁN: 2018) no qual são descritas as

funcionalidades de determinadas SDK. A partir dele, optamos pela tecnologia

Flutter, que utiliza a linguagem de programação Dart.

A escolha das outras ferramentas teve como base a necessidade de

comunicação com o Flutter. A ferramenta para armazenar dados do aplicativo é

o Firebase, ferramenta que pertence à mesma empresa fabricante do Flutter.

Page 7: Desenvolvimento de Aplicativo de Carona Solidária ... · Figura 7 - Gerenciador do Firebase Crash Reporting. Fonte: Firebase (2019) h) Cloud Functions for Firebase: Disponibiliza

6

Analisamos dois editores do código fonte: o Android Studio e o Visual

Studio Code. O Android Studio possui diversas configurações de emuladores

de celulares - necessários para testes, bem como a formatação do código

possui diferenciação de funções por cores – o que o torna visualmente intuitivo.

O processamento da ferramenta apresenta bom desempenho, ou seja, não

ocasiona travamentos, desde que seja instalada em um computador que

apresente os requisitos mínimos de hardware (GOOGLE DEVELOPERS:

2019). Por outro lado, o Visual Studio Code também possui diferenciação de

funções do código por cores, entretanto os requisitos de hardware são

menores, característica determinante para que fosse o escolhido para o

desenvolvimento do projeto.

Page 8: Desenvolvimento de Aplicativo de Carona Solidária ... · Figura 7 - Gerenciador do Firebase Crash Reporting. Fonte: Firebase (2019) h) Cloud Functions for Firebase: Disponibiliza

7

2.1. FIREBASE

A Firebase é um conjunto de ferramentas para desenvolvimento de

aplicações móveis que ajuda a expandir, criar e a melhorar o aplicativo.

Fundado por James Tramplin e Andrew Lee, sua origem veio baseada na

ferramenta mais antiga chamado Envolve, desenvolvida por uma Startup que

proporcionava aos desenvolvedores uma API (Interface de Programação de

Aplicações) para a integração da funcionalidade chat nas suas aplicações web.

Após um tempo com a API disponível aos usuários, Tramplin e Lee

perceberam que ela era utilizada na transmissão de dados em tempo real, ou

seja, não eram mensagens transmitidas, mas sim dados para sincronizar

aplicativos ou estados de jogos entre usuários. Assim, os desenvolvedores

resolveram separar o bate-papo da arquitetura em tempo real, criando o

Firebase. Em outubro de 2014, ele foi adquirido pela Google (MATHIOS: 2017).

O Firebase possui ferramentas para armazenar dados, para análise de

acessos, para autenticação de usuários e outras funcionalidades, conforme

citamos abaixo.

Page 9: Desenvolvimento de Aplicativo de Carona Solidária ... · Figura 7 - Gerenciador do Firebase Crash Reporting. Fonte: Firebase (2019) h) Cloud Functions for Firebase: Disponibiliza

8

2.1.1. Ferramentas de desenvolvimento

a) Firebase Authentication: proporciona formas de autenticação

conhecidas, tais como identidades federadas, a federação de

identidades (grupo de organizações relacionadas com diferentes

sistemas de tecnologia da informação). Permitem que as empresas

vinculem identidades do usuário mantidas em dois ou mais sistemas de

gerenciamento de identidades (ORACLE CLOUD SERVICES: 2019),

como Gmail, Twitter, Facebook e contas Microsoft, conforme

demonstrado na Figura 1.

Sua utilização faz-se necessária devido à segurança que a ferramenta

proporciona (certificada com os padrões de privacidade e segurança

segundo Firebase) para armazenar os dados de acesso dos usuários.

Figura 1 - Painel Gerenciamento do Firebase Authentication. Fonte: Firebase (2019)

Page 10: Desenvolvimento de Aplicativo de Carona Solidária ... · Figura 7 - Gerenciador do Firebase Crash Reporting. Fonte: Firebase (2019) h) Cloud Functions for Firebase: Disponibiliza

9

b) The Realtime Database:

É um banco de dados NoSQL hospedado em nuvem, que segunfo

SOUZA (2011), “proporciona serviços de Tecnologia da Informação (TI)

sob demanda com pagamento baseado no uso e acesso de forma

simples e de qualquer local.”

NoSQL significa “Not Only SQL” (não apenas SQL), um termo que

representa os bancos de dados não relacionais, ou sejam, que não

fazem uso primário de tabelas. São usados quando é necessário

manipulação de grande quantidade de dados com rapidez (REIS: 2016).

O Realtime Database fornece sincronização entre dispositivos

conectados e é acessível mesmo quando não há rede disponível através

de memória local. É um banco de dados orientado a eventos. Todo o

código de interação e autenticação com o banco está no cliente, ou seja,

no código junto à aplicação, diferenciando-se muito dos bancos dados

SQL tradicionais em que o código de interação com o banco

normalmente encontra-se no servidor de banco de dados. Sempre que

há mudanças no banco de dados, os eventos devem ser acionados no

código do cliente para que o estado da interface da aplicação seja

atualizado. Um conjunto de regras pode ser criada para a definição de

como os dados serão estruturados e quais usuários terão acesso a

esses dados (MONOREY: 2017). Um modelo do Realtime Database é

ilustrado na Figura 2.

Page 11: Desenvolvimento de Aplicativo de Carona Solidária ... · Figura 7 - Gerenciador do Firebase Crash Reporting. Fonte: Firebase (2019) h) Cloud Functions for Firebase: Disponibiliza

10

Figura 2 - Gerenciador do Realtime Database. Fonte: Firebase (2019)

c) The Cloud Firestore: será utilizado para armazenar os dados dos

usuários, tais como: nome completo, dados de documentos pessoais e

do automóvel utilizado, conforme a figura 3. O recurso é

um banco de dados flexível e escalonável para desenvolvimento de dispositivos móveis, Web e servidores a partir do Firebase e do Google Cloud Platform, podendo visualizar sua estrutura na Figura 3. Como o Firebase Realtime Database, ele mantém seus dados em sincronia em aplicativos cliente por meio de listeners(Um objeto tem vários dependentes que são anexados a ele, quando este objeto muda de estado todos os seus dependentes são avisados)(RONALDO:2014) em tempo real. Além disso, oferece suporte off-line para dispositivos móveis e Web para que você possa criar aplicativos responsivos que funcionem independentemente da latência da rede ou da conectividade com a Internet. (FIREBASE: 2019)

Page 12: Desenvolvimento de Aplicativo de Carona Solidária ... · Figura 7 - Gerenciador do Firebase Crash Reporting. Fonte: Firebase (2019) h) Cloud Functions for Firebase: Disponibiliza

11

Figura 3 - Gerenciador do Cloud Firestore. Fonte: Firebase (2019)

d) Cloud Storage For Firebase:

Além de armazenar dados, o recurso é capaz também de armazenar

arquivos como fotos, vídeos ou arquivos de texto. Ele fornece uma API

simples cujo backup é feito pelo armazenamento em nuvem da Google,

facilmente utilizado pela aplicação através de funções (MONOREY:

2017). Sua tela de gerenciamento é ilustrada conforme Figura 4. Será

empregada para armazenar foto de perfil dos usuários.

Page 13: Desenvolvimento de Aplicativo de Carona Solidária ... · Figura 7 - Gerenciador do Firebase Crash Reporting. Fonte: Firebase (2019) h) Cloud Functions for Firebase: Disponibiliza

12

Figura 4 - Gerenciador do Cloud Storage. Fonte: Firebase (2019)

Page 14: Desenvolvimento de Aplicativo de Carona Solidária ... · Figura 7 - Gerenciador do Firebase Crash Reporting. Fonte: Firebase (2019) h) Cloud Functions for Firebase: Disponibiliza

13

e) Firebase Hosting:

Fornece a hospedagem de arquivos estáticos tais como: HTML, CSS,

JavaScript ou imagens, possibilitando conexão ao domínio pelo

gerenciador da ferramenta, conforme figura 5.

Figura 5 - Gerenciador do Firebase Hosting. Fonte: Firebase (2019)

Page 15: Desenvolvimento de Aplicativo de Carona Solidária ... · Figura 7 - Gerenciador do Firebase Crash Reporting. Fonte: Firebase (2019) h) Cloud Functions for Firebase: Disponibiliza

14

f) Firebase Test Lab: Possui dispositivos para testar as aplicações

conforme a figura 6.

Figura 6 - Painel inicial do Test Lab. Fonte: Firebase (2019)

g) Firebase Crash Reporting: Fornece um rastreamento de todas as falhas

e as guarda no Firebase Console (Gerenciador do Firebase).

Page 16: Desenvolvimento de Aplicativo de Carona Solidária ... · Figura 7 - Gerenciador do Firebase Crash Reporting. Fonte: Firebase (2019) h) Cloud Functions for Firebase: Disponibiliza

15

Figura 7 - Gerenciador do Firebase Crash Reporting. Fonte: Firebase (2019)

h) Cloud Functions for Firebase: Disponibiliza a elaboração de códigos que

são acionados a partir de eventos em elementos do Firebase, como por

exemplo: mudanças no Cloud Firestore que enviam mensagem ao

usuário através Firebase Cloud Messaging. (MONOREY:2017). A figura

8 ilustra seu painel de funções.

Figura 8 - Gerenciador do Cloud Functions. Fonte: Firebase (2019)

Page 17: Desenvolvimento de Aplicativo de Carona Solidária ... · Figura 7 - Gerenciador do Firebase Crash Reporting. Fonte: Firebase (2019) h) Cloud Functions for Firebase: Disponibiliza

16

2.1.2. Ferramentas para expansão da aplicação.

a) Firebase Cloud Messaging: Permite o envio de mensagens ao usuário.

Os dispositivos conectados recebem essas mensagens em menos de

500 ms (MONOREY:2017). Um exemplo de envio de mensagem pode

ser visto na Figura 9.

Figura 9 - Gerenciador do Cloud Messaging. Fonte: Firebase (2019)

Page 18: Desenvolvimento de Aplicativo de Carona Solidária ... · Figura 7 - Gerenciador do Firebase Crash Reporting. Fonte: Firebase (2019) h) Cloud Functions for Firebase: Disponibiliza

17

b) Firebase Remote Config: Serviço em nuvem que permite armazenar

variáveis em um servidor, possibilitando a modificação do

comportamento ou aparência do aplicativo sem precisar de uma

atualização. Por padrão o desconto do aplicativo é 0%, mas em uma

data específica para mudança pode ser programada. No projeto, um

parâmetro foi incluído para visualizar o gerenciamento, conforme figura

10.

Figura 10 – Gerenciador do Firebase Remote Config. Fonte: Firebase (2019)

Page 19: Desenvolvimento de Aplicativo de Carona Solidária ... · Figura 7 - Gerenciador do Firebase Crash Reporting. Fonte: Firebase (2019) h) Cloud Functions for Firebase: Disponibiliza

18

c) App Invites and Dynamic Links: Permite que o usuário escolha diversas

pessoas em uma lista ordenada para enviar o convite de instalação e

uso da aplicação. A tela do recurso é ilustrada na figura 11.

Figura 11 – Página inicial do Gerenciador do Dynamic Links. Fonte: Firebase (2019)

d) Earning with AdMob: recurso para inserção de anúncios em banner,

vídeos ou anúncios nativos no aplicativo, possibilitando também a

análise através de um gráfico gerado pelo próprio Firebase em relação

às propagandas.

e) Google Analytics for Firebase: Identifica qual é o público que mais utiliza

a aplicação, ou o que menos utiliza, podendo ser um indicador para

futuras modificações.

Page 20: Desenvolvimento de Aplicativo de Carona Solidária ... · Figura 7 - Gerenciador do Firebase Crash Reporting. Fonte: Firebase (2019) h) Cloud Functions for Firebase: Disponibiliza

19

2.2. VISUAL STUDIO CODE (VSCODE)

Ferramenta de criação do código para diversas plataformas, tais

como: web, mobile e em nuvem, e adequação para os sistemas

operacionais Windows, Linux e OS X. O VSCode.

Seu ambiente é baseado em pastas, o que facilita o

desenvolvimento e fornece extensão de recursos internos, linguagens

personalizadas, coloração de sintaxe, ferramentas de edição, depuradores

e outras extensões. (DEL SOLE: 2016, p.9). Permite, também, a escrita dos

códigos na linguagem dart para o desenvolvimento de telas e funções da

aplicação.

A coloração de sintaxe torna-se apropriada para as linguagens dos

códigos desenvolvidos. Pode-se, também, definir as próprias regras de realce

de cor quando são adicionadas linguagens de desenvolvimento

personalizadas.

Page 21: Desenvolvimento de Aplicativo de Carona Solidária ... · Figura 7 - Gerenciador do Firebase Crash Reporting. Fonte: Firebase (2019) h) Cloud Functions for Firebase: Disponibiliza

20

2.3. FLUTTER

A Google foi uma das últimas grandes empresas a ingressar no

mercado de desenvolvimento de aplicativos móveis de código aberto. Entre

seus recursos para desenvolvimento está o Flutter, que é um SDK de

aplicativos para dispositivos móveis para criar aplicativos de alta fidelidade

para iOS e Android a partir de uma única base de código, o que proporciona

aos desenvolvedores de aplicativos de alto desempenho que suportam

compilação JIT (Just in Time), e acelera o processo de teste durante a

criação de uma aplicação (JULIÁN: 2018). No projeto proposto, ele é

utilizado para acessar as bibliotecas que contém widgets, que descrevem

como deve ser a visualização das telas, considerando sua configuração e

estado atuais. Quando o estado de um widget é alterado, ele recria sua

descrição, necessária na árvore de renderização subjacente para a

transição de um estado para o próximo. (FLUTTER-DEV: 2019)

Page 22: Desenvolvimento de Aplicativo de Carona Solidária ... · Figura 7 - Gerenciador do Firebase Crash Reporting. Fonte: Firebase (2019) h) Cloud Functions for Firebase: Disponibiliza

21

2.4. DART

A ascensão das páginas web mudaram o panorama de

desenvolvimento de software e os navegadores são plataformas utilizadas

em grande variedade de aplicativos. Os dispositivos móveis, cada vez mais

presentes na vida das pessoas, também impactaram na maneira do

desenvolvimento do software. O Dart fornece uma plataforma destinada a

suportar vários tipos de aplicativos e acesso fácil às instalações que novas

plataformas exigem. Essa linguagem é orientada a objetos, ou seja, todos

os valores que um programa Dart manipula no tempo de execução são

objetos, desde dados elementares, como números, a valores booleanos.

O Dart adota um modelo de objeto uniforme e facilita a tarefa do

implementador de sistema (BRACHA: 2016). O recurso Flutter é escrito em

dart e utiliza essa linguagem para o acesso a suas bibliotecas.

Page 23: Desenvolvimento de Aplicativo de Carona Solidária ... · Figura 7 - Gerenciador do Firebase Crash Reporting. Fonte: Firebase (2019) h) Cloud Functions for Firebase: Disponibiliza

22

Page 24: Desenvolvimento de Aplicativo de Carona Solidária ... · Figura 7 - Gerenciador do Firebase Crash Reporting. Fonte: Firebase (2019) h) Cloud Functions for Firebase: Disponibiliza

23

3. ANÁLISE DE REQUISITOS

3.1. SITUAÇÃO PROPOSTA

O objetivo do projeto foi a elaboração de um aplicativo que

disponibilizasse a comunicação entre alunos interessados em deslocar-se para

e da Faculdade de Tecnologia de Sorocaba como caronistas de alunos com

automóveis. Com as ferramentas descritas acimas, criamos um sistema que

tem as seguintes características listadas abaixo.

3.2. REQUISITOS FUNCIONAIS

3.2.1. Descrição dos Requisitos Funcionais

Tabela 1

id Descrição

RF1 Cadastrar Pessoa

RF2 Cadastrar Carro

RF3 Editar Oferta de Carona

RF4 Anunciar Oferta de Carona

Page 25: Desenvolvimento de Aplicativo de Carona Solidária ... · Figura 7 - Gerenciador do Firebase Crash Reporting. Fonte: Firebase (2019) h) Cloud Functions for Firebase: Disponibiliza

24

3.2.2. Diagrama de Casos de Uso de Alto Nível

Figura 12

3.2.3. Diagrama de Casos de Uso de Baixo Nível

Tabela 2 (Caso 1)

Nome do caso de uso Cadastrar Pessoa

Caso de uso geral

Ator principal Usuário

Ator secundário

Resumo Cria conta de usuário para acessar a aplicação.

Pré-condição

Possuir as seguintes informações válidas: CPF, E-mail, e RA(Registro do Aluno) que seja compatível com o registro da Fatec cursada.

Pós-condição

Ações do ator Ações do sistema

1 - Abre o aplicativo

2 – Acessa Criar Conta

3 – Preenche com os Dados Necessários

4 – Realiza a validação dos dados

Page 26: Desenvolvimento de Aplicativo de Carona Solidária ... · Figura 7 - Gerenciador do Firebase Crash Reporting. Fonte: Firebase (2019) h) Cloud Functions for Firebase: Disponibiliza

25

5 – Cadastra o Usuário no Banco de dados

Tabela 3 (Caso 2)

Nome do caso de uso Cadastrar Carro

Caso de uso geral

Ator principal Usuário

Ator secundário

Resumo Cadastra um carro para poder oferecer carona aos alunos.

Pré-condição Possuir as seguintes informações válidas: CNH; necessário ter um cadastro no aplicativo

Pós-condição

Ações do ator Ações do sistema

1 – Acessar a aba meus carros cadastrados

2 – Clicar em Novo Carro

3 – Preenche os campos conforme necessário

4 – Realiza a validação dos dados

5 – Cadastra o Carro no Banco de dados

Tabela 4 (Caso 3)

Nome do caso de uso Editar Oferta de Carona

Caso de uso geral

Ator principal Usuário

Ator secundário

Resumo Realiza a edição da carona já cadastrada

Pré-condição Possuir uma carona cadastrada

Pós-condição

Ações do ator Ações do sistema

Page 27: Desenvolvimento de Aplicativo de Carona Solidária ... · Figura 7 - Gerenciador do Firebase Crash Reporting. Fonte: Firebase (2019) h) Cloud Functions for Firebase: Disponibiliza

26

1 – Acessa a aba meus anúncios publicados

2 – Clicar na carona desejada

3 – Atualiza os campos conforme a necessidade

4 – Realiza a validação dos dados

5 – Atualiza a carona no Banco de dados

Tabela 5 (Caso 4)

Nome do caso de uso Anunciar Oferta de Carona

Caso de uso geral

Ator principal Usuário

Ator secundário

Resumo Realiza o cadastro de uma carona

Pré-condição Possuir um carro cadastrado

Pós-condição

Ações do ator Ações do sistema

1 – Acessa a aba meus anúncios publicados

2 – Clicar em Nova Carona

3 – Preenche os campos conforme a necessidade

4 – Realiza a validação dos dados

5 – Cadastra a carona no Banco de dados

3.3. REQUISITOS NÃO FUNCIONAIS

3.3.1. Tempo de Resposta

O tempo de resposta da exibição de informações e conclusão de

atualizações, cadastros e exclusões varia de acordo com a quantidade de

Page 28: Desenvolvimento de Aplicativo de Carona Solidária ... · Figura 7 - Gerenciador do Firebase Crash Reporting. Fonte: Firebase (2019) h) Cloud Functions for Firebase: Disponibiliza

27

dados inserida no banco de dados e com a qualidade de taxa de transferência

de informações da conexão de rede. O tempo médio é de 1 a 5 segundos.

3.3.2. Espaço na memória

A quantidade média de memória RAM utilizada é de 160 mb.

3.3.3. Requisitos de Armazenamento

Tamanho do aplicativo no sistema: 123 MB

3.3.4. Configurações mínimas do dispositivo móvel

Tabela 6

Tabela 7

Rede móvel Quad Band (850/900/1800/1900), HSPA+, LTE

Conexões Wi-Fi 802.11 a/b/g/n. Bluetooth 4.0 com A2DP

GPS A-GPS/GLONASS

Processador 1.3 GHz Dual Core, 64 bits, Cyclone Apple A7

GPU PowerVR (Series 6) G6430

RAM 1 GB RAM

Rede móvel Quad Band (850/900/1800/1900), HSPA+, LTE

Conexões 802.11 a/b/g/n/ac, 4.0 com LE/EDR/A2DP, NFC

GPS A-GPS/GLONASS

Processador 1.7 GHz Dual Core, Snapdragon S4 Pro Qualcomm MSM8960

GPU Adreno 320

RAM 2 GB RAM

Page 29: Desenvolvimento de Aplicativo de Carona Solidária ... · Figura 7 - Gerenciador do Firebase Crash Reporting. Fonte: Firebase (2019) h) Cloud Functions for Firebase: Disponibiliza

28

3.4. RESULTADOS E DISCUSSÕES

3.4.1. Telas

Ao inicializar o aplicativo a primeira tela a ser visualizada é a de

entrada do usuário, conforme ilustrada na figura 13. Caso o usuário não possua

uma conta para acessar o aplicativo, é possível realizar seu cadastro na tela

demonstrada na figura 14.

Figura 13 Figura 14

Page 30: Desenvolvimento de Aplicativo de Carona Solidária ... · Figura 7 - Gerenciador do Firebase Crash Reporting. Fonte: Firebase (2019) h) Cloud Functions for Firebase: Disponibiliza

29

Se as informações forem inseridas corretamente, a próxima tela é a de

anúncios publicados de carona (figura 15) feitos por outros usuários. Os

anúncios feitos pelo usuário do sistema são visualizados também, conforme a

tela da figura Figura 16. Há a possibilidade de se criar um novo anúncio através

do botão “Nova Carona”, conforme figura 17.

Figura 15 Figura 16 Figura 17

Page 31: Desenvolvimento de Aplicativo de Carona Solidária ... · Figura 7 - Gerenciador do Firebase Crash Reporting. Fonte: Firebase (2019) h) Cloud Functions for Firebase: Disponibiliza

30

Na aba “Meus Carros Cadastrados”, estão disponíveis as descrições

de carros cadastrados pelo o usuário, conforme ilustra a figura 18. Ao clicar no

botão “Novo Carro”, o usuário será direcionado para a tela que realiza a adição

de um novo item, conforme demonstrado na figura 19.

Figura 18 Figura 19

Page 32: Desenvolvimento de Aplicativo de Carona Solidária ... · Figura 7 - Gerenciador do Firebase Crash Reporting. Fonte: Firebase (2019) h) Cloud Functions for Firebase: Disponibiliza

31

Na última aba do menu, na parte inferior da tela, está localizado um

ícone que direcionará o usuário à visualização dos dados pessoais

cadastrados, conforme ilustrado na figura 20. Para que os dados do usuário

sejam alterados, abre-se uma tela (conforme figura 21).

Figura 20 Figura 21

Page 33: Desenvolvimento de Aplicativo de Carona Solidária ... · Figura 7 - Gerenciador do Firebase Crash Reporting. Fonte: Firebase (2019) h) Cloud Functions for Firebase: Disponibiliza

32

4. SUGESTÕES PARA TRABALHOS FUTUROS

Há funcionalidades interessantes que podem ser incorporadas ao

aplicativo para que a experiência do usuário seja ainda mais agradável e

intuitivo. Uma delas é o emprego de API (Interface de programação de

aplicações) para a busca de endereços disponíveis quando o usuário realiza a

criação de um anúncio e preenche o campo endereço de origem e endereço de

destino.

Outra possível funcionalidade é a do usuário incluir uma foto do seu

carro na tela de meus carros cadastrados, bem como uma implementação

futura interessante ser a do envio de solicitação para preenchimento de vaga

da carona - caso o usuário que publicou a carona aceite a solicitação do

usuário solicitante - e uma vaga daquele anúncio seja subtraída.

As implementações sugeridas visam a facilidade do uso do aplicativo

por parte dos usuários, para que eles consigam encontrar caronas em um

ambiente que as centralize e possibilite a interação entre os usuários para que

outros detalhes sejam combinados.

Page 34: Desenvolvimento de Aplicativo de Carona Solidária ... · Figura 7 - Gerenciador do Firebase Crash Reporting. Fonte: Firebase (2019) h) Cloud Functions for Firebase: Disponibiliza

33

REFERÊNCIAS

BRACHA, G. The Dart Programming Language. Crawfordsville: Pearson Education, 2016.

CLOUD SERVICES, O. Saiba Mais Sobre a Arquitetura para Sign-On Único Federado. Disponível em: <https://docs.oracle.com/pt-br/solutions/fed-sso-options-cloud-customers/index.html#GUID-E61A0BEF-25BC-4DDB-85E6-D5E78BD260A9>. Acesso em: 10 de agosto de 2019.

DEL SOLE, A. Visual Studio Code Succinctly.New York: Syncfusion, 2016.

DEVELOPERS, G. Cloud Firestore. Disponível em: <https://firebase.google.com/docs/firestore/?hl=pt-br>. Acesso em: 18 de julho de 2019.

___________________ Recuperar dados. Disponível em: < https://firebase.google.com/docs/database/admin/retrieve-data?hl=pt-br>. Acesso em: 10 de agosto de 2019.

___________________ Privacidade e segurança no Firebase, 26 de julho de 2019. Disponível em: <https://firebase.google.com/support/privacy?hl=pt-br>. Acesso em: 12 de agosto de 2019.

___________________System Requirements. Disponível em: < https://developer.android.com/studio>. Acesso em: 20 de julho de 2019.

FLUTTER-DEV. Introduction to widgets. Disponível em: < https://flutter.dev/docs/development/ui/widgets-intro>. Acesso em: 15 de agosto de 2019.

LEMAY, L. Aprenda em 21 Dias Java 2. Rio de Janeiro: Elsevier Editora Ltda, 2005.

LEITÃO, A. Liguagem de Programação, 1995. Disponível em: < http://www.dca.fee.unicamp.br/courses/EA072/lisp9596/node2.html>. Acesso em: 20 de julho de 2019.

MACHADO, J. Gerenciamento de Dados em Nuvem: Conceitos, Sistemas e Desafios. Universidade Federal do Ceará, 2011.

MATHIOS, G. Análise de dados no banco de dados do Google em tempo real. Tese (Pós-Graduação). Universidade do Pireu, 2017.

MICROSOFT. Requirements for Visual Studio Code, 9 de abril de 2019. Disponível em: < https://code.visualstudio.com/docs/supporting/requirements>. Acesso em: 20 de julho de 2019.

MONOREY, L. The Definitive Guide to Firebase. New York: Springer+Business Media, 2017.

Page 35: Desenvolvimento de Aplicativo de Carona Solidária ... · Figura 7 - Gerenciador do Firebase Crash Reporting. Fonte: Firebase (2019) h) Cloud Functions for Firebase: Disponibiliza

34

RAFAEL, J. Emulador de Nintendo implementado em Python. Faculdade de Computação - Universidade Federal de Mato Grosso do Sul.

REIS, F. O que são Bancos de Dados NoSQL, 14 de abril de 2018. Disponível em: <http://www.bosontreinamentos.com.br/nosql/bancos-de-dados-o-que-e-nosql/>. Acesso em: 18 de julho de 2019.