{"id":18895901,"url":"https://github.com/echobind/react-native-template","last_synced_at":"2025-04-15T01:34:09.970Z","repository":{"id":34849957,"uuid":"154354192","full_name":"echobind/react-native-template","owner":"echobind","description":"Echobind's template for React Native projects","archived":false,"fork":false,"pushed_at":"2022-12-10T12:58:46.000Z","size":5857,"stargazers_count":51,"open_issues_count":49,"forks_count":11,"subscribers_count":10,"default_branch":"master","last_synced_at":"2025-04-11T18:21:40.031Z","etag":null,"topics":["react-native","template"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/echobind.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-10-23T15:39:06.000Z","updated_at":"2023-09-30T08:10:27.000Z","dependencies_parsed_at":"2023-01-15T09:45:27.901Z","dependency_job_id":null,"html_url":"https://github.com/echobind/react-native-template","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/echobind%2Freact-native-template","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/echobind%2Freact-native-template/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/echobind%2Freact-native-template/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/echobind%2Freact-native-template/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/echobind","download_url":"https://codeload.github.com/echobind/react-native-template/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248989518,"owners_count":21194606,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["react-native","template"],"created_at":"2024-11-08T08:31:06.249Z","updated_at":"2025-04-15T01:34:06.196Z","avatar_url":"https://github.com/echobind.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# `react-native-template`\n\u003c!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section --\u003e\n[![All Contributors](https://img.shields.io/badge/all_contributors-1-orange.svg?style=flat-square)](#contributors-)\n\u003c!-- ALL-CONTRIBUTORS-BADGE:END --\u003e\n\n\u003cbr /\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://echobind.com\"\u003e\n    \u003cimg src=\"https://camo.githubusercontent.com/d22763c73585cf5d4cf87534659689c2a6b3f214/68747470733a2f2f7265732d332e636c6f7564696e6172792e636f6d2f6372756e6368626173652d70726f64756374696f6e2f696d6167652f75706c6f61642f635f6c7061642c685f3235362c775f3235362c665f6175746f2c715f6175746f3a65636f2f76313439393437333135312f68326b3233696f6f3479687230676a746f636d792e6a7067\" alt=\"Logo\" width=\"80\" height=\"80\"\u003e\n  \u003c/a\u003e\n\n  \u003ch3 align=\"center\"\u003ereact-native-template\u003c/h3\u003e\n\n  \u003cp align=\"center\"\u003e\n    Our Recommended template for React Native projects.\n    \u003cbr /\u003e\n    \u003cbr /\u003e\n    \u003ca href=\"https://github.com/echobind/react-native-template/issues\"\u003eReport Bug\u003c/a\u003e\n    ·\n    \u003ca href=\"https://github.com/echobind/react-native-template/issues\"\u003eRequest Feature\u003c/a\u003e\n  \u003c/p\u003e\n\u003c/p\u003e\n\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://github.com/echobind/react-native-template/graphs/contributors/\"\u003e\n    \u003cimg alt=\"number of contributors.\" src=\"https://img.shields.io/github/contributors/echobind/react-native-template.svg\" /\u003e\n  \u003c/a\u003e\n  \u003cimg alt=\"License.\" src=\"https://img.shields.io/github/license/echobind/react-native-template\"\u003e\n\u003c/div\u003e\n\n\u003chr\u003e\n\n## Table of Contents\n\n- [Quickstart](#quickstart)\n- [About the Project](#about-the-project)\n  - [Built With](#built-with)\n- [Getting Started](#getting-started)\n  - [Prerequisites](#prerequisites)\n  - [Setup](#setup)\n  - [Troubleshooting](#troubleshooting)\n- [Usage](#usage)\n- [CI/Deployment](#ci--deployment)\n- [Docs](#docs)\n- [Contributing](#contributing)\n- [Publishing New Release](#publish-new-release)\n- [Acknowledgements](#acknowledgements)\n- [License](#license)\n- [Contributors](#contributors)\n\n## Quickstart\n\nTo get started with our template, run one of the following commands:\n```shell\n# using npx, install our latest version from npm\nnpx react-native init MyApp --template=@echobind/react-native-template\n\n# using npx and the github repo directly\nnpx react-native init MyApp --template=https://github.com/echobind/react-native-template\n\n# using yarn \u0026 the react-native cli\nyarn global add react-native-cli\nreact-native init MyApp --template=https://github.com/echobind/react-native-template\n```\n\nIf you see an error after installing using the first option, pass the flag `--ignore-existing` and run:\n```shell\nnpx --ignore-existing react-native init MyApp --template=@echobind/react-native-template\n```\n\n## About The Project\n\nHere at Echobind, we value developer productivity. After having built lots of React Native projects, we decided to put together our own template to speed up development. Our template includes the following:\n\n🏆 Dev Productivity:\n\n- [Hygen](http://www.hygen.io/) templates to easily generate components, screens, and utils with tests and stories.\n- vscode settings for common overrides (🎨 Colors, formatOnSave and rulers width that matches prettier)\n- default Fastlane scripts for icon generation\n- global styles and colors\n- `react-navigation` preconfigured with a common setup\n- Pre-configured scripts in `package.json` to start the app \u0026 deal with simulators\n- Setup `lint-staged` to run eslint checks on `precommit`\n- Setup the app for TypeScript\n\nWe hope it saves you as much time as it saves us! 👍\n\n### Built With\n\n- [React Native `0.61.1`](https://github.com/facebook/react-native)\n- [TypeScript](https://www.typescriptlang.org/)\n- [`react-navigation`](https://reactnavigation.org/)\n- [Storybook 4](https://storybook.js.org/)\n- [`@emotion/native`](https://github.com/emotion-js/emotion/tree/master/packages/native) for styling\n- [Detox](https://github.com/wix/Detox/) for e2e integration testing\n\n## Getting Started\n\n### Prerequisites\n\nWhile not required, we recommend using a version manager for Ruby and Node. Some popular version managers are:\n\n** Ruby **\n\n- (chruby)[https://github.com/postmodern/chruby]\n- (rbenv)[https://github.com/rbenv/rbenv]\n\n** Node **\n\n- [nodenv](https://github.com/nodenv/nodenv)\n- [nvm](https://github.com/nvm-sh/nvm)\n\nFollow the install docs for the version manager of your choice.\n\nDuring the setup proceess, we will automatically check the versions on your machine and prompt you to install anything you're missing.\n\n### Usage\n\nIn order to use this template, follow these steps:\n\n1. Initialize a new react-native app: `npx react-native init MyApp --template=https://github.com/echobind/react-native-template`\n2. Change directories into your new app: `cd MyApp`\n3. Run the setup script: `node ./setup`. A successful setup will give you the green light: `✅ Setup completed!`\n\nDuring the setup process we will do the following:\n\n- Setup a display name for your app\n- Setup a bundle identifier (ex: com.myapp.mobile)\n- Use [Solidarity](https://github.com/infinitered/solidarity) to ensure your environment has all expected dependencies installed\n- Run `bundle install` and `pod install` so you don't have to\n- Setup placeholder icon and a splash screen\n- Setup the first integration test which can be run with the scripts from your package.json with `yarn e2e:ios-debug` or `yarn e2e:android-debug` (android emulator must be setup and open)\n\n## Troubleshooting\n\nIf you get an error with an iOS Release build for `ios/Pods/OpenSSL-Universal/ios/lib/libcrypto.a(cryptlib.o)` You should be able to resolve by updating the build settings \n![image](images/ios-release-build-error.png)\n\n\n## Template Preview\non an iPhone 12: \n\n\u003cimg src=\"template/splashScreenPreview/SplashScreens-iPhone12.gif\" alt=\"iphone12 splash screen preview\" height=\"600px\"  /\u003e\n\n## CI / Deployment:\n\nIn order to set up CI/Deployment, we've created custom hygen templates to save you time. These live in our [`hygen-templates-echobind` repository](https://github.com/echobind/hygen-echobind-templates). You'll find installation instructions, which will allow you to set up the following:\n\n- CircleCI preconfigured for React Native. Fast build times!\n- Fastlane lanes for alpha, beta, and production releases. These should be run on CI only!\n- AppCenter integration for easy alpha distribution\n\nAfter installing those, head into the \"Setup CircleCI\" docs in [`./docs/circle-ci.md`](./template/docs/circle-ci.md), which will walk you through the installation.\n\nFor more info, please follow the [instructions](https://github.com/echobind/hygen-echobind-templates) in the `hygen-templates-echobind` repo.\n\n## Docs\n\n- [Customize Generator Templates](./template/docs/hygen-templates.md)\n- [Navigation](./template/docs/navigation.md)\n- [Splash Screens](./template/docs/splashscreens.md)\n- [Setup CircleCI](./template/docs/circle-ci.md)\n\n## Contributing\n\nContributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are **greatly appreciated**.\n\n1. Fork the Project\n2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)\n3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)\n4. Push to the Branch (`git push origin feature/AmazingFeature`)\n5. Open a Pull Request\n\n## Publish New Release\n\nThis template is available on npm at [`@echobind/react-native-template`](https://www.npmjs.com/package/@echobind/react-native-template). In order to publish a new release, please follow this process:\n\n### Prerequisites\n\n1. You must be an Echobind employee\n2. You must have an [npm registry account](https://www.npmjs.com/signup)\n2. You must be a member of the @echobind organization on npm\n\n### Create a New Release\n\nThis is handled by `semantic-release` and CircleCI. When a commit is merged into `master`, it analyzes it, then runs a new release based on the type of commit (i.e fix is a patch whereas feat is considered a minor or feature relase).\n\n## Acknowledgements\n\nWe'd like to thank the internal team for making this template, and the following organizations:\n\n- React Native Team\n- React Native Community\n- [Img Shields](https://shields.io)\n\n\n## License\n\nThe Echobind React Native template is open source software [licensed as MIT](./LICENSE.md).\n\n\n## Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\u003c!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --\u003e\n\u003c!-- prettier-ignore-start --\u003e\n\u003c!-- markdownlint-disable --\u003e\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"http://mikecavaliere.com/\"\u003e\u003cimg src=\"https://avatars3.githubusercontent.com/u/147237?v=4\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eMike Cavaliere\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/echobind/react-native-template/commits?author=mcavaliere\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/echobind/react-native-template/pulls?q=is%3Apr+reviewed-by%3Amcavaliere\" title=\"Reviewed Pull Requests\"\u003e👀\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://github.com/cmejet\"\u003e\u003cimg src=\"https://avatars3.githubusercontent.com/u/7119624?v=4\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eJenn\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/echobind/react-native-template/commits?author=cmejet\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/echobind/react-native-template/pulls?q=is%3Apr+reviewed-by%3Acmejet\" title=\"Reviewed Pull Requests\"\u003e👀\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"http://echobind.com\"\u003e\u003cimg src=\"https://avatars1.githubusercontent.com/u/14339?v=4\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eChris Ball\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/echobind/react-native-template/commits?author=cball\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/echobind/react-native-template/pulls?q=is%3Apr+reviewed-by%3Acball\" title=\"Reviewed Pull Requests\"\u003e👀\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://www.linkedin.com/in/rynatk/\"\u003e\u003cimg src=\"https://avatars0.githubusercontent.com/u/13787517?v=4\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eRyan Atkinson\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/echobind/react-native-template/commits?author=rynatk\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/echobind/react-native-template/pulls?q=is%3Apr+reviewed-by%3Arynatk\" title=\"Reviewed Pull Requests\"\u003e👀\u003c/a\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n\u003c!-- markdownlint-enable --\u003e\n\u003c!-- prettier-ignore-end --\u003e\n\u003c!-- ALL-CONTRIBUTORS-LIST:END --\u003e\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fechobind%2Freact-native-template","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fechobind%2Freact-native-template","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fechobind%2Freact-native-template/lists"}