From 4e999f8c273c5a245f682f5c3ed93558da7788e8 Mon Sep 17 00:00:00 2001 From: Sinan997 Date: Mon, 25 Mar 2024 14:20:32 +0300 Subject: [PATCH] add android studio opening in react native documentation --- docs/en/Getting-Started-React-Native.md | 32 ++++++++++++++------- docs/en/images/rn-login-android-studio.png | Bin 0 -> 25357 bytes 2 files changed, 21 insertions(+), 11 deletions(-) create mode 100644 docs/en/images/rn-login-android-studio.png diff --git a/docs/en/Getting-Started-React-Native.md b/docs/en/Getting-Started-React-Native.md index 54c09014a5..0d7aa3a29c 100644 --- a/docs/en/Getting-Started-React-Native.md +++ b/docs/en/Getting-Started-React-Native.md @@ -1,9 +1,10 @@ -````json +```json //[doc-params] { - "Tiered": ["No", "Yes"] + "Tiered": ["No", "Yes"] } -```` +``` + # Getting Started with the React Native ABP platform provide basic [React Native](https://reactnative.dev/) startup template to develop mobile applications **integrated to your ABP based backends**. @@ -50,17 +51,17 @@ A React Native application running on an Android emulator or a physical phone ** {{ if Tiered == "No"}} ![React Native host project local IP entry](images/rn-host-local-ip.png) -- Open the `appsettings.json` file in the `.HttpApi.Host` folder. Replace the `localhost` address on the `SelfUrl` and `Authority` properties with your local IP address. -- Open the `launchSettings.json` file in the `.HttpApi.Host/Properties` folder. Replace the `localhost` address on the `applicationUrl` properties with your local IP address. +- Open the `appsettings.json` file in the `.HttpApi.Host` folder. Replace the `localhost` address on the `SelfUrl` and `Authority` properties with your local IP address. +- Open the `launchSettings.json` file in the `.HttpApi.Host/Properties` folder. Replace the `localhost` address on the `applicationUrl` properties with your local IP address. {{ else if Tiered == "Yes" }} ![React Native tiered project local IP entry](images/rn-tiered-local-ip.png) -- Open the `appsettings.json` file in the `.AuthServer` folder. Replace the `localhost` address on the `SelfUrl` property with your local IP address. -- Open the `launchSettings.json` file in the `.AuthServer/Properties` folder. Replace the `localhost` address on the `applicationUrl` properties with your local IP address. -- Open the `appsettings.json` file in the `.HttpApi.Host` folder. Replace the `localhost` address on the `Authority` property with your local IP address. -- Open the `launchSettings.json` file in the `.HttpApi.Host/Properties` folder. Replace the `localhost` address on the `applicationUrl` properties with your local IP address. +- Open the `appsettings.json` file in the `.AuthServer` folder. Replace the `localhost` address on the `SelfUrl` property with your local IP address. +- Open the `launchSettings.json` file in the `.AuthServer/Properties` folder. Replace the `localhost` address on the `applicationUrl` properties with your local IP address. +- Open the `appsettings.json` file in the `.HttpApi.Host` folder. Replace the `localhost` address on the `Authority` property with your local IP address. +- Open the `launchSettings.json` file in the `.HttpApi.Host/Properties` folder. Replace the `localhost` address on the `applicationUrl` properties with your local IP address. {{ end }} @@ -74,7 +75,7 @@ Open the {{ if Tiered == "No" }}`MyProjectNameHttpApiHostModule`{{ else if Tiere ```csharp #if DEBUG - PreConfigure(options => + PreConfigure(options => { options.UseAspNetCore() .DisableTransportSecurityRequirement(); @@ -108,12 +109,21 @@ Open the {{ if Tiered == "No" }}`MyProjectNameHttpApiHostModule`{{ else if Tiere In the above image, you can start the application with an Android emulator, an iOS simulator or a physical phone by scanning the QR code with the [Expo Client](https://expo.io/tools#client) or choosing the option. +### Expo + ![React Native login screen on iPhone 11](images/rn-login-iphone.png) +### Android Studio + +1. Start the emulator in **Android Studio** before running the `yarn start` or `npm start` command. +2. Press **a** to open in Android Studio. + +![React Native login screen on iPhone 11](images/rn-login-android-studio.png) + Enter **admin** as the username and **1q2w3E\*** as the password to login to the application. The application is up and running. You can continue to develop your application based on this startup template. ## See Also -- [React Native project structure](./Startup-Templates/Application#react-native) +- [React Native project structure](./Startup-Templates/Application#react-native) diff --git a/docs/en/images/rn-login-android-studio.png b/docs/en/images/rn-login-android-studio.png new file mode 100644 index 0000000000000000000000000000000000000000..459d504abc0713463e21f91510e70495fe3f8564 GIT binary patch literal 25357 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