Home | Sprints | Requisitos | EAP | Arquitetura | Configuração | Endpoints | Mockups | Problemas |
---|
Tecnologias utilizadas no projeto
React Native
React é um framework JavaScript criado pelo Facebook para facilitar a construção de interfaces de usuário. React Native, da mesma empresa, nos permite criar aplicações mobile nativas utilizando JavaScript, na lógica, e React, para estruturar as views.
O stack do React Native é poderoso, pois nos permite utilizar ECMAScript 6, CSS Flexbox, JSX, diversos pacotes do NPM e muito mais. Sem contar que nos permite fazer debug na mesma IDE utilizada para o desenvolvimento nativo com essas plataformas (além de tornar o processo extremamente divertido).
O nome React Native pode trazer a ideia de que o código escrito no framework é convertido para a linguagem nativa do dispositivo, no caso do Android para a linguagem Java, por exemplo. Contudo, o que ocorre na verdade, na maior parte das plataformas, é um processo em que o JavaScript é executado em uma VM (máquina virtual) capaz de fazer e receber chamadas do hardware e dos módulos nativos do dispositivo.
O React traz um conceito de componentes, que possibilita modularizar a interface, criando comportamentos e atributos próprios para cada elemento (como um botão) de acordo com a plataforma utilizada e de acordo com a necessidade do software.
O React Native é usado por grandes empresas. Dentre as que mais se destacam estão o próprio Facebook, além do Instagram, Microsoft, Uber, Walmart e Airbnb. Isso mostra a confiabilidade da plataforma, impulsionando cada vez mais a sua adoção.
Um conceito que move o React Native é “learn once, write anywhere” porque quando um programador aprende a trabalhar com a versão web do framework (React), por exemplo, ele está apto a trabalhar com qualquer outra versão. Afinal de contas, os conceitos são sempre os mesmos, pois o que muda é o contexto em que se está trabalhando. No React Native, por exemplo, usamos uma View ou Text, enquanto no React (web) usaria uma div ou p, respectivamente.
Fontes: https://tableless.com.br/react-native-construa-aplicacoes-moveis-nativas-com-javascript/
https://www.devmedia.com.br/exemplo/como-comecar-com-react-native/52
Mongoose
Mongoose é uma biblioteca do Nodejs que proporciona uma solução baseada em esquemas para modelar os dados da sua aplicação. Ele possui sistema de conversão de tipos, validação, criação de consultas e hooks para lógica de negócios. Mongoose fornece um mapeamento de objetos do MongoDB similar ao ORM (Object Relational Mapping), ou ODM (Object Data Mapping) no caso do Mongoose. Isso significa que o Mongoose traduz os dados do banco de dados para objetos JavaScript para que possam ser utilizados por sua aplicação.
Fonte: http://nodebr.com/nodejs-e-mongodb-introducao-ao-mongoose/
Travis CI
O Travis CI é um serviço web de Integração Contínua na nuvem integrado com o GitHub. Ele é gratuito para repositórios públicos(travis-ci.org) e pago para repositórios privados(travis-ci.com). Foi desenvolvido em Ruby e seus componentes são distribuídos sob a licença MIT.
Atualmente ele tem suporte para as seguintes linguagens de programação: Android, C, C#, C++, Clojure, Crystal, D, Dart, Erlang, Elixir, F#, GO, Groovy, Haskell, Haxe, Java, Javascript, Julia, Objctive-C, Perl, Perl6, PHP, Python, R, Ruby, Rust, Scala, Smalltalk, Visual Basic.
Referência: https://pt.wikiversity.org/wiki/Travis_CI_-_GitHub
Heroku
Heroku é uma plataforma em nuvem baseada em sistemas de containers gerenciados, chamados de Dynos, possuidores de um ambiente de software plugável e configurável, preparados para rodar e depurar sistemas web em um número limitado de linguagens de programação. Uma característica atrativa dessa tecnologia é a facilidade de realizar deploy de sistemas, uma vez que o ambiente é preparado para as diversas linguagens suportadas. Por outro lado, a liberdade de configuração desses ambientes é limitada.
Estrutura do Heroku
Deploy
Em um primeiro nível o Heroku trabalha com a geração de build via command-line, Github ou integração continua. Para o Github é necessário dizer o repositório oficial e a branch o qual se deseja usar para o deploy, assim sempre que um push for realizado o heroku realizará deploy automaticamente.
Services
O Heroku conta por padrão com o postgres como sistema de banco de dados, e redis para servidor de estrutura de dados, gerenciando o armazenamento em memória dos Dynos. Esses dois serviços são open-source e tal como várias ferramentas web que o sistema possa demandar, podem ser substituídos ou adicionados via plugins. Dentre esses podemos encontrar pacotes de diversas licenças, alguns precisam de cadastro de cartão de crédito para serem utilizados, mesmo que sem taxa de pagamento necessariamente. Para ver todos os add-ons(plugins) disponíveis, acesse o link https://elements.heroku.com/addons.
Dynos
O componente central do Heroku é o Dyno. Um Dyno é um leve Linux container que executa um único comando especificado pelo usuário. Para ter a ideia básica do que é um Dyno, é suficiente que se imagine um ambiente virtualizado de configurações limitadas e intermediadas por agentes e configurações do Heroku. Os recursos também são limitados de acordo com um plano, onde a configuração mínima é o plano Free. Os Dynos podem ser dividos em três configurações: Web Dynos, Worker Dynos e One-off Dynos, cada um trabalha com diferentes responsabilidades em um aplicativo, podendo ser utilizados vários Dynos desse tipo, tal que o sistema ou a configuração demande e o plano seja suficiente. Existem muitas vantagens em se trabalhar na forma como o Heroku opera, como escalabilidade e segurança.
Referência: https://pt.wikiversity.org/wiki/Heroku