En este tutorial, vamos a construir una sencilla app de tareas con React Native, que incluya:
- Interfaz moderna con animaciones usando React Native Reanimated.
- Almacenamiento local con AsyncStorage.
- Navegación con React Navigation.

Requisitos previos
- Node.js instalado (versión 18 o superior).
- Expo CLI instalado (
npm install -g expo-cli
). - Un emulador o dispositivo físico con la app Expo Go.
1. Creación del Proyecto
Ejecuta el siguiente comando en tu terminal para crear un nuevo proyecto Expo:
npx create-expo-app my-tasks-app cd my-tasks-app npm install
Iniciamos el proyecto con:
npx expo start
2. Instalación de Dependencias
Instalamos las librerías necesarias:
npm install @react-navigation/native @react-navigation/stack npm install react-native-gesture-handler react-native-reanimated react-native-screens react-native-safe-area-context react-native-async-storage/async-storage
3. Configurar Navegación
Creamos navigation.js
dentro de src/
:
import React from 'react'; import { createStackNavigator } from '@react-navigation/stack'; import { NavigationContainer } from '@react-navigation/native'; import HomeScreen from '../screens/HomeScreen'; const Stack = createStackNavigator(); export default function Navigation() { return ( <NavigationContainer> <Stack.Navigator> <Stack.Screen name="Home" component={HomeScreen} /> </Stack.Navigator> </NavigationContainer> ); }
En App.js
importamos la navegación:
import React from 'react'; import Navigation from './src/navigation'; export default function App() { return <Navigation />; }
4. Crear la Pantalla de Tareas
Creamos HomeScreen.js
en src/screens/
:
import React, { useState, useEffect } from 'react'; import { View, Text, TextInput, Button, FlatList } from 'react-native'; import AsyncStorage from '@react-native-async-storage/async-storage'; export default function HomeScreen() { const [task, setTask] = useState(''); const [tasks, setTasks] = useState([]); useEffect(() => { loadTasks(); }, []); const saveTasks = async (tasks) => { await AsyncStorage.setItem('tasks', JSON.stringify(tasks)); }; const loadTasks = async () => { const storedTasks = await AsyncStorage.getItem('tasks'); if (storedTasks) setTasks(JSON.parse(storedTasks)); }; const addTask = () => { if (task.trim()) { const newTasks = [...tasks, task]; setTasks(newTasks); saveTasks(newTasks); setTask(''); } }; return ( <View style={{ padding: 20 }}> <TextInput placeholder="Nueva tarea" value={task} onChangeText={setTask} style={{ borderBottomWidth: 1, marginBottom: 10 }} /> <Button title="Agregar" onPress={addTask} /> <FlatList data={tasks} keyExtractor={(item, index) => index.toString()} renderItem={({ item }) => <Text>{item}</Text>} /> </View> ); }
5. Agregar Animaciones
Instalamos Reanimated:
npm install react-native-reanimated
Modificamos HomeScreen.js
para agregar animaciones:
import Animated, { FadeIn, FadeOut } from 'react-native-reanimated'; // Dentro del render: <FlatList data={tasks} keyExtractor={(item, index) => index.toString()} renderItem={({ item }) => ( <Animated.View entering={FadeIn} exiting={FadeOut}> <Text>{item}</Text> </Animated.View> )} />
6. Prueba la Aplicación
Ejecuta:
npx expo start
Escanea el QR con Expo Go en tu móvil o usa un emulador.

Ingeniero en Informática, Investigador, me encanta crear cosas o arreglarlas y darles una nueva vida. Escritor y poeta. Más de 20 APPs publicadas y un libro en Amazon.
1 comentario en «Crea una App de Tareas con React Native»