**Si no vas a instalar ningún modulo (o usar la camara) , recuerda puedes usar expo.io > snacks para hacer pruebas online y emularlos ahi, incluso puedes embed, compartir y descargar tu codigo (sin el core de react) ** NO descomprimir dentro de onedrive, porque node-moodules pesa mucho de archivitos minisEn esta carpeta corres una terminal (no te preocupes, se creara una subcarpeta con el proyecto sola) Y en esa terminal escribes En esta carpeta corres una terminal (no te preocupes, se creara una subcarpeta con el proyecto sola) Y en esa terminal escribes expo init elNombredeMiApp (si necesitas alguna versión en especifica del SDK usa...) expo init elNombredeMiApp --template blank@44.0 Te va a preguntar que template quieres usar, escoges el primero blank funciona bien, entras a la carpeta nueva con (o abres una terminal nueva en la carpeta, cd es lo mismo que moverte adentro o afuera con cd ..) cd elnombredemiapp e igual que el otro react, arrancas con npm start Esto te crea una url que hace un hosting de la app, que puedes usar en tu emulador o teléfono usando una app llamada Expo Go (Android) or the Camera app (iOS) Si quieres usar android studio para correr tu emulación, tienes que abrir la app - more actions - avd manager - crear o ejecutar un dispositivo - si lo creas escoges la versión de android (pie es bueno y 2gb de ram es mas que suficiente) La app en el emulador la bajas (apk o lo que sea use ios) de https://expo.dev/tools Una vez que inicias el dispositivo puedes cerrar las demás pestañas, y en la url al abrirla en el navegador vas a ver "run on android device/emulator" al picarle ahí se ejecuta la app en el emulador (si es la primera vez solito instala expo go y le tienes que dar aceptar los permisos en el android, etc). Al terminar puedes cerrar el navegador, solo deja la terminal corriendo O puedes presionar a en la terminal de cmd y hace lo mismo de abrir en el emulador sin que lo abras en el navegador En la carpeta nueva de la app, en app.jsx (o .js pero cambias a .jsx para que brackets lo reconozco bien) esta tu codigo En la carpeta assets van las imagenes y todo lo demas. Las demás carpetas son las librerias de expo y node, esas no las toques. --- Otras funciones utiles --- Si quieres poder mandar notificaciones push con esta pagina: https://nativenotify.com/ Instalas una libreria y desde la página mandas tus mensajes, como promociones, etc... y tiene precios aceptables Native Notify is free up to 10 push notification subscribers. 11-1,000 push notification subscribers is $25/month. Then it's $5/month extra per 1,000 additional push notification subscribers. Como instalar: https://www.youtube.com/watch?v=1GNxI8ipRoM&list=WL&index=4&t=12s&ab_channel=NativeNotify Es lo que mas conviene... solo necesitas estas 4 librerias: npm install axios expo install expo-device expo install expo-notifications npm install native-notify Esto va en app.js para inicializar import registerNNPushToken from 'native-notify'; export default function App() { registerNNPushToken(26947, "X2IskvSUeT1DcANCxJuZDD"); Con esto registras al usuario donde hagas tu login... import { registerIndieID } from 'native-notify'; //estos dos para el push import axios from 'axios'; Y donde quieras esto... adaptado con lo que te da nativenotify.com de keys registerIndieID(username, 26947, "X2IskvSUeT1DcANCxJuZDD"); Ahora si quieres guardar info de otra forma que no sea asyncStorage, puedes usar una cosa llamada Redux para guardar el estado completo de la aplicación, entonces digamos que se acuerda "donde se quedo" y así guarda información. Es como si "hibernara", un ejemplo bueno con voz horrible lo tienes en: https://www.youtube.com/watch?v=KcC8KZ_Ga2M&ab_channel=UnsureProgrammer Por ultimo Google Firebase promete ser como un tipo base mysql para guardar info y que la app consulte en linea... Firebase es pay as you go, tienes 1gb para tu bdd y puedes hacer hasta 10k llamadas a la bdd al mes... después ya pagas centavos de usd por llamadas o espacio adicional... Puedes ver como instalarlo con React en: https://www.youtube.com/watch?v=pfyC1VSzVHY&t=389s&ab_channel=AgustinNavarroGaldon Traer las ubicaciones (coordenadas o reversamente la direccion) con la libreria de expo https://www.youtube.com/watch?v=ZyzQwtJ65gs&ab_channel=JeetVani API en JSON lo hace nativo JS... así que no necesitas bibliotecas, solo algo como fetch,then,catch... como se muestra en este video: https://www.youtube.com/watch?v=AQKi5MrpyD4&ab_channel=AuriboxTraining Para postear datos de regreso a una API (min: 9.20 porque se atora el wey): https://www.youtube.com/watch?v=zzHqZL_qRXk&ab_channel=FullstackDevelopment y el vídeo usa http://webhook.site/ para emular una api donde se postea image from web (min: 3.47): https://www.youtube.com/watch?v=Tdhpowd-vto&ab_channel=DailyCoding pero basicamente no necesitas nada, solo la pones o traes de una variable Para usar la camara es un poco mas complejo... (NO PROBADO) https://www.youtube.com/watch?v=4WPjWK0MYMI&ab_channel=MissCoding Con este turotial puedes hacer una app ecomm con stripe: https://www.youtube.com/watch?v=ElgfjrWn7Mg&list=WL&index=1&ab_channel=TechSavvy --- LO QUE ESTA EN NOTAS.PHP y que no esta aqui: --- Con Async Storage puedes guardar datos de la aplicación para que se puedan guardar aun después de cerrar la aplicacion, aunque la información no se encripta... aguas. Para instalarlo usas este comando (aunque este depreciado por el momento) npm install @react-native-async-storage/async-storage Y a lo mejor tienes que correr expo doctor --fix-dependencies por si asyncstorage requiere otra versión con tu expo, pero esto te lo dice al correr npm run start import { AsyncStorage } from 'react-native';//esto podría ir arriba, junto a stylesheet --update-- use npm install @react-native-async-storage/async-storage para instalar sin problemas igual import AsyncStorage from '@react-native-async-storage/async-storage';//para guardar la sesión realmente en el dispositivo y algo así se usa, que te ayude chatgpt: //función guardar sesión en memoria const saveSession = async (session) => { try { await AsyncStorage.setItem('userSession', session); } catch (error) { console.error("Error guardando la sesión:", error); } }; // para leer la sesión de memoria export const loadSession = async () => { try { const session = await AsyncStorage.getItem('userSession'); if (session) { currentSession = session; } return session; } catch (error) { console.error("Error al cargar la sesión:", error); return null; } }; cuando los elementos tienen flex, en automatico sale un scroll como pasaria en un flatlist, solo tienen que tener sus parents también flex /*Todo los componentes son por default flex, y todo los que esta dentro de un flex lo hereda*/ flex: 1,/*Esto hace que se expanda el texto a encontrar todo al mismo tiempo*/ paddingTop: 40, backgroundColor: '#ddd', flexDirection: 'row',/*aqui haces que se acomode vertical u horizontal*/ justifyContent: 'space-around',/*alineación en el eje primario segun flexdirection sea row o column*/ /*space around no funciona si hay flex en los hijos*/ alignItems: 'center',/*esto es alignación en el eje secundario*/ height: '100%', Tienes que instalar esto para que funcione el stack navigator. El stack agrega pestaña sobre pestaña y las tira al regresar, pero no las cambia npm install react-navigation expo install react-native-gesture-handler react-native-reanimated npm install react-navigation-stack import Navigator from './routes/drawer';//Navigator ya es el elemento que se muesta o la pestaña El drawer navigation alterna entre varios stack navigators. La idea del drawer navigation es similar al menu movil de hamburguesa y a diferencia del stack, si cambia entre pestañas. Hay que instalar: npm install react-navigation-drawer PARA COMPILAR la APK hay que seguir estos pasos https://www.youtube.com/watch?v=hXDMWeD0ERM&t=6117s Pero en esencia armas una cuenta de expo.io (ya tienes alexcd2000 y n... ) y ahí se suben los archivos y se compila la apk solo corre en la consola (checa en app.json el logo y nombre sean los que quieres) expo build:android o expo build:ios o expo build:web (que se supone hace una versión web) y expo se encarga de todos los pasos. Para publicar en el store es un poco mas de trabajo porque tienes que conseguir un id de play store antes de subirlo, pero en esencia tu apk (que en este caso expo firma como alexcd2000)