{"id":18996311,"url":"https://github.com/csfrequency/react-native-starter","last_synced_at":"2025-02-21T12:19:56.611Z","repository":{"id":66234370,"uuid":"164867266","full_name":"CSFrequency/react-native-starter","owner":"CSFrequency","description":"A battle-tested React Native starter kit to get you off to a flying start","archived":false,"fork":false,"pushed_at":"2019-01-17T08:36:36.000Z","size":499,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-01T16:30:49.906Z","etag":null,"topics":["android","authentication","boilerplate","ios","javascript","react-native"],"latest_commit_sha":null,"homepage":"https://csfrequency.com","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/CSFrequency.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-01-09T13:23:50.000Z","updated_at":"2020-11-16T21:16:36.000Z","dependencies_parsed_at":"2023-02-22T06:30:38.358Z","dependency_job_id":null,"html_url":"https://github.com/CSFrequency/react-native-starter","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CSFrequency%2Freact-native-starter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CSFrequency%2Freact-native-starter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CSFrequency%2Freact-native-starter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CSFrequency%2Freact-native-starter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CSFrequency","download_url":"https://codeload.github.com/CSFrequency/react-native-starter/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240010800,"owners_count":19733572,"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":["android","authentication","boilerplate","ios","javascript","react-native"],"created_at":"2024-11-08T17:34:39.323Z","updated_at":"2025-02-21T12:19:56.568Z","avatar_url":"https://github.com/CSFrequency.png","language":"JavaScript","readme":"# React Native Starter\n\nA simple React Native Starter app providing the following:\n\n- [React Navigation setup](#react-navigation-setup)\n- [Email login and registration flow ready to integrate with your backend of choice](#login-and-registration-flow)\n- [Flow, ESLint and Prettier setup and configuration](#flow-eslint-and-prettier)\n- [Multiple environment support](#multiple-environments)\n- [Other tips and tricks](#other-tips-and-tricks)\n\n\u003e This app provides the basis for all [CS Frequency's React Native apps](https://csfrequency.com/products/).\n\n## Getting started\n\n### Clone and install dependencies\n\n- Clone the `react-native-starter` repository with the following commands:\n\n  ```\n  git clone https://github.com/CSFrequency/react-native-starter\n  cd react-native-starter\n  ```\n\n- Install dependencies:\n\n  Run `yarn` or `npm install`\n\n- **[iOS]** Initialise Cocoapods:\n\n  \u003e Follow the instructions [here](https://guides.cocoapods.org/using/getting-started.html) if you don't already have CocoaPods installed.\n\n  ```\n  cd ios\n  pod install\n  cd ..\n  ```\n\n### Rename your app\n\nWe've provided a simple renaming tool that allows you to use your own application and company name.\n\n- Run `yarn rename` or `npm run rename`\n- Follow the on screen instructions\n- Take note of your package name as you may need this at a later date\n\n### Start your app\n\n- Start the React Native packager:\n\n  ```\n  react-native start\n  ```\n\n- **[iOS]** Build and run the iOS app:\n\n  ```\n  // Debug\n  react-native run-ios --scheme=\"{AppName} - Debug\"\n\n  // Release\n  react-native run-ios --scheme=\"{AppName} - Release\"\n  ```\n\n  \u003e This will automatically start the iOS simulator for you if one is not already started.\n\n3. **[Android]** Build and run the Android app:\n\n   \u003e You'll need to have an Android device attached or an emulator running already.\n\n   ```\n   react-native run-android\n   ```\n\n## React Navigation setup\n\nThis starter app leans on our experience building React Native apps and uses the following battle-tested app hierarchy:\n\n- `StackNavigator`\n  - `SwitchNavigator`\n    - Screen for Initialisation\n    - `StackNavigator` for logged out application screens\n      - Logged out screens\n    - `StackNavigator` for logged in application flow\n      - `TabNavigator` for logged in tabs\n        - `StackNavigator` for tab 1\n          - Screens for tab 1 go here\n        - `StackNavigator` for tab 2\n          - Screens for tab 2 go here\n      - Modal screens that need to show over the tabs go here\n  - Common logged out / logged in screens go here\n\n## Login and Registration flow\n\nWe've provided example email login and registration screens which are set up ready to connect to your favoured backend, e.g. Firebase, AWS Amplify, AuthO, etc.\n\n- Login: `src/screens/LoggedOut/Login/index.js`\n- Registration: `src/screens/LoggedOut/Registration/index.js`\n\n## Flow, ESLint and Prettier\n\nWe've included our favoured Flow, ESLint and Prettier configurations as a starting point.\n\n- `.flowconfig` is the standard React Native `.flowconfig`\n- `.eslintrc.js` is based off the Airbnb ESLint ruleset with a few little tweaks\n- `prettier.config.js` is a fairly standard Prettier configuration\n\n## Multiple environments\n\nWe know how useful it is to be able to test your app against different environments, which is why we've built in support for dual environments: `Debug` and `Release`.\n\nBy default we add the `.debug` suffix to the `Debug` application's package name. For example:\n\n```\nRelease: com.yourcompany.yourapp\nDebug: com.yourcompany.yourapp.debug\n```\n\nTo use different configuration files for each environment:\n\n### iOS\n\n- Add configuration files to:\n  - Debug: `ios/Config/Debug`\n  - Release: `ios/Config/Release`\n- Select either the `Debug` or `Release` schema from within XCode when running or building your app\n\n### Android\n\n- Add configuration files to:\n  - Debug: `android/app/src/debug`\n  - Release: `android/app/src/release`\n  - Shared: `android/app/src/main`\n\n## Other tips and tricks\n\n### No relative paths\n\nWe've added `package.json` module files into our top level directories `assets`, `components` and `theme` to ensure you no longer have to use unwieldy relative paths. This means you can simply do the following:\n\n```\nimport { Button } from 'Components`;\n```\n\n### Assets shorthand\n\nWe load all assets in a single file `src/assets/index.js` so you can do the following:\n\n```\nimport { Image } from 'react-native';\nimport assets from 'Assets';\n\nconst Logo = \u003cImage src={assets.logo} /\u003e;\n```\n\n### Themes\n\nWe set up some simple color and navigation themes in `src/theme/index.js` so you can do the following:\n\n```\nimport { Text } from 'react-native';\nimport { colors } from 'Theme';\n\nconst Text = (\n  \u003cText style={{color: colors.primary}}\u003e\n    Example\n  \u003c/Text\u003e\n);\n```\n\n---\n\n## Contributing\n\nIf you find any problems, please [open an issue](https://github.com/CSFrequency/rn-starter/issues/new) or submit a fix as a pull request.\n\n## Need help building your app?\n\nThis repository is a great place to start, but if you'd prefer to sit back and have your new project built for you, [get in touch with us directly](https://csfrequency.com) and we can organise a quote.\n\n## License\n\n[Apache License, Version 2.0](LICENSE)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcsfrequency%2Freact-native-starter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcsfrequency%2Freact-native-starter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcsfrequency%2Freact-native-starter/lists"}