Git Product home page Git Product logo

weather-local-rn's Introduction

Aplicativo

Build Status [WIP]

Platform       Build Status (Master)  
Android       Build status
iOS           Build status

Se for testar:

git clone https://github.com/reinaldonetof/weather-local-rn WeatherLocal
cd WeatherLocal && yarn install

Screenshots:

Android:
tela-Loading tela-Result

iOS:
tela-Loadingi-OS tela-Result-IOS

Video: LINK YOUTUBE

Arquitetura

A aplicação deve rodar com os componentes de forma independente e desacoplados uns dos outros, permitindo que caso uma seção da aplicação fique indisponível não pare a aplicação.

Programação Funcional

A base da programação funcional descreve que as funções devem se manter isoladas e incapazes de impactar outras partes do sistema. Funções puras são estáveis, consistentes e previsíveis. A baixo segue um conceito básico sobre programação funcional.

// Função não pura:

const PI = 3.14;
const calculateAreaNotPure = (radius) => radius * radius * PI;
calculateAreaNotPure(10); // 314.0
// Função pura:

const PI = 3.14;
const calculateAreaPure = (radius, pi) => radius * radius * pi;
calculateAreaPure(10, PI); // 314.0

Imutabilidade

A imutabilidade do código, significa que apos a criação o estado não pode ser alterado. Para alterar um estado imutável, deve se criar um estado com um novo valor.

// Imutabilidade:

let list = [1, 2, 3, 4, 5];
let accumulator = 0;

const sum = (list, accumulator) => {
  if (list.length === 0) return accumulator;
  return sum(list.slice(1), accumulator + list[0]);
};

sum(list, accumulator); // 15
list; // [1, 2, 3, 4, 5]
accumulator; // 0

Transparência referencial

Transparência referencial, a função da uma mesma entrada produzira uma mesma saída. Pode se afirmar que: funções puras + imutabilidade = transparência referencial.

// Tranparência referencial:

const square = (n) => n * n;

square(2); // 4
square(4); // 16
square(8); // 64

Aplicando os conceitos

Este tópico define como os conceitos de arquitetura serão aplicados ao escopo do React-Native, detalhes como de como a arquitetura será implementada:

Dependências

  • Node
  • React-Native
  • React-Navigation
  • Styled-Components
  • Styled-System
  • SWR
  • Axios
  • Husky
  • Lint-Staged
  • Prettier
  • Eslint
  • React Native Geolocation Service

Estrutura

A ideia é usar o princípio da separação de preocupações (principle of separation of concerns) para afastar a lógica de negócios das rotas, no caso as views (screens).

 src
  └─ assets				# Estrutura de arquivos locais.
  └─ controller			# Regras de negócio.
  └─ dtos          # Interfaces para Typescript.
  └─ hooks				# Hooks customizados e Context.
  └─ routes				# Definação das rotas.
  └─ themes				# Atomic Design System.
  	 └─ atoms
  	 └─ molecules
  	 └─ organisms
  	 └─ templates
  	 └─ theme.js	    # Definição do tema.
  └─ utils				# Funções necessárias em diversos lugares com seu devido teste unitário.
  └─ views				# Telas da aplicação.
  └─ App.tsx			    # Index do módulo src.

weather-local-rn's People

Contributors

reinaldonetof avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.