React Native Template Obytes

Last update: May 10, 2022

React Native Template Obytes

React Native Template Obytes

๐Ÿ“ฑ A template for your next React Native project ๐Ÿš€ , Made with developer experience and performance first: TypeScript, Husky, Lint-Staged, react-navigation, react-query, restyle, react-hook-form, AppIcon, Splash Screen.

๐Ÿš€ Use the template to start your next project or navigate to code source to get some inspiration ๐Ÿ˜‰

โญ Features

  • โœ… Last React Native version
  • ๐ŸŽ‰ Type checking TypeScript
  • ๐Ÿ’… Minimal UI kit using @shopify/restyle with theming
  • ๐Ÿค– Auto generate App Icon using react-native-make and Splash screen using react-native-bootsplash
  • ๐ŸฆŠ Husky for Git Hooks
  • ๐Ÿ’ก Clean project structure with Absolute Imports
  • ๐Ÿšซ Lint-staged for running linters on Git staged files
  • ๐Ÿ—‚ VSCode recommended extensions configuration
  • โ˜‚๏ธ React Navigation pre-installed with examples
  • ๐Ÿ’ซ Auth flow with zustand and react-native-mmkv as a storage to save sensitive data.
  • ๐Ÿ›  A simple workflow to build, release and distribute your application using Github action
  • ๐Ÿ”ฅ React Query & axios to fetch Data
  • ๐Ÿงต A good approach with example to handle forms based on react-hook-form and yup for validation
  • โš™๏ธ Handel environment variables with react-native-env
  • ๐ŸŽฏ Localization

๐ŸŽค Philosophy

  • ๐Ÿš€ Production-ready
  • ๐Ÿงฉ Minimal code
  • โš ๏ธ well maintained third-party libraries

๐Ÿ›  Requirements

๐Ÿค– Getting started

Start your project using obytes template by running:

npx react-native init MyApp --template https://github.com/obytes/react-native-template-obytes

Open the project on your favorite IDE (vscode ๐Ÿ˜‰ )

src
โ”œโ”€โ”€ api                    #axios client and api hooks using react-query
โ”‚ย ย  โ”œโ”€โ”€ APIProvider.tsx
โ”‚ย ย  โ”œโ”€โ”€ client.tsx
โ”‚ย ย  โ”œโ”€โ”€ index.tsx
โ”‚ย ย  โ”œโ”€โ”€ useAddTask.tsx
โ”‚ย ย  โ””โ”€โ”€ useTasks.tsx
โ”œโ”€โ”€ core                   # core functionalities:authentication, storage, localization
โ”‚ย ย  โ”œโ”€โ”€ Auth
โ”‚ย ย  โ”œโ”€โ”€ I18n
โ”‚ย ย  โ””โ”€โ”€ index.tsx
โ”œโ”€โ”€ index.tsx
โ”œโ”€โ”€ navigation             # Navigation, stacks and tabs
โ”‚ย ย  โ”œโ”€โ”€ AuthNavigator.tsx
โ”‚ย ย  โ”œโ”€โ”€ RootNavigator.tsx
โ”‚ย ย  โ”œโ”€โ”€ TabNavigator.tsx
โ”‚ย ย  โ”œโ”€โ”€ index.tsx
โ”‚ย ย  โ”œโ”€โ”€ types.tsx
โ”‚ย ย  โ””โ”€โ”€ utils.tsx
โ”œโ”€โ”€ screens                # App screens
โ”‚ย ย  โ”œโ”€โ”€ Home
โ”‚ย ย  โ”œโ”€โ”€ Login
โ”‚ย ย  โ”œโ”€โ”€ Style
โ”‚ย ย  โ””โ”€โ”€ index.tsx
โ”œโ”€โ”€ translations          # translation files
โ”‚ย ย  โ””โ”€โ”€ en.json
โ””โ”€โ”€ ui                    # ui component with theming
    โ”œโ”€โ”€ Button.tsx
    โ”œโ”€โ”€ ErrorHandler
    โ”œโ”€โ”€ Input.tsx
    โ”œโ”€โ”€ Pressable.tsx
    โ”œโ”€โ”€ SafeAreaView.tsx
    โ”œโ”€โ”€ Screen.tsx
    โ”œโ”€โ”€ Text.tsx
    โ”œโ”€โ”€ View.tsx
    โ”œโ”€โ”€ constants.tsx
    โ”œโ”€โ”€ icons
    โ”œโ”€โ”€ index.tsx
    โ”œโ”€โ”€ theme
    โ””โ”€โ”€ utils.tsx

Enable husky Git pre-hooks by adding the following script to your packages.json and reinstall dependencies to enable husky pre-commit using yarn install

   "scripts": {
      "postinstall": "husky install",
    },

๐Ÿงฉ Customization

๐Ÿ“ฒ Update App Icon & Splash screen

Replace App logo template logo.png with your logo under assets folder

Run the following command to generate App icons assets :

yarn react-native set-icon  --path ./assets/logo.png --background "#FFF"

For android icon, make sure to provide a logo with more padding and generate a new app icon for android :

yarn react-native set-icon  --platform android  --path ./assets/android_logo.png --background "#FFF"

To generate a standard splash screen using bootsplash package.

yarn react-native generate-bootsplash assets/logo.png \
  --background-color=FFFFFF \
  --logo-width=150 \
  --assets-path=assets

โœ๏ธ Custom fonts

Replace Inter.ttf font file with your fonts under assets/fonts folder

Run the following command to generate App icons assets :

yarn react-native link

More details how to customize App Icon and Splash screen

๐Ÿ“š Read More About Modules

๐Ÿ‘‰ https://handbook.obytes.com/docs/mobile/get-started

Releasing and building the app with Github action

๐Ÿ‘‰ https://handbook.obytes.com/docs/mobile/ci-cd/github-action-build

๐Ÿ”– License

This project is MIT licensed.

GitHub

https://github.com/obytes/react-native-template-obytes
Comments
  • 1. Error while trying to run template

    Hi I've got an error while trying to run the template. Its kinda weird because I can run other projects fine, etc.

    Log

    yarn run v1.22.17
    $ react-native run-android
    info Running jetifier to migrate libraries to AndroidX. You can disable it using "--no-jetifier" flag.
    Jetifier found 1033 file(s) to forward-jetify. Using 6 workers...
    info JS server already running.
    info Installing the app...
    
    > Configure project :react-native-mmkv
    MMKV: node_modules/ found at: /home/reactnative/obytes/template/node_modules
    
    Deprecated Gradle features were used in this build, making it incompatible with Gradle 8.0.
    
    You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.
    
    See https://docs.gradle.org/7.2/userguide/command_line_interface.html#sec:command_line_warnings
    
    FAILURE: Build failed with an exception.
    
    * What went wrong:
    A problem occurred configuring project ':react-native-mmkv'.
    > com.android.builder.errors.EvalIssueException: NDK at /home/enrique/Android/Sdk/ndk/21.4.7075529 did not have a source.properties file
    
    * Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
    
    * Get more help at https://help.gradle.org
    
    BUILD FAILED in 4s
    
    error Failed to install the app. Make sure you have the Android development environment set up: https://reactnative.dev/docs/environment-setup.
    Error: Command failed: ./gradlew app:installDebug -PreactNativeDevServerPort=8081
    
    FAILURE: Build failed with an exception.
    
    * What went wrong:
    A problem occurred configuring project ':react-native-mmkv'.
    > com.android.builder.errors.EvalIssueException: NDK at /home/enrique/Android/Sdk/ndk/21.4.7075529 did not have a source.properties file
    
    * Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
    
    * Get more help at https://help.gradle.org
    
    BUILD FAILED in 4s
    
        at makeError (/home/enrique/reactnative/obytes/template/node_modules/execa/index.js:174:9)
        at /home/enrique/reactnative/obytes/template/node_modules/execa/index.js:278:16
        at processTicksAndRejections (node:internal/process/task_queues:96:5)
        at async runOnAllDevices (/home/enrique/reactnative/obytes/template/node_modules/@react-native-community/cli-platform-android/build/commands/runAndroid/runOnAllDevices.js:106:5)
        at async Command.handleAction (/home/enrique/reactnative/obytes/template/node_modules/@react-native-community/cli/build/index.js:192:9)
    info Run CLI with --verbose flag for more details.
    error Command failed with exit code 1.
    info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
    
    

    React-native info

    info Fetching system and libraries information...
    System:
        OS: Linux 5.4 elementary OS 5.1.7 Hera
        CPU: (6) x64 Intel(R) Core(TM) i5-9400 CPU @ 2.90GHz
        Memory: 512.02 MB / 15.50 GB
        Shell: 4.4.20 - /bin/bash
      Binaries:
        Node: 16.13.2 - /usr/bin/node
        Yarn: 1.22.17 - /usr/bin/yarn
        npm: 8.3.1 - /usr/bin/npm
        Watchman: Not Found
      SDKs:
        Android SDK:
          Android NDK: 22.1.7171670
      IDEs:
        Android Studio: AI-203.7717.56.2031.7784292
      Languages:
        Java: 11.0.13 - /usr/bin/javac
      npmPackages:
        @react-native-community/cli: Not Found
        react: 17.0.2 => 17.0.2 
        react-native: 0.67.1 => 0.67.1 
      npmGlobalPackages:
        *react-native*: Not Found
    
    

    Thanks for any tip you can give me

    Reviewed by kabeza at 2022-02-01 15:49
  • 2. Error when importing the android project in Android Studio Bumblebee | 2021.1.1

    Problem

    After importing the android folder in Android Studio, gradle starts the import process, but fails and rises the exception : org.gradle.api.GradleScriptException

    Logs

    
    :ReactNative:Running '[node, -e, console.log(require('react-native/cli').bin);]' command failed.
    
    FAILURE: Build failed with an exception.
    
    * Where:
    Script '/Users/mohamed/Documents/Workspace/ReactNative/MyAppp/node_modules/@react-native-community/cli-platform-android/native_modules.gradle' line: 197
    
    * What went wrong:
    A problem occurred evaluating script.
    > Cannot run program "node" (in directory "/Users/mohamed/Documents/Workspace/ReactNative/MyAppp/android"): error=2, No such file or directory
    
    * Try:
    Run with --info or --debug option to get more log output. Run with --scan to get full insights.
    
    * Exception is:
    org.gradle.api.GradleScriptException: A problem occurred evaluating script.
    	at org.gradle.groovy.scripts.internal.DefaultScriptRunnerFactory$ScriptRunnerImpl.run(DefaultScriptRunnerFactory.java:93)
    	at org.gradle.configuration.DefaultScriptPluginFactory$ScriptPluginImpl.lambda$apply$0(DefaultScriptPluginFactory.java:133)
    	at org.gradle.configuration.DefaultScriptTarget.addConfiguration(DefaultScriptTarget.java:74)
    	at org.gradle.configuration.DefaultScriptPluginFactory$ScriptPluginImpl.apply(DefaultScriptPluginFactory.java:136)
    	at org.gradle.configuration.BuildOperationScriptPlugin$1.run(BuildOperationScriptPlugin.java:65)
    	at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29)
    	at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26)
    	at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:75)
    	at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:68)
    	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:153)
    	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:68)
    	at org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:56)
    	at org.gradle.internal.operations.DefaultBuildOperationExecutor.lambda$run$1(DefaultBuildOperationExecutor.java:74)
    	at org.gradle.internal.operations.UnmanagedBuildOperationWrapper.runWithUnmanagedSupport(UnmanagedBuildOperationWrapper.java:45)
    	at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:74)
    	at org.gradle.configuration.BuildOperationScriptPlugin.lambda$apply$0(BuildOperationScriptPlugin.java:62)
    	at org.gradle.configuration.internal.DefaultUserCodeApplicationContext.apply(DefaultUserCodeApplicationContext.java:44)
    	at org.gradle.configuration.BuildOperationScriptPlugin.apply(BuildOperationScriptPlugin.java:62)
    	at org.gradle.api.internal.plugins.DefaultObjectConfigurationAction.applyScript(DefaultObjectConfigurationAction.java:156)
    	at org.gradle.api.internal.plugins.DefaultObjectConfigurationAction.access$000(DefaultObjectConfigurationAction.java:43)
    	at org.gradle.api.internal.plugins.DefaultObjectConfigurationAction$1.run(DefaultObjectConfigurationAction.java:76)
    	at org.gradle.api.internal.plugins.DefaultObjectConfigurationAction.execute(DefaultObjectConfigurationAction.java:190)
    	at org.gradle.groovy.scripts.DefaultScript.apply(DefaultScript.java:128)
    	at org.gradle.api.Script$apply.callCurrent(Unknown Source)
    	at settings_dzobagufg0clpsgkc220dpsb0.run(/Users/mohamed/Documents/Workspace/ReactNative/MyAppp/android/settings.gradle:2)
    	at org.gradle.groovy.scripts.internal.DefaultScriptRunnerFactory$ScriptRunnerImpl.run(DefaultScriptRunnerFactory.java:91)
    	at org.gradle.configuration.DefaultScriptPluginFactory$ScriptPluginImpl.lambda$apply$0(DefaultScriptPluginFactory.java:133)
    	at org.gradle.configuration.DefaultScriptTarget.addConfiguration(DefaultScriptTarget.java:74)
    	at org.gradle.configuration.DefaultScriptPluginFactory$ScriptPluginImpl.apply(DefaultScriptPluginFactory.java:136)
    	at org.gradle.configuration.BuildOperationScriptPlugin$1.run(BuildOperationScriptPlugin.java:65)
    	at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29)
    	at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26)
    	at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:75)
    	at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:68)
    	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:153)
    	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:68)
    	at org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:56)
    	at org.gradle.internal.operations.DefaultBuildOperationExecutor.lambda$run$1(DefaultBuildOperationExecutor.java:74)
    	at org.gradle.internal.operations.UnmanagedBuildOperationWrapper.runWithUnmanagedSupport(UnmanagedBuildOperationWrapper.java:45)
    	at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:74)
    	at org.gradle.configuration.BuildOperationScriptPlugin.lambda$apply$0(BuildOperationScriptPlugin.java:62)
    	at org.gradle.configuration.internal.DefaultUserCodeApplicationContext.apply(DefaultUserCodeApplicationContext.java:44)
    	at org.gradle.configuration.BuildOperationScriptPlugin.apply(BuildOperationScriptPlugin.java:62)
    	at org.gradle.initialization.ScriptEvaluatingSettingsProcessor.applySettingsScript(ScriptEvaluatingSettingsProcessor.java:74)
    	at org.gradle.initialization.ScriptEvaluatingSettingsProcessor.process(ScriptEvaluatingSettingsProcessor.java:67)
    	at org.gradle.initialization.SettingsEvaluatedCallbackFiringSettingsProcessor.process(SettingsEvaluatedCallbackFiringSettingsProcessor.java:34)
    	at org.gradle.initialization.RootBuildCacheControllerSettingsProcessor.process(RootBuildCacheControllerSettingsProcessor.java:47)
    	at org.gradle.initialization.BuildOperationSettingsProcessor$2.call(BuildOperationSettingsProcessor.java:50)
    	at org.gradle.initialization.BuildOperationSettingsProcessor$2.call(BuildOperationSettingsProcessor.java:47)
    	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:200)
    	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:195)
    	at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:75)
    	at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:68)
    	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:153)
    	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:68)
    	at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:62)
    	at org.gradle.internal.operations.DefaultBuildOperationExecutor.lambda$call$2(DefaultBuildOperationExecutor.java:79)
    	at org.gradle.internal.operations.UnmanagedBuildOperationWrapper.callWithUnmanagedSupport(UnmanagedBuildOperationWrapper.java:54)
    	at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:79)
    	at org.gradle.initialization.BuildOperationSettingsProcessor.process(BuildOperationSettingsProcessor.java:47)
    	at org.gradle.initialization.DefaultSettingsLoader.findSettingsAndLoadIfAppropriate(DefaultSettingsLoader.java:119)
    	at org.gradle.initialization.DefaultSettingsLoader.findAndLoadSettings(DefaultSettingsLoader.java:56)
    	at org.gradle.initialization.SettingsAttachingSettingsLoader.findAndLoadSettings(SettingsAttachingSettingsLoader.java:35)
    	at org.gradle.internal.composite.CommandLineIncludedBuildSettingsLoader.findAndLoadSettings(CommandLineIncludedBuildSettingsLoader.java:34)
    	at org.gradle.internal.composite.ChildBuildRegisteringSettingsLoader.findAndLoadSettings(ChildBuildRegisteringSettingsLoader.java:48)
    	at org.gradle.internal.composite.CompositeBuildSettingsLoader.findAndLoadSettings(CompositeBuildSettingsLoader.java:35)
    	at org.gradle.initialization.InitScriptHandlingSettingsLoader.findAndLoadSettings(InitScriptHandlingSettingsLoader.java:34)
    	at org.gradle.initialization.GradlePropertiesHandlingSettingsLoader.findAndLoadSettings(GradlePropertiesHandlingSettingsLoader.java:39)
    	at org.gradle.initialization.DefaultSettingsPreparer.prepareSettings(DefaultSettingsPreparer.java:31)
    	at org.gradle.initialization.BuildOperationFiringSettingsPreparer$LoadBuild.doLoadBuild(BuildOperationFiringSettingsPreparer.java:62)
    	at org.gradle.initialization.BuildOperationFiringSettingsPreparer$LoadBuild.run(BuildOperationFiringSettingsPreparer.java:57)
    	at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29)
    	at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26)
    	at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:75)
    	at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:68)
    	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:153)
    	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:68)
    	at org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:56)
    	at org.gradle.internal.operations.DefaultBuildOperationExecutor.lambda$run$1(DefaultBuildOperationExecutor.java:74)
    	at org.gradle.internal.operations.UnmanagedBuildOperationWrapper.runWithUnmanagedSupport(UnmanagedBuildOperationWrapper.java:45)
    	at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:74)
    	at org.gradle.initialization.BuildOperationFiringSettingsPreparer.prepareSettings(BuildOperationFiringSettingsPreparer.java:45)
    	at org.gradle.initialization.VintageBuildModelController.prepareSettings(VintageBuildModelController.java:90)
    	at org.gradle.initialization.VintageBuildModelController.doBuildStages(VintageBuildModelController.java:73)
    	at org.gradle.initialization.VintageBuildModelController.prepareToScheduleTasks(VintageBuildModelController.java:64)
    	at org.gradle.internal.build.DefaultBuildLifecycleController.lambda$prepareToScheduleTasks$0(DefaultBuildLifecycleController.java:104)
    	at org.gradle.internal.build.DefaultBuildLifecycleController.lambda$withModelOrThrow$5(DefaultBuildLifecycleController.java:142)
    	at org.gradle.internal.build.DefaultBuildLifecycleController.withModel(DefaultBuildLifecycleController.java:157)
    	at org.gradle.internal.build.DefaultBuildLifecycleController.withModelOrThrow(DefaultBuildLifecycleController.java:140)
    	at org.gradle.internal.build.DefaultBuildLifecycleController.prepareToScheduleTasks(DefaultBuildLifecycleController.java:102)
    	at org.gradle.internal.buildtree.DefaultBuildTreeWorkPreparer.scheduleRequestedTasks(DefaultBuildTreeWorkPreparer.java:33)
    	at org.gradle.internal.buildtree.DefaultBuildTreeLifecycleController.lambda$doScheduleAndRunTasks$1(DefaultBuildTreeLifecycleController.java:83)
    	at org.gradle.composite.internal.DefaultIncludedBuildTaskGraph.withNewTaskGraph(DefaultIncludedBuildTaskGraph.java:94)
    	at org.gradle.internal.buildtree.DefaultBuildTreeLifecycleController.doScheduleAndRunTasks(DefaultBuildTreeLifecycleController.java:82)
    	at org.gradle.internal.buildtree.DefaultBuildTreeLifecycleController.lambda$fromBuildModel$0(DefaultBuildTreeLifecycleController.java:71)
    	at org.gradle.internal.buildtree.DefaultBuildTreeLifecycleController.runBuild(DefaultBuildTreeLifecycleController.java:104)
    	at org.gradle.internal.buildtree.DefaultBuildTreeLifecycleController.fromBuildModel(DefaultBuildTreeLifecycleController.java:69)
    	at org.gradle.tooling.internal.provider.runner.AbstractClientProvidedBuildActionRunner.runClientAction(AbstractClientProvidedBuildActionRunner.java:56)
    	at org.gradle.tooling.internal.provider.runner.ClientProvidedPhasedActionRunner.run(ClientProvidedPhasedActionRunner.java:53)
    	at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
    	at org.gradle.internal.buildtree.ProblemReportingBuildActionRunner.run(ProblemReportingBuildActionRunner.java:47)
    	at org.gradle.launcher.exec.BuildOutcomeReportingBuildActionRunner.run(BuildOutcomeReportingBuildActionRunner.java:69)
    	at org.gradle.tooling.internal.provider.FileSystemWatchingBuildActionRunner.run(FileSystemWatchingBuildActionRunner.java:91)
    	at org.gradle.launcher.exec.BuildCompletionNotifyingBuildActionRunner.run(BuildCompletionNotifyingBuildActionRunner.java:41)
    	at org.gradle.launcher.exec.RootBuildLifecycleBuildActionExecutor.lambda$execute$0(RootBuildLifecycleBuildActionExecutor.java:40)
    	at org.gradle.composite.internal.DefaultRootBuildState.run(DefaultRootBuildState.java:154)
    	at org.gradle.launcher.exec.RootBuildLifecycleBuildActionExecutor.execute(RootBuildLifecycleBuildActionExecutor.java:40)
    	at org.gradle.internal.buildtree.DefaultBuildTreeContext.execute(DefaultBuildTreeContext.java:40)
    	at org.gradle.launcher.exec.BuildTreeLifecycleBuildActionExecutor.lambda$execute$0(BuildTreeLifecycleBuildActionExecutor.java:56)
    	at org.gradle.internal.buildtree.BuildTreeState.run(BuildTreeState.java:53)
    	at org.gradle.launcher.exec.BuildTreeLifecycleBuildActionExecutor.execute(BuildTreeLifecycleBuildActionExecutor.java:56)
    	at org.gradle.launcher.exec.RunAsBuildOperationBuildActionExecutor$3.call(RunAsBuildOperationBuildActionExecutor.java:61)
    	at org.gradle.launcher.exec.RunAsBuildOperationBuildActionExecutor$3.call(RunAsBuildOperationBuildActionExecutor.java:57)
    	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:200)
    	at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:195)
    	at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:75)
    	at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:68)
    	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:153)
    	at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:68)
    	at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:62)
    	at org.gradle.internal.operations.DefaultBuildOperationExecutor.lambda$call$2(DefaultBuildOperationExecutor.java:79)
    	at org.gradle.internal.operations.UnmanagedBuildOperationWrapper.callWithUnmanagedSupport(UnmanagedBuildOperationWrapper.java:54)
    	at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:79)
    	at org.gradle.launcher.exec.RunAsBuildOperationBuildActionExecutor.execute(RunAsBuildOperationBuildActionExecutor.java:57)
    	at org.gradle.launcher.exec.RunAsWorkerThreadBuildActionExecutor.lambda$execute$0(RunAsWorkerThreadBuildActionExecutor.java:38)
    	at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:211)
    	at org.gradle.launcher.exec.RunAsWorkerThreadBuildActionExecutor.execute(RunAsWorkerThreadBuildActionExecutor.java:38)
    	at org.gradle.tooling.internal.provider.ContinuousBuildActionExecutor.execute(ContinuousBuildActionExecutor.java:103)
    	at org.gradle.tooling.internal.provider.SubscribableBuildActionExecutor.execute(SubscribableBuildActionExecutor.java:64)
    	at org.gradle.internal.session.DefaultBuildSessionContext.execute(DefaultBuildSessionContext.java:46)
    	at org.gradle.tooling.internal.provider.BuildSessionLifecycleBuildActionExecuter.lambda$execute$0(BuildSessionLifecycleBuildActionExecuter.java:56)
    	at org.gradle.internal.session.BuildSessionState.run(BuildSessionState.java:69)
    	at org.gradle.tooling.internal.provider.BuildSessionLifecycleBuildActionExecuter.execute(BuildSessionLifecycleBuildActionExecuter.java:55)
    	at org.gradle.tooling.internal.provider.BuildSessionLifecycleBuildActionExecuter.execute(BuildSessionLifecycleBuildActionExecuter.java:37)
    	at org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:36)
    	at org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:25)
    	at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:63)
    	at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:31)
    	at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:58)
    	at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:42)
    	at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:47)
    	at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:31)
    	at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:65)
    	at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:37)
    	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
    	at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:39)
    	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
    	at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:29)
    	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
    	at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:35)
    	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
    	at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.create(ForwardClientInput.java:78)
    	at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.create(ForwardClientInput.java:75)
    	at org.gradle.util.internal.Swapper.swap(Swapper.java:38)
    	at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:75)
    	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
    	at org.gradle.launcher.daemon.server.exec.LogAndCheckHealth.execute(LogAndCheckHealth.java:55)
    	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
    	at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:63)
    	at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:37)
    	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
    	at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:84)
    	at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:37)
    	at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
    	at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:52)
    	at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:297)
    	at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
    	at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
    	at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:61)
    Caused by: java.io.IOException: Cannot run program "node" (in directory "/Users/mohamed/Documents/Workspace/ReactNative/MyAppp/android"): error=2, No such file or directory
    	at java_lang_Runtime$exec$0.call(Unknown Source)
    	at ReactNativeModules.getCommandOutput(/Users/mohamed/Documents/Workspace/ReactNative/MyAppp/node_modules/@react-native-community/cli-platform-android/native_modules.gradle:197)
    	at ReactNativeModules$getCommandOutput$0.callCurrent(Unknown Source)
    	at ReactNativeModules.getReactNativeConfig(/Users/mohamed/Documents/Workspace/ReactNative/MyAppp/node_modules/@react-native-community/cli-platform-android/native_modules.gradle:241)
    	at ReactNativeModules$getReactNativeConfig.callCurrent(Unknown Source)
    	at ReactNativeModules.<init>(/Users/mohamed/Documents/Workspace/ReactNative/MyAppp/node_modules/@react-native-community/cli-platform-android/native_modules.gradle:84)
    	at native_modules_87ekvo5vq0sbr329t4wcemzt4.run(/Users/mohamed/Documents/Workspace/ReactNative/MyAppp/node_modules/@react-native-community/cli-platform-android/native_modules.gradle:306)
    	at org.gradle.groovy.scripts.internal.DefaultScriptRunnerFactory$ScriptRunnerImpl.run(DefaultScriptRunnerFactory.java:91)
    	... 168 more
    Caused by: java.io.IOException: error=2, No such file or directory
    	... 176 more
    
    
    * Get more help at https://help.gradle.org
    
    BUILD FAILED in 952ms
    
    

    Android Studio version : Bumblebee | 2021.1.1 Installed Android SDK : Android API 32

    Reviewed by ahdidou-mohamed at 2022-02-01 17:07
  • 3. Error when executing npx react-native run-android

    Problem description After setting up a project using the template I tried to run the project using this command as suggested by the CLI npx react-native run-android

    Before that I launched the emulator in my machine

    Logs

    โฏ  npx react-native run-android
    info Running jetifier to migrate libraries to AndroidX. You can disable it using "--no-jetifier" flag.
    Jetifier found 1033 file(s) to forward-jetify. Using 16 workers...
    info Starting JS server...
    info Installing the app...
    Starting a Gradle Daemon, 1 busy and 2 incompatible Daemons could not be reused, use --status for details
    
    > Configure project :react-native-mmkv
    MMKV: node_modules/ found at: /Users/mohamed/Documents/Workspace/ReactNative/MyAppp/node_modules
    
    Deprecated Gradle features were used in this build, making it incompatible with Gradle 8.0.
    
    You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.
    
    See https://docs.gradle.org/7.2/userguide/command_line_interface.html#sec:command_line_warnings
    
    FAILURE: Build failed with an exception.
    
    * What went wrong:
    A problem occurred configuring project ':react-native-mmkv'.
    > com.android.builder.errors.EvalIssueException: NDK at /Users/mohamed/Library/Android/sdk/ndk/21.4.7075529 did not have a source.properties file
    
    * Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
    
    * Get more help at https://help.gradle.org
    
    BUILD FAILED in 24s
    
    error Failed to install the app. Make sure you have the Android development environment set up: https://reactnative.dev/docs/environment-setup.
    Error: Command failed: ./gradlew app:installDebug -PreactNativeDevServerPort=8081
    
    FAILURE: Build failed with an exception.
    
    * What went wrong:
    A problem occurred configuring project ':react-native-mmkv'.
    > com.android.builder.errors.EvalIssueException: NDK at /Users/mohamed/Library/Android/sdk/ndk/21.4.7075529 did not have a source.properties file
    
    * Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
    
    * Get more help at https://help.gradle.org
    
    BUILD FAILED in 24s
    
        at makeError (/Users/mohamed/Documents/Workspace/ReactNative/MyAppp/node_modules/execa/index.js:174:9)
        at /Users/mohamed/Documents/Workspace/ReactNative/MyAppp/node_modules/execa/index.js:278:16
        at processTicksAndRejections (node:internal/process/task_queues:96:5)
        at async runOnAllDevices (/Users/mohamed/Documents/Workspace/ReactNative/MyAppp/node_modules/@react-native-community/cli-platform-android/build/commands/runAndroid/runOnAllDevices.js:106:5)
        at async Command.handleAction (/Users/mohamed/Documents/Workspace/ReactNative/MyAppp/node_modules/@react-native-community/cli/build/index.js:192:9)
    info Run CLI with --verbose flag for more details.
    
    Reviewed by ahdidou-mohamed at 2022-02-01 17:00
  • 4. How to upgrade template

    Hi I've started the template by doing (as suggested) npx react-native init MyApp --template https://github.com/obytes/react-native-template-obytes

    With the latest release published recently 1.5.1 Release

    How could I update my project with the latest changes? Of course git pull, git fetch won't work because I didn't clone the repository

    Thanks

    Reviewed by kabeza at 2022-02-09 12:25
  • 5. App generation not proper

    Executing npx react-native init MyApp --template https://github.com/obytes/react-native-template-obytes only clones the template and not actually generating a react native project. src folder is not added Screenshot 2021-06-25 at 5 10 17 PM

    Reviewed by preetb123 at 2021-06-25 11:44
  • 6. chore: migrate to RN67 & upgrade deps

    Reviewed by yjose at 2022-01-25 16:10
  • 7. Got issue ".git can't be found" on installation

    yarn install yarn install v1.22.10 [1/4] ๐Ÿ” Resolving packages... success Already up-to-date. $ husky install /Users/hungnguyen/project/silenteer/prevention/mobile/mobile/node_modules/husky/lib/commands/install.js:20 throw new Error(".git can't be found"); ^

    Error: .git can't be found at Object.install (/Users/hungnguyen/project/silenteer/prevention/mobile/mobile/node_modules/husky/lib/commands/install.js:20:15) at Object. (/Users/hungnguyen/project/silenteer/prevention/mobile/mobile/node_modules/husky/lib/bin.js:51:19) at Module._compile (internal/modules/cjs/loader.js:1256:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:1277:10) at Module.load (internal/modules/cjs/loader.js:1105:32) at Function.Module._load (internal/modules/cjs/loader.js:967:14) at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:60:12) at internal/main/run_main_module.js:17:47

    Reviewed by hungkoala at 2021-05-24 05:18
  • 8. react-native-make is archived

    Hi!

    You have a really nice template here, I think I'll use it for the next project :) I was checking the dependecies and looks like react-native-make is no longer maintained. I'm not sure what's going on at Bamlab, they even have a deprecation notice for an other package of theirs, stating they're migrating that packages capabilites to react-native-make.

    I use fastlane for app icons, but since SVGs are already part of this template, you might want to take a look at this package.

    Reviewed by KBSchmidt at 2022-02-02 10:19
๐Ÿ”ฎ Sofia React Template - Admin Dashboard Template built with React
๐Ÿ”ฎ Sofia React Template - Admin Dashboard Template built with React

?? Sofia React Template - Admin Dashboard Template built with React

May 12, 2022
This is a template for a Typescript-powered, redux-equipped, React application template supported by Eslint and other basic rules.

Getting Started with React-TS-Redux-App This project was bootstrapped with Create React App. What is it This is a template for Typescript powered, red

Oct 25, 2021
Minimal-one-page-template - Clean and Minimalistic One Page Template Built With React.js
Minimal-one-page-template - Clean and Minimalistic One Page Template Built With React.js

Minimal One Page Clean and Minimalistic One Page Template. Be sure to send your

Mar 7, 2022
This project is a template for ReactJS project. This template was built with Create React App.

This project is a template for ReactJS project. This template was built with Create React App.

Apr 14, 2022
Mg-project-template - A cli tool for creating a template project
Mg-project-template - A cli tool for creating a template project

Proyect Template CLI Tool A cli tool for creating a template project Quick Overv

Mar 10, 2022
Template combile React Native and react-native-web with same structure
Template combile React Native and react-native-web with same structure

React Native Web Template ๅŒๆž„react-nativeๅ’Œreact-native-web็š„ไธ€ไธชtemplate ไธบไป€ไนˆ่ฆ็”จๆˆ‘ react-native-webๅฎ˜ๆ–นๆฒกๆœ‰้›†ๆˆreact-native็š„ๆญฃๅผๆ–นๆกˆ ่ฟ™ไธชtemplateๆ˜ฏ็”จreact-native initๅˆ›ๅปบ็š„้กน็›ฎ

Aug 16, 2021
A template for React-Native | Typescript | Redux | React-Navigation

ReactNativeTemplate A template for React-Native. Folder Structure src api apiHelpers - includes helper functions like parsing api data config - contai

Aug 26, 2021
Template for developing react app with structure inspired by Ignite CLI's react native boilerplate

React Template A react template heavily inspired by Ignite CLI's boilerplate for React Native, it uses a couple of generators with simple template cus

Mar 31, 2022
Template for developing react app with structure inspired by Ignite CLI's react native boilerplate

React Template A react template heavily inspired by Ignite CLI's boilerplate for React Native, it uses a couple of generators with simple template cus

Mar 31, 2022
Get your simple but strongly structured react native starter template
Get your simple but strongly structured react native starter template

React-Native-Starter-Template Simple but strongly structured react native starter template ?? Why should i use this? It helps you to easily start your

Mar 20, 2022
React Native Web Advanced Template

?? react-native-web-advanced-template โญ Features: React Native Web TypeScript React Navigation React Native Elements React Native Vector Icons Other ?

May 13, 2022
A simple react native starter template that bootstraps development of your mobile application
A simple react native starter template that bootstraps development of your mobile application

rn-start-template A simple react native starter template that bootstraps development of your mobile application. What's inside React native 0.63 templ

Jan 15, 2022
Expo Template Realm React Native Starter Application

Simple Expo React Native application to quickly get started with Realm, based on the starter template that is provided by Realm

May 3, 2022
Create React App boilerplate template with React, Redux Toolkit, React Router, Ant Design, Axios, Redux-Saga, SASS, Authentication, Routes.

Create React App boilerplate template with React, Redux Toolkit, React Router, Ant Design, Axios, Redux-Saga, SASS, Authentication, Routes. No configuration is required, Start building your App.

Apr 5, 2022
A react-bootstrap starter template with react-router
A react-bootstrap starter template with react-router

React Bootstrap Starter is a starter template for react and bootstrap created by Chris Achinga. This theme uses Create React App, react-bootstrap and gh-pages.

May 12, 2022
Volt React is a free and open source admin dashboard template built in React.js and based on the latest version of the Bootstrap 5
Volt React is a free and open source admin dashboard template built in React.js and based on the latest version of the Bootstrap 5

Volt React is a free and open source admin dashboard template built in React.js and based on the latest version of the Bootstrap 5 CSS framework. It features over 100 UI elements, plugins, and example based built with React components.

May 12, 2022
React Reduction - Free Admin Template Built with React and Bootstrap4
React Reduction - Free Admin Template Built with React and Bootstrap4

React Reduction - Free Admin Template Built with React and Bootstrap4 Preview You can check out live preview. Quick Start Clone the repo git clone htt

May 11, 2022
CoreUI React is a free React admin template based on Bootstrap 5

CoreUI Free React Admin Template v4 CoreUI is meant to be the UX game changer. Pure & transparent code is devoid of redundant components, so the app i

May 14, 2022
Starter template for Vite with React (TypeScript). Supports Tailwind with CSS-Modules. Jest and @react/testing-library configured and ready to go. Also ESLint, Prettier, Husky, Commit-lint and Atomic Design for components.
Starter template for Vite with React (TypeScript). Supports Tailwind with CSS-Modules. Jest and @react/testing-library configured and ready to go. Also ESLint, Prettier, Husky, Commit-lint and Atomic Design for components.

Mocking up web app with Vital(speed) Live Demo Features โšก๏ธ React 17 ?? TypeScript, of course ?? Jest - unitary testing made easy ?? Tailwind with JIT

May 9, 2022