Skip to content

Latest commit

 

History

History
567 lines (451 loc) · 15.3 KB

README-pt-br.md

File metadata and controls

567 lines (451 loc) · 15.3 KB

GitHub repo size MIT license GitHub top language

GitHub Repo stars GitHub forks

Seu template Electron com React JS pronto para aproveitar sua criatividade.

Sumário

O que é isso?

Este aplicativo é basicamente um projeto template para ajudá-lo com alguns recursos básicos que normalmente precisamos desenvolver, como um collapsed menu, switch theme e um login simples. Então, criei este aplicativo para aproveitar melhor o tempo em coisas novas. Além disso, você pode verificar outros componentes, como Linha (Row), Coluna (Column), Caixa (Box), Switch Button, Barra de ferramentas (Toolbar), Título (Title) and Subtítulo (Subtitle).


Tente você mesmo

Lembrando que este aplicativo é baseado em Electron.js, então vamos precisar do Node instalado na máquina. Depois disso, você pode usar o editor de desenvolvimento de sua preferência, no meu caso, usei o Visual Studio Code.

Se você não quiser ler a documentação aqui, criei algumas páginas dentro do aplicativo com instruções como esta. Então, basta fazer o clone e seguir os passos de instalação abaixo.

# Clone o repositório
$ git clone https://github.com/mcosta21/starctron.git

# Acesse a pasta
$ cd starctron

# Instale as dependências
$ yarn or npm install

# Inicie o aplicativo
$ yarn electron-dev or npm run electron-dev

Estrutura de Arquivo

starctron
│
└─── src
│   │   index.js
│   │   routes.js
│   │
│   └─── assets
│   │
│   └─── components
│       └───  Body
│       └───  Menu
│       └───  SwitchButton
│       │   ...
│   │
│   └─── contexts
│       │   LoginContext.js
│       │   MenuContext.js
│       │   ThemeContext.js
│   │
│   └─── pages
│       └───  Home
│       └───  SignIn
│       └───  Layout
│       │   ...
│   │
│   └─── screen
│   │
│   └─── services
│   │
│   └─── styles
│       │   GlobalStyles.js
│       │   theme.js
│
│   .env
│   .gitignore
│   package.json
│   README.md
│   README-pt-br.md   


Documentação

🤖 Tecnologias

Electron

React JS

React Icons

React Router

Styled Components

✨ Layout

Dentro do aplicativo, você pode utilizar alguns componentes que o ajudarão a criar seu conteúdo, como inserir uma caixa, com linhas e colunas. Por exemplo:

Linha com 1 coluna


  <Row height={100}>
    <Column>
      <Box>
        <h3>100%</h3>
      </Box>
    </Column>
  </Row>

Linha com 2 colunas


  <Row height={100}>
    <Column width={50}>
      <Box>
        <h3>50%</h3>
      </Box>
    </Column>
    <Column width={50}>
      <Box>
        <h3>50%</h3>
      </Box>
    </Column>
  </Row>

Linha com 3 colunas proporcionais


  <Row height={100}>
    <Column>
      <Box>
        <h3>33%</h3>
      </Box>
    </Column>
    <Column>
      <Box>
        <h1>33%</h1>
      </Box>
    </Column>
    <Column>
      <Box>
        <h1>33%</h1>
      </Box>
    </Column>
  </Row>

Linha com 2 colunas com tamanhos distintos


  <Row height={100}>
    <Column width={70}>
      <Box>
        <h3>70%</h3>
      </Box>
    </Column>
    <Column width={30}>
      <Box>
        <h3>30%</h3>
      </Box>
    </Column>
  </Row>

2 Linhas com 2 colunas com tamanhos distintos


  <Row height={130}>
    <Column width={20}>
      <Box>
        <h3>20%</h3>
      </Box>
    </Column>
    <Column width={80}>
      <Box>
        <h3>80%</h3>
      </Box>
    </Column>
  </Row>
  <Row height={130}>
    <Column width={40}>
      <Box>
        <h3>40%</h3>
      </Box>
    </Column>
    <Column width={30}>
      <Box>
        <h3>30%</h3>
      </Box>
    </Column>
    <Column width={30}>
      <Box>
        <h3>30%</h3>
      </Box>
    </Column>
  </Row>

📑 Itens do menu

Navegando para a pasta de componentes, você encontrará o componente Menu. Observe que sua estrutura é baseada na constante options, que serão renderizadas por um map. Então, para cada opção, um Link React-router-dom está disponível com os seguintes atributos:

const options = [
        {
        "title": "Home",
        "link": "/home",
        "icon": "<FaHome size={20}/>"
        }
];

Por fim, basta acessar o arquivo routes.js na raiz do projeto, e incluir as novas rotas para cada página, correlacionando-as com o atributo link da constante options.



🌐 Contexto

A API Context é como o React disponibiliza os dados dos componentes pai para filho por meio das props. Assim, não é necessário passar explicitamente as props em cada componente.

Então, dentro da pasta src, você pode ver os contextos criados e que estão em uso no aplicativo, por exemplo:

LoginContext Esse context é responsável por manter o usuário da sessão em todos os componentes.
MenuContext Esse context é utilizado pelo componente Menu para manter o estado de largura ministrado pelo atributo isSmallMenu.
ThemeContext Esse context é responsável por gerenciar o tema da aplicação entre light e dark.


👤 Login de Usuário

Conforme declarado na página Context API, criamos um sistema de login simples para manter o usuário em toda a sessão usando a LoginContext, então você pode acessar a pasta de services e personalizar o user.js com seu próprio método para se conectar ao banco de dados e integrar nas páginas SignIn e ForgotPassword.

    {
        "id": "3",
        "username": "mcosta",
        "password": "12345",
        "email": "marcioc424@gmail.com",
        "photo": "https://avatars0.githubusercontent.com/u/30120305?s=400&u=2c33a6777ec253d664a59108230924e555c89070&v=4"
    }

No arquivo routes.js, note que tem um redirecionamento para a página SignIn quando não há usuário na sessão, com isso, basta comentar essa linha e partir para o desenvolvimento.


🌓 Tema

Acessando a pasta styles, você pode customizar todas as cores disponíveis no aplicativo.

No arquivo GlobalStyles.js contém todos os estilos aplicados ao tema global. E no arquivo theme.js, contém as variáveis referentes aos temas light e dark, além de um conjunto de cores auxiliares.

Light theme

export const lightTheme = {
  name: 'light',
  backgrounds: {
    lightest:  '#FFFFFF',
    lighter: '#FEFEFE',
    dark: '#F5F5FC',
    darker: '#D8DCF3',
    darkest: '#CCC8C8',
  },
  colors: {
    lightest: '#252131',
    lighter: '#201B2D',
    dark: '#31303C',
    darker: '#15121E',
    darkest: '#13111B'
  },
  colorsTheme  
}

Dark theme

export const darkTheme = {
  name: 'dark',
  backgrounds: {
    lightest: '#252131',
    lighter: '#201B2D',
    dark: '#191622',
    darker: '#15121E',
    darkest: '#13111B'
  },
  colors: {
    lightest:  '#FFFFFF',
    lighter: '#FEFEFE',
    dark: '#F5F5FC',
    darker: '#D8DCF3',
    darkest: '#CCC8C8',
  },
  colorsTheme
}

Global colors

export const colorsTheme = {
    white: '#FFF',
    grey: '#F7F8FC',
    opaque: '#41414D',
    purple: '#',
    purpleDark: '#5A4B81',
    green: '#6CCACE',
    orange: '#E89E64',
    pink: '#FF79C6',
    cyan: '#78D1E1',
    red: '#E96379',
    yellow: '#FFDD67',
    blue: '#4849FF'
}

O arquivo theme.js é o mais importante nesse assunto, dado que o utilizamos no ThemeContext para gerenciar o tema atual da aplicação, como podemos observar ao clicar num SwitchButton. Então, caso queira customizar os temas, basta alterar os atributos de cada variável.


🏆 Crie o Aplicativo

A melhor parte do projeto é a pré-configuração já feita, isso visa facilitar sua vida e não te fazer perder tempo com certas configurações de projeto.

Então, antes de partirmos para o processo de build, será necessário fazer pequenas alterações no aplicativo. Claro que isso deve ser feito se você quiser o nome e icones personalizados a seu gosto.

Primeiramente, faremos algumas alterações nos arquivos contidos na pasta public. Então localize o arquivo index.html e altere a tag 'title' para o nome do seu aplicativo.

<title>{ your_app_name }</title>

Após isso, acesse o arquivo de configurações do electron, e nele, você pode customizar diversas coisas como tamanho da janela, menu e icone.

A função createWindow possui atributos como width, height e icon, customize-os a vontade. Note também que, mesmo informando os atributos de tamanho da janela, a chamada mainWindow.maximize() mantém a tela em maximaze, caso queira mudar isso, apenas remova o comando.

Agora que fizemos essas personalizações, vamos para o processo de build do aplicativo. Então, acesse o arquivo package.json. Nesse arquivo, você verá todas as informações necessárias do aplicativo, tais como nome, descrição, dependências, scripts e etc. Então, lembre-se de alterações os seguintes atributos:

{
  "name": "your_app_name",
  "description": "your_app_description",
  "author": "your_name",
}

E o mais importante, o atributo build contém o appId, não se esqueça de troca-lo, caso esteja fazendo seu próprio aplicativo, no contrário, o instalador irá substitui-lo.

{
  "build": 
        { 
          "appId": "your_unique_app_id" 
        }
}

Finalmente, abra o terminal e execute o seguinte comando:

yarn electron-pack

npm run electron-pack

Após finalizar o processo, será criado uma pasta chamada dist, nela haverá o arquivo instalador pronto para uso 🚀.


Leia isso em outro idioma

Inglês / English

Baixar

Download for Windows

Autor

Marcio Costa @mcosta21

Marcio's github stats

💪

As contribuições são bem-vindas!

Feito com ❤️ e JavaScript.