{"id":20731886,"url":"https://github.com/TaitoUnited/react-native-template","last_synced_at":"2025-05-11T01:31:28.286Z","repository":{"id":37965531,"uuid":"100124069","full_name":"TaitoUnited/react-native-template","owner":"TaitoUnited","description":"Template for React Native applications","archived":false,"fork":false,"pushed_at":"2025-04-25T10:05:54.000Z","size":6396,"stargazers_count":9,"open_issues_count":3,"forks_count":1,"subscribers_count":7,"default_branch":"dev","last_synced_at":"2025-04-25T11:19:25.430Z","etag":null,"topics":["react-native","taito-template","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/TaitoUnited.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,"zenodo":null}},"created_at":"2017-08-12T16:23:04.000Z","updated_at":"2025-03-26T11:38:39.000Z","dependencies_parsed_at":"2024-02-05T13:31:12.988Z","dependency_job_id":"d20ef70a-126e-4f9a-906d-226589a79e9a","html_url":"https://github.com/TaitoUnited/react-native-template","commit_stats":null,"previous_names":[],"tags_count":1,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TaitoUnited%2Freact-native-template","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TaitoUnited%2Freact-native-template/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TaitoUnited%2Freact-native-template/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/TaitoUnited%2Freact-native-template/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/TaitoUnited","download_url":"https://codeload.github.com/TaitoUnited/react-native-template/tar.gz/refs/heads/dev","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253504526,"owners_count":21918825,"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","taito-template","template"],"created_at":"2024-11-17T05:16:54.774Z","updated_at":"2025-05-11T01:31:28.268Z","avatar_url":"https://github.com/TaitoUnited.png","language":"TypeScript","funding_links":[],"categories":["React Native"],"sub_categories":["Phaser"],"readme":"\u003cp align='center'\u003e\n  \u003cimg src=\"docs/banner.jpg\" alt=\"Taito React Native Template banner image\"/\u003e\n\u003cp/\u003e\n\n# React Native template\n\nProject template for mobile app projects using React Native and Expo (via [Prebuild](https://docs.expo.dev/workflow/prebuild/)).\n\n## Prerequisites\n\nMake sure your development environment is setup and up-to-date by following this [guide](https://reactnative.dev/docs/environment-setup).\n\n## Starting a new project\n\nAfter you have cloned this repo to start a new mobile app project go through the following steps to customize the template based on your project needs.\n\n### Customizable features\n\nLook for `[CUSTOMIZE]` in the codebase to find places where you need to customize the template.\n\nFor example, you can decide to opt in or out of **[haptic feedback](./src/utils/haptics.ts)** or **[store review](\u003c./src/app/(tabs)/_layout.tsx\u003e)**.\n\n### Update app metadata\n\nUpdate the following fields in the `config/app.config.ts`:\n\n1. `appId` (the id of the app, usually the bundle identifier. For example: `com.mynewapp`. Keep the `appIdSuffix` logic as it is)\n2. `slug` (this is really not used but Expo requires it)\n3. `name` (name of the app)\n4. `scheme` (the url scheme used to open the app from a link)\n\n### Setup CICD for building and distributing the app\n\nFollow this [CICD guide](/docs/CICD.md).\n\n### Setup Sentry\n\n1. Create a project in [Sentry](https://sentry.io) (get credentials from Taito).\n2. In Sentry dashboard, go to project settings, click **Client Keys (DSN)** and create a DSN. This is the URL that your app will send error reports to. Create a file in your project root named `.env.local` and paste the DSN there: `EXPO_PUBLIC_SENTRY_DSN=\u003cyour_dsn\u003e`\n3. Push the env into Expo by `eas env:push`. Select all environments.\n4. Replace the project name in Sentry config in `app.config.ts` with the project name you created in Sentry.\n\n\u003e Context: Sentry needs source maps to make the stacktraces more readable. Expo CI will do this automatically after building the app, and for OTA-updates, our `npm run eas:update` will also do this for you after publishing the update.\n\n### Setup a design system\n\n1. If you don't have a design system yet clone the [Design System Template](https://www.figma.com/file/vEO1Adp6j0nHiiq9BiexE1/Design-System-Template) project in Figma.\n2. Update the design tokens (colors, typography, etc.) to match your project design and branding.\n3. Add your own app icon in the **App Icon \u0026 Splash** page. Use the import areas to import the iOS and Android icons (they need different sizes)\n4. Run `npm run design-system:sync` in the terminal.\n\n_A more detailed guide on how to setup a design system can be found [here](/docs/DESIGN_SYSTEM.md). For fonts \u0026 assets check [this](/docs/ASSETS.md)._\n\n### Setup publishing to stores\n\nFollow this [Publishing guide](/docs/PUBLISHING.md).\n\n### Setup app reviews\n\n\u003e Context: to counter one 1 ⭐ rating we need 7 x 5 ⭐ to have an average of 4.5 ⭐.\n\nIf the app is customer facing and published to App Store or Google Play you should setup app reviews. This allows users to rate the app and give feedback. The reviews are then visible in the store and can be used to improve the app.\n\n1. Setup app reviews in App Store Connect and Google Play Console.\n2. Update the `(dev|test|prod.config.ts` with the app store and google play urls. (only prod will allow you to actually rate the app, the rest is for testing purposes)\n3. Mode the `StoreReview` component to a more appropriate place in your app.\n4. Make sure to collect the user feedback in the backend or have it sent to you via email or some other channel.\n\n\u003e Note: It’s crucial to time well the moment when we ask a user for their feedback. It’s best to ask for a review after a positive action. For example, after completing a level, uploading a post, or making a purchase. As the template is basically a blank app, this guideline is not respected. Move the review request to a more appropriate place in your app.\n\n**Important**: It’s also important to be mindful of how often we ask for review. The App Store only lets you do it **3 times a year**. Make sure not to exceed this limit. The current implementation makes sure we don't ask for review after the user has been to the rating modal (We cannnot know if they actually submitted their review or not). If you want to ask for review more often you need to change the logic in the `StoreReview` component.\n\n\u003e Note: currently we use async storage to store when the last review was done. This means that if the user uninstalls the app and reinstalls it, we will ask for review again. Ideally we would store this information in the backend.\n\nMore information on how to setup app reviews can be found [here](https://docs.expo.dev/versions/latest/sdk/storereview/).\n\n## Project documentation\n\n- [Development](/docs/DEVELOPMENT.md)\n- [Assets (icons, fonts, etc.)](/docs/ASSETS.md)\n- [Design System](/docs/DESIGN_SYSTEM.md)\n- [Localization](/docs/LOCALIZATION.md)\n- [PR Reviews](/docs/PR_REVIEWS.md)\n- [CICD](/docs/CICD.md)\n- [SECRETS](/docs/SECRETS.md)\n- [App Builds](/docs/BUILDS.md)\n- [Updates](/docs/UPDATES.md)\n- [Code Signing](/docs/CODE_SIGNING.md)\n- [Publishing to stores](/docs/PUBLISHING.md)\n- [Publishing updates to stores](/docs/UPDATES.md)\n- [Testing](/docs/TESTING.md)\n- [Analytics](/docs/ANALYTICS.md)\n- [Crash reporting](/docs/CRASH_REPORTING.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FTaitoUnited%2Freact-native-template","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FTaitoUnited%2Freact-native-template","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FTaitoUnited%2Freact-native-template/lists"}