1.2.0 • Published 5 years ago

react-native-template-vife v1.2.0

Weekly downloads
3
License
MIT
Repository
github
Last release
5 years ago

npm npm GitHub issues GitHub last commit NPM

Tabela de Conteúdo

Sobre o Projeto

Este projeto visa a criação de um template que possa ser utilizado no momento de criação de projetos utilizando React Native, visto que o processo de instalação e configuração das libs no início de um projeto podem gerar certa complexidade e muitas vezes até erros que atrasam o processo, atrapalhando assim o fluxo de desenvolvimento.

Feito Com

Abaixo segue o que foi utilizado na criação deste template:

  • React Native - O React Native é um framework que permite o desenvolvimento de aplicações mobile usando Javascript e React;
  • React Navigation - O React Navigation surgiu da necessidade comunidade do React Native de uma navegação de forma fácil de se usar, e escrita toda em Javascript;
  • React Native Gesture Handler - API declarativa que permite a manipulação de toques e gestos no React Native;
  • Axios - O Axios é um cliente HTTP baseado em Promises para Browser e NodeJS;
  • Prop Types - Verificação de tipo em tempo de execução para propriedades (props) React e objetos semelhantes;
  • Reactotron - O Reactotron é um app Desktop para inspecionar projetos em React ou React Native. Está disponível para macOS, Linux e Windows;
  • Babel - O Babel é um compilador JavaScript gratuito e de código aberto e transpiler configurável usado no desenvolvimento de aplicações Javascript;
    • babel-eslint - Este pacote é um wrapper do parser do Babel para o ESLint;
    • babel-plugin-root-import - Esse plugin do Babel permite que sejam feitos imports e requires em caminhos baseados em uma raiz(root);
  • Eslint - O ESLint é uma ferramenta de lint plugável para JavaScript e JSX;
  • EditorConfig - O EditorConfig é um formatador de arquivos e coleções em forma de Plugin para Editores de código/texto com o objetivo de manter um padrão de código consistente entre diferentes editores, IDE's ou ambientes;

Começando

Para conseguir utilizar o template, seja através do React Native CLI ou com uma cópia local dos arquivos, siga os passos abaixo.

Pré-requisitos

Antes de seguirmos para as configurações e uso do template, é ideal que você tenha o ambiente configurado para criar e testar aplicativos em React Native

Estrutura de Arquivos

A estrutura de arquivos está da seguinte maneira:

vife-template
├── src/
│   ├── config/
│   │   └── ReactotronConfig.js
│   ├── images/
│   ├── screens/
│   │   └── Main/
│   │       └── index.js
│   ├── services/
│   │   └── api.js
│   ├── index.js
│   └── routes.js
├── .editorconfig
├── .eslintrc.json
├── .gitignore
├── babel.config.js
├── dependencies.json
├── devDependencies.json
├── index.js
├── jsconfig.js
├── LICENSE
├── package.json
└── README.md

Serão explicados os arquivos e diretórios na seção de Edição.

Instalação

  1. Para instalar e utilizar esse template o processo é bem simples, basta criar um projeto novo utilizando o comando:
react-native init meuApp --template vife
  1. Depois do projeto criado você pode deletar o arquivo App.js da raiz, pois o arquivo index.js agora aponta para a pasta src.

Com isso o projeto será criado com todas as dependências do template devidamente instaladas e linkadas, tal como os arquivos de configuração que são copiados para o projeto.


Passo Adicional no Android

Para que os gestos sejam habilitados no Android é necessário um passo a mais, que é bem simples, abra o arquivo android/app/src/main/java/<pacote_do_projeto>/MainActivity.java, e começe importando os pacotes como abaixo:

// ...
import com.facebook.react.ReactActivity;
// Importações adicionadas
import com.facebook.react.ReactActivityDelegate;
import com.facebook.react.ReactRootView;
import com.swmansion.gesturehandler.react.RNGestureHandlerEnabledRootView;

Feito a importação vamos criar um método novo, logo abaixo do getMainComponentName(), ficando:

public class MainActivity extends ReactActivity {
  @Override
  protected String getMainComponentName() { ... }
  // Método adicionado
  @Override
  protected ReactActivityDelegate createReactActivityDelegate() {
    return new ReactActivityDelegate(this, getMainComponentName()) {
      @Override
      protected ReactRootView createRootView() {
        return new RNGestureHandlerEnabledRootView(MainActivity.this);
      }
    };
  }
}

Licença

Distribuído sob a licença MIT. Veja LICENSE para mais informações.

Contato

VIFE - Github - oi@vife.dev

abababsolute-pathacceptsacornacorn-globalsacorn-jsxacorn-walkajvansiansi-colorsansi-cyanansi-escapesansi-grayansi-redansi-regexansi-stylesansi-wrapanymatchare-we-there-yetargparsearia-queryarr-diffarr-flattenarr-unionarray-equalarray-filterarray-includesarray-maparray-reducearray-sliceartarray-uniqueasapasn1assert-plusassign-symbolsast-types-flowastral-regexasyncasync-limiteratobasynckitaws-sign2aws4axiosaxobject-querybabel-eslintbabel-jestbabel-plugin-istanbulbabel-plugin-jest-hoistbabel-plugin-root-importbabel-plugin-styled-componentsbabel-plugin-syntax-jsxbabel-plugin-syntax-trailing-function-commasbabel-preset-fbjsbabel-preset-jestbalanced-matchbasebase64-jsbasic-authbcrypt-pbkdfbig-integerbplist-creatorbplist-parserbrace-expansionbracesbrowser-process-hrtimebrowser-resolvebserbuffer-crc32buffer-frombytescaller-callsitecache-basecaller-pathcallsitescamelcasecamelizecapture-exitcaselesschalkchardetci-infoclass-utilscli-cursorcli-widthcocliuicode-point-atcollection-visitcolor-namecolor-convertcombined-streamcommandercolor-supportcomponent-emittercommondircompressiblecompressionconcat-mapconnectconcat-streamcontains-pathconvert-source-mapcopy-descriptorcore-util-iscore-jscosmiconfigcreate-react-classcross-spawncss-color-keywordscss-to-react-nativecssomcssstyledamerau-levenshteindashdashdata-urlsdebugdecamelizedecode-uri-componentdeep-isdefine-propertiesdefine-propertydelayed-streamdelegatesdenodeifydepddestroydetect-newlinediff-sequencesdoctrinedom-walkdomexceptionecc-jsbnee-firstemoji-regexencodeurlencodingend-of-streamenvinfoerror-exes-to-primitiveerrorhandleres-abstractescape-htmlescape-string-regexpescodegeneslinteslint-config-airbnbeslint-config-airbnb-baseeslint-import-resolver-babel-plugin-root-importeslint-import-resolver-nodeeslint-module-utilseslint-plugin-importeslint-plugin-reacteslint-plugin-jsx-a11yeslint-plugin-react-native-globalseslint-plugin-react-nativeeslint-restricted-globalseslint-scopeeslint-utilseslint-visitor-keysespreeesprimaesqueryesrecurseestraverseesutilsetagevent-target-shimeventemitter3exec-shexecaexitexpand-bracketsexpand-rangeexpectextendextend-shallowexternal-editorextglobextsprintffancy-logfast-deep-equalfast-json-stable-stringifyfast-levenshteinfb-watchmanfbjsfbjs-css-varsfbjs-scriptsfiguresfile-entry-cachefilename-regexfill-rangefind-cache-dirfinalhandlerfind-upflat-cacheflattedfor-infollow-redirectsfor-ownform-dataforever-agentfragment-cachefreshfs-extrafs.realpathfunction-bindfunctional-red-black-treegaugeget-streamget-caller-fileget-valuegetpassglobglob-baseglob-parentglobalglobalsgraceful-fsgrowlyhandlebarshar-schemahar-validatorhashas-ansihas-flaghas-symbolshas-unicodehas-valueshas-valuehoist-non-react-staticshosted-git-infohtml-encoding-snifferhttp-errorsignorehttp-signatureiconv-liteimage-sizeimport-freshimport-localinflightimurmurhashinheritsinquirerinvariantinvert-kvis-bufferis-accessor-descriptoris-callableis-ciis-arrayishis-data-descriptoris-date-objectis-descriptoris-directoryis-dotfileis-equal-shallowis-extendableis-extglobis-fullwidth-code-pointis-globis-generator-fnis-numberis-plain-objectis-primitiveis-posix-bracketis-promiseis-regexis-streamis-symbolis-typedarrayis-windowsis-wslisarrayisexeisobjectisomorphic-fetchisstreamistanbul-lib-coverageistanbul-lib-instrumentistanbul-lib-reportistanbul-lib-source-mapsistanbul-reportsjestjest-changed-filesjest-clijest-configjest-diffjest-docblockjest-eachjest-environment-jsdomjest-environment-nodejest-get-typejest-haste-mapjest-jasmine2jest-leak-detectorjest-matcher-utilsjest-message-utiljest-mockjest-pnp-resolverjest-regex-utiljest-resolvejest-runnerjest-runtimejest-resolve-dependenciesjest-serializerjest-snapshotjest-utiljest-validatejest-watcherjest-workerjs-tokensjs-yamljsdomjsbnjson-parse-better-errorsjsescjson-schemajson-schema-traversejson-stable-stringifyjson-stable-stringify-without-jsonifyjson-stringify-safejson5jsonfilejsonifyjsprimjsx-ast-utilskind-ofklawkleurlcidleft-padlevenlevnload-json-filelocate-pathlodashlodash.padlodash.padendlodash.padstartlodash.sortbylodash.throttleloose-envifylru-cachemake-dirmakeerrormap-age-cleanermap-cachememmap-visitmath-randommemoize-onemerge-streammergemetrometro-babel-registermetro-babel-transformermetro-babel7-plugin-react-transformmetro-cachemetro-coremetro-configmetro-memory-fsmetro-minify-uglifymetro-react-native-babel-presetmetro-react-native-babel-transformermetro-resolvermetro-source-mapmicromatchmimemime-dbmime-typesmimic-fnmin-documentminimatchminimistmittmixin-deepmkdirpmorganmsmute-streamnanomatchnatural-comparenegotiatornice-tryneo-asyncnode-fetchnode-int64node-modules-regexpnode-notifiernormalize-package-datanormalize-pathnpm-run-pathnullthrowsnpmlognumber-is-nannwsapioauth-signobject-assignobject-keysobject-copyobject-visitobject.assignobject.entriesobject.fromentriesobject.getownpropertydescriptorsobject.omitobject.pickon-finishedon-headersonceonetimeopnoptimistoptionatoroptionsos-localeos-tmpdirp-deferp-finallyp-is-promisep-limitp-locatep-reducep-tryparent-moduleparse-globparse-jsonparse-node-versionparse5parseurlp-each-seriespascalcasepath-existspath-is-absolutepath-is-insidepath-keypath-to-regexppath-parsepath-typeperformance-nowpifypiratespkg-dirplistplugin-errorpnposix-character-classesprelude-lspostcss-value-parserpreservepretty-formatprivateprocessprocess-nextick-argsprogresspromisepromptsprop-typespseudomappslpumppunycodeqsquery-stringrandomaticrange-parserreactreact-clone-referenced-elementreact-deep-force-updatereact-devtools-corereact-isreact-lifecycles-compatreact-native-gesture-handlerreact-native-safe-area-viewreact-native-tab-viewreact-native-screensreact-navigation-drawerreact-navigationreact-navigation-stackreact-proxyreact-navigation-tabsreact-test-rendererreact-transform-hmrreactotron-core-clientreactotron-react-nativeread-pkgread-pkg-upreadable-streamrealpath-nativeregenerate-unicode-propertiesregenerateregenerator-runtimeregenerator-transformregex-cacheregex-notregexppregexpu-coreregjsgenregjsparserremove-trailing-separatorrepeat-elementrepeat-stringrequestrequest-promise-nativerequest-promise-corerequire-directoryrequire-main-filenameresolveresolve-cwdresolve-urlresolve-fromrestore-cursorrimrafretrn-host-detectrsvprun-asyncrx-literx-lite-aggregatessafe-regexrxjssafe-buffersafer-buffersanesaxschedulersendserialize-errorserve-staticset-blockingset-valuesetimmediatesetprototypeofshebang-commandshebang-regexsemvershell-quoteshellwordsslashsisteransisimple-plistsignal-exitslideslice-ansisnapdragonsnapdragon-nodesnapdragon-utilsource-mapsource-map-resolvesource-map-supportsource-map-urlspdx-correctspdx-exceptionsspdx-expression-parsesplit-stringspdx-license-idssplit-on-firstsprintf-jsstack-utilssshpkstacktrace-parserstatic-extendstatusesstealthy-requirestream-buffersstring-lengthstring-widthstrict-uri-encodestring_decoderstrip-bomstrip-eofstyled-componentsstrip-json-commentsstylisstylis-rule-sheetsupports-colorsymbol-treetabletemptext-tabletest-excludestrip-ansithroatthroughthrough2tmpltmpto-fast-propertiesto-object-pathto-regexto-regex-rangetough-cookietr46time-stamptrim-righttslibtunnel-agenttweetnacltype-checktype-festtypedarrayua-parser-jsuglify-esuglify-jsultronunicode-canonical-property-names-ecmascriptunicode-match-property-ecmascriptunicode-property-aliases-ecmascriptunicode-match-property-value-ecmascriptunion-valueuniversalifyunpipeunset-valueuri-jsurixuseutil-deprecateutil.promisifyutils-mergeuuidvalidate-npm-package-licenseverrorvaryw3c-hr-timewalkerwatchwebidl-conversionswhatwg-encodingwhatwg-mimetypewhatwg-fetchwhatwg-urlwhichwhich-modulewordwrapwrappywrap-ansiwrite-file-atomicwsxcodewritexml-name-validatorxmldocxmlbuilderxmldomxpipextendy18nyargsyargs-parserreact-native
1.2.0

5 years ago

1.1.9

5 years ago

1.1.8

5 years ago

1.1.7

5 years ago

1.1.6

5 years ago

1.1.5

5 years ago

1.1.4

5 years ago

1.1.3

5 years ago

1.1.2

5 years ago

1.1.1

5 years ago

1.1.0

5 years ago