• Nenhum resultado encontrado

5 DESENVOLVIMENTO DA PROPOSTA

5.1 FERRAMENTAS E TECNOLOGIAS

Nesta seção do trabalho, são apresentadas as ferramentas e tecnologias utilizadas durante a especificação e desenvolvimento do sistema proposto. Também são expostos os motivos que levaram à escolha de cada ferramenta e quais funcionalidades foram utilizadas. A figura 17 a seguir demonstra todas as ferramentas.

Figura 17 - Ferramentas utilizadas

5.1.1 Dart

Segundo o autor Zammetti (2020), a linguagem de programação Dart foi criada pela Google em 2011, com seu lançamento oficial da versão 1.0 em novembro de 2013. Dart é uma linguagem de fácil entendimento e muito semelhante a linguagem C, quando comparado com sua sintaxe. Dart está cada dia mais popular, alavancado pelo crescimento do framework flutter, que utiliza a linguagem como base e está detalhado na próxima seção.

O autor também elenca outros tipos de uso do Dart que auxiliaram para o crescimento da linguagem, como o uso para aplicativos web, códigos de servidor, aplicativos para internet das coisas (IoT) e assim por diante.

Dentre todos os aspectos da linguagem, vale ressaltar o forte uso da orientação a objetos, auxílio de coleta de lixo (Garbage-collected) e robusto mecanismo de concorrência com alto desempenho e redução de falhas.

Além dos motivos já citados anteriormente, a escolha da linguagem tem uma grande influência do framework flutter, utilizado no desenvolvimento da aplicação proposta e por possuir uma curva de aprendizado significativamente menor em relação a outras linguagens.

5.1.2 Flutter

Para Flutter (2020, tradução nossa), Flutter é um kit de ferramentas de interface do usuário do Google, para construir belos aplicativos compilados nativamente para dispositivos móveis, web e desktop a partir de uma única base de código. O framework foi desenvolvimento utilizando a linguagem Dart, herdando todos os benefícios da linguagem, como alta performance e alta produtividade. O lançamento da primeira versão do framework foi realizada em 4 de dezembro de 2018 segundo o autor Zammettin (2020).

A escolha do framework Flutter para o desenvolvimento do sistema foi definida por ser de código aberto, extremamente fácil de aprender, com suporte à multiplataformas, criação de interfaces responsivas e criativas, alta performance equiparada com as linguagens

nativas de cada plataforma e alta produtividade, pois possui mecanismo que evita a compilação ou carregamento total do sistema, otimizando o tempo de codificação.

5.1.3 Visual Studio Code

O Visual Studio Code é um editor de código-fonte que roda na área de trabalho disponível para Windows, macOS e Linux. Ele possui suporte nativo para várias linguagens de programação, mas torna-se poderoso ao permitir extensões que possibilitam o suporte a outras linguagens, desde da edição do código fonte até a depuração da aplicação.

Foi utilizado a ferramenta durante todo o processo de desenvolvimento da aplicação, por ser de código aberto e possuir suporte para edição e depuração de aplicativos em Flutter e Dart, através de extensões que facilitam e possibilitam o reconhecimento do framework e a sintaxe da linguagem.

5.1.4 Android Studio

“O Android Studio é o ambiente de desenvolvimento integrado (IDE, na sigla em inglês) oficial para o desenvolvimento de apps para Android”. (ANDROID, 2020).

Oferece também além do editor de código, recursos que auxiliam no aumento da produtividade no desenvolvimento de apps Android, como compilação flexível, emulador rápido de dispositivos móveis, frameworks e ferramentas de testes, entre outros.

O principal motivo do uso do Android Studio no trabalho, foi a utilização do Android Studio Emulator, uma ferramenta muito poderosa, que permite emular diversos dispositivos com versões diferentes de Android, sem a necessidade de um dispositivo físico conectado ao computador, contribuindo para um desenvolvimento rápido e fácil.

5.1.5 Firebase

Para Flutter (2020, tradução nossa), o Firebase é definido como:

[…] uma plataforma de desenvolvimento de aplicativos Back-as-a-Service (BaaS) que fornece serviços de back-end hospedados, como banco de dados em tempo real, armazenamento em nuvem, autenticação, relatórios de falhas, aprendizado de máquina, configuração remota e hospedagem para seus arquivos estáticos.

Adquirida pela Google em 2014, a plataforma destaca-se por possuir vários serviços integrados ideais para criação rápida de aplicativos móveis e web pois, assume toda infraestrutura com escalonamento automático dos serviços conforme a necessidade.

A plataforma foi escolhida por possuir todos os serviços necessários para a aplicação proposta, facilitando a montagem de toda infraestrutura e foco no desenvolvimento. Outro fator importante para a escolha, foi a existência de plugins do Firebase para o framework Flutter, que facilitou muito a utilização dos serviços de autenticação, banco de dados e armazenamento de conteúdo (fotos) detalhados a seguir.

5.1.5.1 Firebase Authentication

De acordo com Firebase (2020), “O objetivo do Firebase Authentication é facilitar o desenvolvimento de um sistema de autenticação seguro, além de melhorar a experiência de login e integração para os usuários finais.”.

Ele oferece diversos métodos de autenticação como e-mail/senha (método utilizado no sistema desenvolvido), por telefone, login do Google, Twitter, Facebook, GitHub e outros.

5.1.5.2 Firebase Cloud Firestore

“O Cloud Firestore é um banco de dados de documentos não relacional (NoSQL) que permite armazenar, sincronizar e consultar dados facilmente para seus apps para dispositivos móveis e da Web, em escala global.” (FIREBASE, 2020). Hospedado na nuvem, o Firestore oferece maior escalabilidade, além de possuir sincronização ao vivo e consultas eficientes.

5.1.5.3 Firebase Cloud Storage

Conforme Firebase (2020), o Cloud Storage foi criado com o intuito de ajudar a armazenar e disponibilizar conteúdo, como imagens, áudios e vídeos, com facilidade e rapidez. Com o pacote de desenvolvimento de software Google do Firebase para o Cloud Storage, é possível garantir toda a segurança nos processos de upload e download de arquivos, independentemente da qualidade de rede. Também oferece controle de acesso integrado com o Firebase Auth, restringindo acesso ao conteúdo a usuários autenticados.

5.1.6 Enterprise Architect

Enterprise Architect (EA) é definido segundo Sparx Systems (2020, tradução nossa) como “[…] uma ferramenta abrangente de análise e design UML para UML, SysML, BPMN e muitas outras tecnologias. Abrangendo o desenvolvimento de software desde a coleta de requisitos até para as etapas de análise, modelos de projeto, testes e manutenção.“

O EA é constituído por uma gama de recursos de ponta que visam ajudar no gerenciamento das informações. Baseia-se em padrões abertos existentes e nas melhores práticas, o EA pode ser utilizado para construção de pequenos modelos até grandes sistemas,

concedendo suporte à modelagem de ciclo de vida completo para sistemas de negócios de TI e engenharia de softwares.

Foi escolhido o EA por ser uma ferramenta que oferece todos os recursos necessários para especificação de um sistema, desde do levantamento de requisitos até a modelagem do banco de dados e principalmente por ser utilizada em várias matérias ao longo da graduação.

5.1.7 Balsamiq wireframes

De acordo com Balsamiq (2020, tradução nossa), o Balsamiq wireframes é uma ferramenta rápida que reproduz a experiência de desenhar em um bloco de notas ou quadro branco, usando um computador para criação de interfaces de usuário de baixa fidelidade. Por ser uma ferramenta rápida com baixa fidelidade, ele obriga a se concentrar na estrutura e no conteúdo, descartando longos debates sobre cores e detalhes da interface.

Balsamiq wireframes foi escolhido pela simplicidade e agilidade no desenvolvimento de protótipos de tela, facilitando a validação do protótipo com o usuário.

Documentos relacionados