{"id":19852531,"url":"https://github.com/thesoftwarehouse/react-native-starter-boilerplate","last_synced_at":"2026-06-14T10:32:10.410Z","repository":{"id":211925212,"uuid":"730184551","full_name":"TheSoftwareHouse/react-native-starter-boilerplate","owner":"TheSoftwareHouse","description":null,"archived":false,"fork":false,"pushed_at":"2024-10-01T07:44:41.000Z","size":3492,"stargazers_count":1,"open_issues_count":2,"forks_count":0,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-07-05T04:15:54.457Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"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/TheSoftwareHouse.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-12-11T11:37:06.000Z","updated_at":"2024-11-30T05:37:01.000Z","dependencies_parsed_at":null,"dependency_job_id":"eb1b57ef-2c96-4c71-b88a-ad79b04b2209","html_url":"https://github.com/TheSoftwareHouse/react-native-starter-boilerplate","commit_stats":null,"previous_names":["thesoftwarehouse/react-native-starter-boilerplate"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/TheSoftwareHouse/react-native-starter-boilerplate","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheSoftwareHouse%2Freact-native-starter-boilerplate","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheSoftwareHouse%2Freact-native-starter-boilerplate/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheSoftwareHouse%2Freact-native-starter-boilerplate/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheSoftwareHouse%2Freact-native-starter-boilerplate/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TheSoftwareHouse","download_url":"https://codeload.github.com/TheSoftwareHouse/react-native-starter-boilerplate/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TheSoftwareHouse%2Freact-native-starter-boilerplate/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34318523,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-14T02:00:07.365Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":[],"created_at":"2024-11-12T14:03:18.512Z","updated_at":"2026-06-14T10:32:10.393Z","avatar_url":"https://github.com/TheSoftwareHouse.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# React Native Boilerplate\n\nThis project was bootstrapped with [React Native CLI](https://reactnative.dev/docs/environment-setup). Make sure you\nconfigured environment as described in above tutorial.\n\n## Setup\n\nIf after environment configuration you will get error\n\n```\nSDK location not found.\n```\n\n- Go to `android/ `\n- Create a file `local.properties ` and add this line :\n\n```bash\nsdk.dir = /Users/USERNAME/Library/Android/sdk\n```\n\nWhere `USERNAME` is your macOS username\n\n## Installation\n\nUse the package manager yarn to install the app.\n\n```bash\ncp .env.dist .env\nyarn\n```\n\n#### Run metro:\n\n```bash\nyarn start\n```\n\n#### For iOS:\n\n```bash\nyarn ios\n```\n\n#### For Android:\n\n```bash\nyarn android\n```\n\n## Folders structure explanation\n\n- src\n  - api `API configuration`\n  - assets `Assets used in project`\n  - components `Reusable components`\n  - context `Context config (e.g. app theme, app locale)`\n  - hooks `Reusable custom hooks`\n  - i18n `Translations configuration`\n  - navigations `Navigation configuration`\n  - redux `State management configuration`\n  - screens `Separated app screens`\n  - styles `Shared styles configuration related to theme (e.g. colors)`\n  - tests `Test configuration`\n  - utils `Reusable functions, helpers (e.g. date format function)`\n\n## Navigations\n\nIn this boilerplate we use `react-navigation` to navigate around the screens (screens are equivalent to pages in web\napps). This library supports 3 navigation types, each as separate module:\n\n- stack - `@react-navigation/stack`\n- bottom tabs - `@react-navigation/bottom-tabs`\n- drawer - `@react-navigation/drawer`\n\nTo use them, you need to create navigator instance outside the rendering function with a method from one of the modules\nlisted above. For example, for bottom tabs, the method usage looks like this: `const Tab = createBottomTabNavigator()`,\nwhere you can pass generic value, which is equivalent to `Record\u003cYourCustomRouteNames, undefined\u003e`. The return value of\nthe function returns object with Elements needed to create navigation, where:\n\n- `Navigator` is the wrapper where you can customize general settings for the navigator\n- `Screen` which creates screen (similar to `\u003cRoute\u003e` tag in React Router) requires two props:\n  - `name` - name of the route (defined in the navigator type if you passed it to the factory method)\n  - `component` - the component to render when users selects the link\n- `Group` for grouping the screens inside the `Navigator`\n\nYou can preview each of them in following folders:\n\n- stack - `src \u003e navigations \u003e Navigator.tsx`\n- bottom tabs - `src \u003e Profile \u003e Profile.tsx`\n- drawer - `src \u003e ProfileDrawer \u003e ProfileDrawer.tsx`\n- drawer + bottom tabs - `src \u003e SharedNavProfile \u003e SharedNavDrawer.tsx`\n\nYou can read more about the react navigation at: https://reactnavigation.org/docs/getting-started\n\n## Deployment\n\n1. Follow the fastlane [README](./fastlane/README.md) to install and configure fastlane locally (remember to change\n   repository URL in the [Matchfile](./fastlane/Matchfile) and generate all required certificates/profiles etc.).\n1. [Generate signing key](https://developer.android.com/studio/publish/app-signing#generate-key) for Android and update\n   the release signing config in [build.gradle](android/app/build.gradle) file.\n1. Update Identifier/Schema/Workspace/Provisioning profiles etc. names in the [Fastfile](./fastlane/Fastfile) to match\n   your desired project name.\n\n### Firebase distribution\n\n1. Set Up Firebase Project:\n\n   - Create a Firebase project through the [Firebase Console](https://console.firebase.google.com/).\n   - Add your Android and iOS apps to the Firebase project. Download and replace `google-services.json` for Android and\n     `GoogleService-Info.plist` for iOS.\n\n1. Generate\n   [Firebase Service Account credentials](https://firebase.google.com/docs/app-distribution/android/distribute-fastlane#service-acc-fastlane)\n   and use the JSON key to configure `firebase_app_distribution` in the [Fastfile](./fastlane/Fastfile).\n\n   _Alternatively you can use `FIREBASE_TOKEN` approach. You can generate the token by following\n   [this instruction.](https://firebase.google.com/docs/cli#sign-in-test-cli)_\n\n1. Set Up Environment Variables:\n\n   - In your CI or local environment define the following variables:\n     - `FIREBASE_ANDROID_APP_ID`\n     - `FIREBASE_IOS_APP_ID`\n     - `MATCH_PASSWORD`\n     - `MATCH_GIT_BASIC_AUTHORIZATION`\n     - `FIREBASE_SERVICE_ACCOUNT_JSON`\n     - `FIREBASE_TOKEN` (Not required if you define FIREBASE_SERVICE_ACCOUNT_JSON/service_credentials_file in the\n       [Fastfile](./fastlane/Fastfile) -\u003e recommended solution)\n     - variables related to Android signing key\n\n1. Run fastlane command to deploy the app. Check Fastlane [README](./fastlane/README.md) for available actions.\n\n### AppCenter\n\n- Environment variables need to have `RN_` prefix. For example if your variable is `BACKEND_URL`(in `.env` file) it\n  should be added as `RN_BACKEND_URL` to the App Center.\n\n## Storybook\n\nTo open storybook:\n\n1. Start metro bundler using `yarn storybook`\n1. Run ios/android build using `yarn ios` or `yarn android`\n\n## Troubleshooting\n\n### Changes in .env file are not reflected in ios application even after rebuild\n\nTo see the latest changes you may need to run `cd ios \u0026\u0026 pod install` and then rebuild the project.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthesoftwarehouse%2Freact-native-starter-boilerplate","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthesoftwarehouse%2Freact-native-starter-boilerplate","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthesoftwarehouse%2Freact-native-starter-boilerplate/lists"}