{"id":21151656,"url":"https://github.com/ashirbadgudu/react-native-typescript-stater","last_synced_at":"2025-07-09T09:32:04.617Z","repository":{"id":37345846,"uuid":"495117094","full_name":"AshirbadGudu/react-native-typescript-stater","owner":"AshirbadGudu","description":"A react native typescript stater project with with all the types of navigation with proper types and folder structure ","archived":false,"fork":false,"pushed_at":"2023-10-02T15:00:36.000Z","size":4024,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-04T21:39:34.944Z","etag":null,"topics":["bottom-navigation","drawer-navigation","hacktoberfest2022","native-base","react-native","react-navigation","react-navigation-v6","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AshirbadGudu.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2022-05-22T16:38:04.000Z","updated_at":"2024-03-02T19:09:27.000Z","dependencies_parsed_at":"2023-10-02T18:15:59.562Z","dependency_job_id":null,"html_url":"https://github.com/AshirbadGudu/react-native-typescript-stater","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/AshirbadGudu/react-native-typescript-stater","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AshirbadGudu%2Freact-native-typescript-stater","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AshirbadGudu%2Freact-native-typescript-stater/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AshirbadGudu%2Freact-native-typescript-stater/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AshirbadGudu%2Freact-native-typescript-stater/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AshirbadGudu","download_url":"https://codeload.github.com/AshirbadGudu/react-native-typescript-stater/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AshirbadGudu%2Freact-native-typescript-stater/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264431113,"owners_count":23607186,"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":["bottom-navigation","drawer-navigation","hacktoberfest2022","native-base","react-native","react-navigation","react-navigation-v6","typescript"],"created_at":"2024-11-20T10:18:08.858Z","updated_at":"2025-07-09T09:32:04.010Z","avatar_url":"https://github.com/AshirbadGudu.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# React Native Typescript Setup\n\n## Setup Navigation\n\n### Install Navigation Packages\n\n```bash\nyarn add @react-navigation/native\nyarn add react-native-screens react-native-safe-area-context\n```\n\n### Install Pod for above dependencies\n\n```bash\ncd ios \u0026\u0026 arch -x86_64 pod install\n```\n\n### Set up `react-native-screens` by updating `android/app/src/main/java/\u003cyour package name\u003e/MainActivity.java` file\n\n```java\nimport android.os.Bundle;\n\npublic class MainActivity extends ReactActivity {\n  // ...\n  @Override\n  protected void onCreate(Bundle savedInstanceState) {\n    super.onCreate(null);\n  }\n  // ...\n}\n```\n\n### Install stack navigation\n\n```bash\nyarn add @react-navigation/native-stack\n```\n\n### Wrap the navigation with navigation container\n\n```tsx\nimport React from 'react';\nimport {NavigationContainer} from '@react-navigation/native';\n\nexport default function App() {\n  return (\n    \u003cNavigationContainer\u003e{/* Rest of your app code */}\u003c/NavigationContainer\u003e\n  );\n}\n```\n\n### Install Drawer Navigation package \u0026 other dependencies\n\n```bash\nyarn add @react-navigation/drawer react-native-gesture-handler react-native-reanimated\ncd ios \u0026\u0026 arch -x86_64 pod install\n```\n\n### Setup `react-native-gesture-handler` in `index.js`\n\n```js\nimport {AppRegistry} from 'react-native';\nimport App from './App';\nimport {name as appName} from './app.json';\nimport 'react-native-gesture-handler'; // this line add\nAppRegistry.registerComponent(appName, () =\u003e App);\n```\n\n### Settings up `react-native-reanimated/plugin`\n\n```js\nmodule.exports = {\n  presets: ['module:metro-react-native-babel-preset'],\n  plugins: ['react-native-reanimated/plugin'], // this line add\n};\n```\n\n### Reset the server cache\n\n```bash\nyarn start --reset-cache\n```\n\n### Install Bottom Navigation package\n\n```bash\nyarn add @react-navigation/bottom-tabs\n```\n\n### Setup absolute imports\n\n#### Install `babel-plugin-module-resolver`\n\n```bash\nyarn add -D babel-plugin-module-resolver\n```\n\n#### Update the `babel.config.js` file\n\n```js\nmodule.exports = {\n  presets: ['module:metro-react-native-babel-preset'],\n  plugins: [\n    [\n      'module-resolver',\n      {\n        root: ['./src'],\n        alias: {\n          '~/assets': './src/assets',\n          '~/components': './src/components',\n          '~/components/core': './src/components/core',\n          '~/components/containers': './src/components/containers',\n          '~/components/shared': './src/components/shared',\n          '~/configs': './src/configs',\n          '~/constant': './src/constant',\n          '~/hooks': './src/hooks',\n          '~/routes': './src/routes',\n          '~/screens': './src/screens',\n          '~/styles': './src/styles',\n          '~/types': './src/types',\n        },\n      },\n    ],\n  ],\n};\n```\n\n#### Update `tsconfig.json` file\n\n```json\n{\n  \"extends\": \"@tsconfig/react-native/tsconfig.json\",\n  \"compilerOptions\": {\n    \"baseUrl\": \"./src\",\n    \"paths\": {\n      \"~/*\": [\"*\"]\n    }\n  }\n}\n```\n\n### Install lottie animation library\n\n```bash\nyarn add lottie-react-native lottie-ios@3.4.0\n```\n\n### Install Image Picker library\n\n#### Install `react-native-image-crop-picker` library\n\n```bash\nyarn add react-native-image-crop-picker\n```\n\n#### Update permissions in `AndroidManifest.xml` file for android\n\n```xml\n\u003c!-- Camera permission required to access picture from camera --\u003e\n\u003cuses-permission android:name=\"android.permission.CAMERA\" /\u003e\n```\n\n#### Update permission in `info.plist` for ios\n\n```plist\n\u003ckey\u003eNSPhotoLibraryUsageDescription\u003c/key\u003e\n\u003cstring\u003eThis app uses the gallery to update photo of your profile\u003c/string\u003e\n\u003ckey\u003eNSCameraUsageDescription\u003c/key\u003e\n\u003cstring\u003eThis app uses the camera to take pictures for updating profile photo\u003c/string\u003e\n```\n\n### Add Custom Font Family To Your Application\n\n#### Create a file named `react-native.config.js`\n\n```js\nmodule.exports = {\n  project: {\n    ios: {},\n    android: {},\n  },\n  assets: ['./src/assets/fonts'], // path to the fonts directory\n};\n```\n\n#### Run the following command to add all the assets to both the platforms\n\n```bash\nnpx react-native-asset\n```\n\n### Install vector icons\n\n#### Install `react-native-vector-icons` and its types\n\n```bash\nyarn add react-native-vector-icons\nyarn add -D @types/react-native-vector-icons\n```\n\n#### For android open `android/app/build.gradle` and add following\n\n```gradle\napply from: \"../../node_modules/react-native-vector-icons/fonts.gradle\"\n```\n\n#### Update following in `info.plist` for ios\n\n```plist\n\u003ckey\u003eUIAppFonts\u003c/key\u003e\n\u003carray\u003e\n  \u003cstring\u003eAntDesign.ttf\u003c/string\u003e\n  \u003cstring\u003eEntypo.ttf\u003c/string\u003e\n  \u003cstring\u003eEvilIcons.ttf\u003c/string\u003e\n  \u003cstring\u003eFeather.ttf\u003c/string\u003e\n  \u003cstring\u003eFontAwesome.ttf\u003c/string\u003e\n  \u003cstring\u003eFontAwesome5_Brands.ttf\u003c/string\u003e\n  \u003cstring\u003eFontAwesome5_Regular.ttf\u003c/string\u003e\n  \u003cstring\u003eFontAwesome5_Solid.ttf\u003c/string\u003e\n  \u003cstring\u003eFoundation.ttf\u003c/string\u003e\n  \u003cstring\u003eIonicons.ttf\u003c/string\u003e\n  \u003cstring\u003eMaterialIcons.ttf\u003c/string\u003e\n  \u003cstring\u003eMaterialCommunityIcons.ttf\u003c/string\u003e\n  \u003cstring\u003eSimpleLineIcons.ttf\u003c/string\u003e\n  \u003cstring\u003eOcticons.ttf\u003c/string\u003e\n  \u003cstring\u003eZocial.ttf\u003c/string\u003e\n  \u003cstring\u003eFontisto.ttf\u003c/string\u003e\n\u003c/array\u003e\n```\n\n#### Install Pod\n\n```bash\ncd ios \u0026\u0026 arch -x86_64 pod install --repo-update \u0026\u0026 cd ..\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fashirbadgudu%2Freact-native-typescript-stater","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fashirbadgudu%2Freact-native-typescript-stater","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fashirbadgudu%2Freact-native-typescript-stater/lists"}