# React app to mobile app
- React app to mobile app
[https://medium.com/@pshubham/using-react-with-cordova-f235de698cc3](https://medium.com/@pshubham/using-react-with-cordova-f235de698cc3)
`npm i -g cordova@9.0.0`
`cordova create playlist [com.playlist.app](http://com.playlist.app) Playlist`
where playlist is app name
public and src folder to be copied
copy browserslist, scripts and dependencies to package.json.
also add `"homepage": "./",` in **package.json**.
Add
```html
```
under head tag in **public/index.html**.
Add `` at end under body tag.
Adding even listener when cordava is used and device is ready.
```jsx
const renderReactDom = () => {
ReactDOM.render(, document.getElementById('root'));
};
if (window.cordova) {
document.addEventListener('deviceready', () => {
renderReactDom();
}, false);
} else {
renderReactDom();
}
```
in src/index.js.
In this file we need to perform two main functions:
- Execute the react build process
- React-scripts generates the build output to the **build/** folder and cordova uses **www/** as its input directory. So once the react build is completed we need to rename **build/** to **www/**
[https://www.youtube.com/watch?v=9OnZuuJJlCk](https://www.youtube.com/watch?v=9OnZuuJJlCk)
To square the icons for android apps:
[https://squaremyimage.com/](https://squaremyimage.com/)
To get different icons resizes like app-icon, playstore icon etc, use:
[https://resizeappicon.com/](https://resizeappicon.com/)
```bash
cordova platform add android
cordova build android
```
For release build use:
`cordova build —release android`
[Cordova Website To App Conversion new.pdf](../../../_resources/Cordova_Website_To_App_Conversion_new.pdf)
- html5 input file issue
[https://pragmaapps.com/fix-html5-file-input-cordova-android/](https://pragmaapps.com/fix-html5-file-input-cordova-android/)
[https://github.com/apache/cordova-plugin-inappbrowser/](https://github.com/apache/cordova-plugin-inappbrowser/)
[https://cordova.apache.org/docs/en/10.x/reference/cordova-plugin-file/#sample](https://cordova.apache.org/docs/en/10.x/reference/cordova-plugin-file/#sample)
[Dealing with Android content URIs in a Cordova based project](https://engineering.spideroak.com/how-to-deal-with-the-android-filesystem-in-a-cordova-based-project/)
[https://engineering.spideroak.com/how-to-deal-with-the-android-filesystem-in-a-cordova-based-project/](https://engineering.spideroak.com/how-to-deal-with-the-android-filesystem-in-a-cordova-based-project/)
[https://stackoverflow.com/questions/35056472/how-to-create-a-separate-directory-for-cordova-app-and-storing-data-in-it](https://stackoverflow.com/questions/35056472/how-to-create-a-separate-directory-for-cordova-app-and-storing-data-in-it)
[https://www.andreszsogon.com/using-android-8-and-9-emulators-without-android-studio/](https://www.andreszsogon.com/using-android-8-and-9-emulators-without-android-studio/)
[https://doc.xuwenliang.com/docs/cordova/1630](https://doc.xuwenliang.com/docs/cordova/1630)
- Debugging mobile app of cordova
[https://geeklearning.io/apache-cordova-and-remote-debugging-on-android/](https://geeklearning.io/apache-cordova-and-remote-debugging-on-android/)
Type `chrome://inspect` in browser address bar.