UNPKG

coral-ui

Version:

Biblioteca de components criada pelo Design System para os produtos da Pulse criada em react-native

142 lines (103 loc) 5.04 kB
# DS Mobile <p> <!-- iOS --> <img alt="Supports Expo iOS" longdesc="Supports Expo iOS" src="https://img.shields.io/badge/iOS-4630EB.svg?style=flat-square&logo=APPLE&labelColor=999999&logoColor=fff" /> <!-- Android --> <img alt="Supports Expo Android" longdesc="Supports Expo Android" src="https://img.shields.io/badge/Android-4630EB.svg?style=flat-square&logo=ANDROID&labelColor=A4C639&logoColor=fff" /> <!-- Web --> <img alt="Supports Expo Web" longdesc="Supports Expo Web" src="https://img.shields.io/badge/web-4630EB.svg?style=flat-square&logo=GOOGLE-CHROME&labelColor=4285F4&logoColor=fff" /> </p> <!-- <img alt="expo examples" src="https://i.imgur.com/j253BeR.png"> --> ## Features - Expo - Typescript - Storybook web/mobile - Shopify/Restyle - Eslint/Prettier - Theme-based - Husky - Bob - Builder Biblioteca de componentes em React native feita com a biblioteca Restyle do Shopify, permitindo e facilitando **desenvolvimento baseado em temas** e **props utilitárias de estilo**. ```tsx <Box backgroundColor="primary" mt={2} p={3}> <Text color="textInverted" fontFamily="Roboto, sans-serif"> Branded box with white text inside </Text> </Box> ``` > Este setup utiliza Storybook com Expo. ## Iniciando 1. `yarn` - Instala as dependências 1. `yarn web` - Inicia o Storybook em visualização Web no browser padrão 1. `yarn android` - Inicia o Storybook em visualização no dispositivo ou emulador Android 1. `yarn ios` - Inicia o Storybook em visualização no dispositivo ou emulador ios ## Consumindo a lib como cliente 1. `yarn add @ds/mobile --registry=http://verdaccio.mateus/` - Instalando a biblioteca 1. `yarn add typeface-{font-name}` ou `import /font/*.ttf` - Instalando a fonte de sua preferência react-native-vector-icons 1. `yarn add react-native-vector-icons` - Instale o pacote de icones 1. `npx react-native link react-native-vector-icons` faça o link dos icones e reinecie o emulador 1. Faça o import do `themeProvider` e o tema de sua preferência utilizando o exemplo destacado abaixo: ```tsx import React from 'react'; import App from './App'; import {ThemeProvider, themeInstitucional, Box} from 'coral-ui'; const App = () => { return ( <ThemeProvider theme={themeInstitucional}> <App /> </ThemeProvider> ); }; export default App; ``` 1. `yarn start --reset-cache` inicie o servidor limpando o cache do metro bundle 2. `yarn android` instale o .apk em modo debug 3. Enjoy 😎! ### Rodando em dispositivos nativos (Android/IOS) 1. `yarn start` - Inicia o Expo no browser 1. Espere o bundle da aplicação. Pode demorar um pouco. 1. Use o QR code do Expo para abrir a aplicação em um dispositivo (ou pressione `i` para abrir um simulador, caso esteja disponível) ### 📁 Estrutura de Arquivos ``` Storybook com Expo CLI ├── assets ➡️ Assets estáticos do projeto ├── App.tsx ➡️ Entry Point universal para aplicações Expo ├── app.config.js ➡️ Arquivo de configuração do Expo └── babel.config.js ➡️ Configuração do Babel (utiliza `babel-preset-expo`) ``` ### Adicionando stories ao Storybook 1. Crie um arquivo no diretório do componente chamado `ComponentName.stories.tsx`. 2. Utilizamos CSF (Component Story Format), que nos permite exportar stories e testar em outros contextos: ```js // Text.stories.tsx import React from "react"; import { storiesOf } from "@storybook/react-native"; // Import your component import Text from "./Text"; // Define your component and it's name export default { title: "Text", component: Text, }; // Stories export const Basic = () => <Text>What's up</Text>; export const Colored = () => <Text color="red">What's up</Text>; // Isto é necessário para ser mostrado no Expo // Adiciona todos os stories ao Storybook RN/Expo storiesOf("Text", module).add("Basic", Basic).add("Colored", Colored); ``` 3. Você deve conseguir visualizar o Storybook na web apenas com o comando `expo web`. Mas para vê-los nativamente, deve importar os stories diretamente no arquivo `stories/index.js`. Pronto! Agora você já deve ser capaz de visualizar os stories do seu componente no Storybook web e nativo. ### Semantic Release Este projeto está configurado com Semantic-release para versionar automaticamente baseado nos commits e banches. Está configurado também com a CLI do Commitzen (`yarn commit`), que cria um commit convencional padronizado. 1. Crie sua branch de trabalho: `git checkout -b name-here` 2. Faça suas mudanças. 3. `git add` seus arquivos. 4. `yarn commit` para rodar a CLI do Commitzen. Você poderá escolher entre feature, bug fix ou CI update, por exemplo. E adicionar sua mensagem de commit, assim como uma mensagem detalhada. Após criar sua branch, crie um pull request (PR). Uma vez aprovado, será movido para uma branch de release (como `next`), e eventualmente mergeado na master. ## Todo - [ ] Snapshot testing - [ ] Unit testing ## 📝 Notas - [Storybook React Native](https://storybook.js.org/docs/guides/guide-react-native/)