Diseño de la app y configuración de navegación

Lectura
25 min~4 min lectura

Concepto clave

El diseño de una app de comercio electrónico y su navegación son como el plano de un centro comercial. Imagina que el diseño define la distribución de las tiendas, pasillos y áreas comunes, mientras que la navegación son las señales y mapas que guían a los clientes. En React Native con Expo, esto se traduce en crear una estructura visual atractiva y un flujo intuitivo entre pantallas.

Para apps de e-commerce, el diseño debe priorizar la experiencia del usuario: productos visibles, carrito accesible y checkout sencillo. La navegación, implementada con bibliotecas como React Navigation, conecta estas pantallas. Piensa en cómo Amazon o Mercado Libre organizan sus apps: pantalla de inicio, búsqueda, categorías, detalles del producto, carrito y perfil. Nuestro objetivo es replicar esa fluidez.

Cómo funciona en la práctica

Vamos a configurar la navegación para una app básica de e-commerce. Primero, instala React Navigation en tu proyecto Expo. Usa el comando: npx expo install react-native-screens react-native-safe-area-context y luego npm install @react-navigation/native @react-navigation/stack. Esto prepara el entorno para navegación tipo stack, ideal para transiciones entre pantallas.

Paso a paso: 1) Crea una carpeta screens con archivos como HomeScreen.js, ProductScreen.js, CartScreen.js. 2) En App.js, importa NavigationContainer y createStackNavigator. 3) Define las rutas, similar a cómo un mapa enlaza ubicaciones. Por ejemplo, HomeScreen lleva a ProductScreen, y este a CartScreen. 4) Añade botones o gestos para navegar, usando navigation.navigate('NombrePantalla'). Así, los usuarios pueden explorar productos y avanzar al checkout sin perderse.

Codigo en accion

Aquí tienes un ejemplo funcional de configuración básica en App.js. Antes de refactorizar, el código podría ser desorganizado; después, estará limpio y escalable.

Antes: Todo mezclado en un solo archivo, difícil de mantener.

// App.js desorganizado
import React from 'react';
import { View, Text } from 'react-native';
// Falta navegación y estructura clara
export default function App() {
  return (
    
      App de e-commerce
    
  );
}

Después: Configuración modular con navegación.

// App.js organizado
import React from 'react';
import { NavigationContainer } from '@react-navigation/native';
import { createStackNavigator } from '@react-navigation/stack';
import HomeScreen from './screens/HomeScreen';
import ProductScreen from './screens/ProductScreen';
import CartScreen from './screens/CartScreen';

const Stack = createStackNavigator();

export default function App() {
  return (
    
      
        
        
        
      
    
  );
}

Errores comunes

  • Olvidar envolver la app en NavigationContainer: Sin esto, la navegación no funciona. Siempre inclúyelo en el componente raíz.
  • No manejar el estado del carrito entre pantallas: Usa Context API o estado global (como Redux) para compartir datos, no props en cadena.
  • Diseño no responsivo: Asegúrate de usar Flexbox y dimensiones relativas para que se vea bien en iOS y Android.
  • Navegación anidada mal configurada: Para tabs o drawers, planifica la jerarquía; evita stacks dentro de stacks sin necesidad.
  • Ignorar el performance en listas de productos: Usa FlatList con keyExtractor y initialNumToRender para optimizar.

Checklist de dominio

  1. ¿Instalaste React Navigation y sus dependencias correctamente en Expo?
  2. ¿Creaste al menos tres pantallas (Home, Producto, Carrito) en la carpeta screens?
  3. ¿Configuraste un Stack Navigator con rutas definidas en App.js?
  4. ¿Implementaste navegación entre pantallas usando navigation.navigate?
  5. ¿Diseñaste una interfaz básica con componentes de React Native (View, Text, Image)?
  6. ¿Probaste la app en un emulador o dispositivo real para verificar la fluidez?
  7. ¿Documentaste la estructura de navegación para futuras expansiones?

Configura navegación y diseño inicial para una app de e-commerce

Sigue estos pasos para crear la base de tu app:

  1. Inicia un nuevo proyecto Expo con npx create-expo-app ecommerce-app y navega a la carpeta.
  2. Instala React Navigation y las dependencias necesarias usando los comandos de npm o yarn.
  3. Crea una carpeta screens y dentro, tres archivos: HomeScreen.js, ProductScreen.js, CartScreen.js. En cada uno, exporta un componente básico que muestre un texto (ej., "Pantalla de Inicio").
  4. En App.js, configura el NavigationContainer y un Stack Navigator que enlace las tres pantallas. Define Home como ruta inicial.
  5. Añade un botón en HomeScreen que navegue a ProductScreen usando navigation.navigate('Product'). Asegúrate de recibir la prop navigation.
  6. Ejecuta la app con npx expo start y prueba la navegación en un emulador o dispositivo.
  7. Mejora el diseño: en HomeScreen, añade un header con un título y una lista simulada de productos usando FlatList.
Pistas
  • Usa import { useNavigation } from '@react-navigation/native' si no tienes la prop navigation directamente.
  • Para FlatList, define un array de datos dummy (ej., [{id: 1, name: 'Producto 1'}]) y renderiza cada item.
  • Verifica que todas las pantallas estén correctamente importadas en App.js con rutas relativas.

Evalua tu comprension

Completa el quiz interactivo de arriba para ganar XP.