{"id":13718547,"url":"https://github.com/harrisrobin/react-native-checklist","last_synced_at":"2025-05-07T10:33:10.809Z","repository":{"id":191872048,"uuid":"97683813","full_name":"harrisrobin/react-native-checklist","owner":"harrisrobin","description":"📝 From idea to app store. A recommended check list for shipping react-native apps.","archived":false,"fork":false,"pushed_at":"2017-11-29T01:51:20.000Z","size":1598,"stargazers_count":129,"open_issues_count":0,"forks_count":8,"subscribers_count":12,"default_branch":"master","last_synced_at":"2024-08-04T01:11:24.553Z","etag":null,"topics":["checklist","react-native","react-native-tutorial"],"latest_commit_sha":null,"homepage":"","language":null,"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/harrisrobin.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}},"created_at":"2017-07-19T07:02:41.000Z","updated_at":"2024-05-11T14:14:19.000Z","dependencies_parsed_at":"2023-09-01T08:41:57.184Z","dependency_job_id":"ad77ae24-7c76-4216-b7b8-92b5b925fc78","html_url":"https://github.com/harrisrobin/react-native-checklist","commit_stats":null,"previous_names":["harrisrobin/react-native-checklist"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/harrisrobin%2Freact-native-checklist","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/harrisrobin%2Freact-native-checklist/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/harrisrobin%2Freact-native-checklist/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/harrisrobin%2Freact-native-checklist/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/harrisrobin","download_url":"https://codeload.github.com/harrisrobin/react-native-checklist/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224592058,"owners_count":17337030,"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":["checklist","react-native","react-native-tutorial"],"created_at":"2024-08-03T01:00:32.142Z","updated_at":"2024-11-14T08:30:34.129Z","avatar_url":"https://github.com/harrisrobin.png","language":null,"funding_links":[],"categories":["Checklist-like","Help, tricks, issues","\u003ca id=\"Web-Development\"\u003e\u003c/a\u003eWeb Development"],"sub_categories":["Software development","Settings","\u003ca id=\"Front-End-Development\"\u003e\u003c/a\u003eFront-End Development"],"readme":"\n\n\u003ch1 align=\"center\"\u003e\n  \u003cbr\u003e\n  \u003cimg src=\"assets/images/rn-checklist-icon.png\"\n  alt=\"Markdownify\" width=\"200\"\u003e\n  \u003cbr\u003e\n  React Native Checklist\n  \u003cbr\u003e\n\u003c/h1\u003e\n\n\nA check list to refer to before starting a react-native project. All credit goes to Chris Ball as this is heavily based on his [Chain React 2017](https://www.youtube.com/watch?v=W8X7t1qlT_w) talk.\n\n***Disclaimer: This is still a work in progress. If you notice any mistakes, PRs are very appreciated.***\n\n## Table of content\n- [Prerequisites](#installation)\n  - [App Store](#app-store-and-google-play)\n- [Init App](#init-app)\n  - [Starters](#starters)\n- [Development Strategy Tips](#development-strategy-tips)\n  - [Focus on one, check both](#focus-on-one-check-both)\n- [App Icons \u0026 Splash-screen](#app-icons-and-splash-screen)\n  - [Automatic](#generate-app-icons-\u0026-splash-screen-automatically)\n  - [Manual](#generate-app-icons-\u0026-splash-screen-manually)\n- [Rename App](#rename)\n  - [Automatic](#rename-app-automatically)\n  - [Manual](#rename-app-manually)\n- [CI](#ci)\n  - [Comparison Table](#ci-comparison-table)\n- [Handle Offline](#handle-offline)\n  - @TODO\n- [Certificates](#Certificates)\n  - @TODO\n- [Use Fastlane Precheck](#use-fastlane-precheck)\n- [Review Apple's Common App Rejections](#common-app-rejection)\n\n## Prerequisites\n### App Store and Google Play\n\n#### iOS\nIf you are a company, you will need a [D-U-N-S number](https://developer.apple.com/support/D-U-N-S/).\n\nCheck whether you have a D-U-N-S number [here](https://developer.apple.com/enroll/duns-lookup/#/search) . If you don't have one, you will be given the option to apply.\n\nOtherwise, you can sign up as an individual.\n\n#### Android\nGoogle is simpler, however you should still know if you are enrolling as a company or individual.\n\nSign up 👉 [Google Play](https://play.google.com/apps/publish/signup/).\n\n## Init App\n### Starters\nThere are many boilerplates/starter kits for react-native out there. I highly recommend using [create-react-native-app](https://github.com/react-community/create-react-native-app) as a starting point, however if you do not mind learning the boilerplates, you will find a list of good starters below.\n\n#### [ignite 🔗](https://github.com/infinitered/ignite)\n#### [pepperoni-app-kit 🔗](https://github.com/futurice/pepperoni-app-kit)\n\n## Development Strategy Tips\n\n### Focus on one, check both.\nEven if you choose to focus on one platform at first, it is recommended that you always check both, especially if you are installing a lot of third-party libraries. React Native is constantly changing and the libraries you are using probably cannot keep up with all the breaking changes being introduced. If you want to avoid making bad decisions and identifying potential road blocks early, make sure you always check both platforms.\n\nEven better, focus on Android and check iOS. This is because Android is the platform most likely to make you run into issues.\n\n## App Icons and Splash-screen\n### Generate App Icon \u0026 Splash-screen Automatically\n***💻📲 (Recommended)***\n\nGenerating app icons and a splash-screen doesn't have to be hard. Simply install [generator-rn-toolbox](https://github.com/bamlab/generator-rn-toolbox/blob/master/generators/assets/README.md) and follow the instructions to get them for both iOS and Android.\n\n### Generate App Icon \u0026 Splash-screen Manually\nIf you do not go with the automatic way, you will need to generate your app icons in the following sizes for each respective format:\n\n[Original answer](https://stackoverflow.com/a/34333915/6401805)\n\n#### iOS\n* In iOS, set `AppIcon` in `Images.xcassets`\n* Add 9 different size icons:\n  * 29pt\n  * 29pt*2\n  * 29pt*3\n  * 40pt*2\n  * 40pt*3\n  * 57pt\n  * 57pt*2\n  * 60pt*2\n  * 60pt*3.\n\n#### Android\n* Put ic_launcher.png to folder ``[PrjDir]/android/app/src/main/res/minmap-*`.\n  * 72*72 `ic_launcher.png` to `mipmap-hdpi`.\n  * 48*48 `ic_launcher.png` to `mipmap-mdpi`.\n  * 96*96 `ic_launcher.png` to `mipmap-xhdpi`\n  * 144*144 `ic_launcher.png` to `mipmap-xxhdpi`\n\n## Rename\n### Rename App Automatically\nUse [react-native-rename](https://github.com/junedomingo/react-native-rename) to automatically rename your react-native app fro iOS and Android\n\n### Rename App Manually Manual\nRenaming a react-native app manually is simple.\n#### iOS\nThe ***app name*** displayed on the iPhone home screen comes from the CFBundleDisplayName (or \"Bundle display ***name***\") as the human-readable string in Xcode) entry of your iOS app's info.plist.\n![display name](assets/images/cbfbundledisplayname-ss.png)\n\n#### Android\nThe app name on android comes from AndroidManifest.xml. Check the label attribute of `\u003capplication\u003e`\n\nThis value is typically referenced as a named variable, defined in strings.xml\n![app name](assets/images/app_name-ss.png)\n\n\n## CI\n\n### CI Comparison Table\n#### Legend\n\n✅ : Officially supported.\n\n❌ : Not supported.\n\n🔌 : Community supported or left to developer to integrate\n\n\u003cdiv\u003e\n\u003ca href=\"https://www.buddybuild.com/\"\u003e\n  \u003cimg\n  style=\"margin-right:20px; margin-top: 10px\"\n  width=\"200\" src=\"https://www.buddybuild.com//images/logo-dark@2x.png\" alt=\"BB logo\"/\u003e\n\u003c/a\u003e\n\n\u003ca href=\"https://mobile.azure.com/signup\"\u003e\n  \u003cimg width=\"200\"\n  style=\"margin-right:10px; margin-top: 20px;\"\n   src=\"/assets/images/vscode-mobile-center-logo.png\" alt=\"VS code mobile center\"/\u003e\n\u003c/a\u003e\n\u003c/div\u003e\n\n\u003ctable\u003e\n    \u003cthead\u003e\n        \u003ctr\u003e\n            \u003cth\u003e\u003cstrong\u003eFeature\u003c/strong\u003e\u003c/th\u003e\n            \u003cth\u003e\u003cstrong\u003eBuddy Build\u003c/strong\u003e\u003c/th\u003e\n            \u003cth\u003e\u003cstrong\u003eVS Mobile Center\u003c/strong\u003e\u003c/th\u003e\n        \u003c/tr\u003e\n    \u003c/thead\u003e\n    \u003ctbody\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003cstrong\u003eCrash Reports\u003c/strong\u003e\u003c/td\u003e\n            \u003ctd\u003e✅\u003c/td\u003e\n            \u003ctd\u003e✅\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003cstrong\u003eBug Reports\u003c/strong\u003e\u003c/td\u003e\n            \u003ctd\u003e✅\u003c/td\u003e\n            \u003ctd\u003e❌\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003cstrong\u003eInstant Replay\u003c/strong\u003e\u003c/td\u003e\n            \u003ctd\u003e✅\u003c/td\u003e\n            \u003ctd\u003e❌\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003cstrong\u003eAnalytics\u003c/strong\u003e\u003c/td\u003e\n            \u003ctd\u003e❌\u003c/td\u003e\n            \u003ctd\u003e✅\u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003cstrong\u003eDeploy to store\u003c/strong\u003e\u003c/td\u003e\n            \u003ctd\u003e✅\u003c/td\u003e\n            \u003ctd\u003e✅\u003c/td\u003e\n        \u003c/tr\u003e\n    \u003c/tbody\u003e\n\u003c/table\u003e\n\n\n## Certificates\n// @TODO\n\n## Use Fastlane Precheck\n\nMake sure to run fastlane's precheck before submitting your app to Apple's app store. From their repo:\n\u003eApple rejects builds for many avoidable metadata issues like including swear words 😮, other companies’ trademarks, or even mentioning an iOS bug 🐛. _fastlane precheck_ takes a lot of the guess work out by scanning your app’s details in iTunes Connect for avoidable problems. fastlane precheck helps you get your app through app review without rejections so you can ship faster 🚀\n\n[👉 👉Precheck👈 👈](https://github.com/fastlane/fastlane/tree/master/precheck)\n\n## Common App Rejection\n\nMake sure to read over Apple's common app rejection before submitting to the app store. These are the most common issues that apple rejects apps for, so save yourself the trouble and make sure your app won't be rejected for obvious reasons.\n\n👉 👉 [Apple Common Rejection 👈 👈](https://developer.apple.com/app-store/review/rejections/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fharrisrobin%2Freact-native-checklist","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fharrisrobin%2Freact-native-checklist","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fharrisrobin%2Freact-native-checklist/lists"}