React native
ninja error ninja: error: loading 'build.ninja': The system cannot find the file specified
no se encuentra el archivo build.ninja,
instala manualmente cmake y ninja
choco install ninja
choco install cmake
Ejecutar
cd android
cmake -B build -G Ninja
si esto genera un error CMakeLists.txt, en node_modules/react-native-screens/android/
entonces el error se debe a que react-native-screens esta corrupto, entonces la solución es
npm uninstall react-native-screens
npm install react-native-screens
cd android
./gradlew clean
cd ..
npx react-native run-android
refactoring¶
Buttons¶
BackButtonAuthInputFields(Buttons)Profile(BackButtonBar)
Input field¶
- InputField reorganizar bien el codigo, separa logica, ui
AuthInputFields¶
migrate TextInput to custom InputField
| Computer Science Student | Full Stack Web Developer | Enthusiastic in Data Science (DS), Artificial Intelligence (AI), and Machine Learning (ML) | Always learning new things |
| \((a+b)*(b+c)\) |
Exposición¶
Cómo Funciona React Native¶
React Native funciona utilizando un puente para comunicar el código JavaScript con los componentes y APIs nativos. Utiliza un Virtual DOM para gestionar las actualizaciones de la interfaz de usuario de manera eficiente y ofrece características como Hot Reloading para mejorar la experiencia de desarrollo. Con la nueva arquitectura en desarrollo, React Native está evolucionando para ofrecer un mejor rendimiento y una mayor integración con las plataformas nativas.
### Ciclo de Renderizado¶
-
Código JS: Defines la interfaz de usuario y la lógica en JavaScript.
-
React Reconciler: Compara el árbol de componentes actual con el nuevo y genera una lista de cambios.
-
Shadow Tree: Actualiza la representación virtual de la interfaz de usuario en memoria.
-
Puente: Transmite los cambios desde la Shadow Tree al hilo nativo de manera asíncrona.
-
Renderizado Nativo: Los componentes nativos se actualizan y se renderizan en la pantalla.
Ejemplo Práctico¶
Imagina que tienes un componente <Text> en React Native:
<Text style={{ color: 'red' }}>Hola Mundo</Text>
-
Código JS: React Native procesa este componente en JavaScript.
-
Reconciler: Detecta que el texto debe mostrarse en color rojo.
-
Shadow Tree: Actualiza la Shadow Tree con la información del estilo y el contenido del texto.
-
Puente: Envía estos cambios al hilo nativo.
-
Renderizado Nativo: En iOS, se crea un
UILabelcon el texto "Hola Mundo" y el color rojo. En Android, se crea unTextViewcon las mismas propiedades.
Gestión de Estado en React Native¶
el manejo de estado en las aplicaciones es muy importante, ya que nos permite crear aplicaciones dinámicas, y react native no es la diferencia utiliza los mismos principios de gestion de estados al igual que react para la web.
- useState → Para estados locales simples.
- useReducer → Mejor para lógica más compleja en componentes individuales.
- Context API → Compartir estado entre componentes sin props drilling.
- Redux / Zustand → Para manejar estado global en apps grandes.
- Recoil → Más flexible que Redux, fácil de usar con hooks.