antilla-react-native-project
v0.1.1
Published
Interactive Expo Router starter generator with NativeWind, theming, permissions, navigation, UI and i18n.
Maintainers
Readme
antilla-react-native-project
Generador interactivo de proyectos Expo listo para publicar como paquete npm. Crea una app con Expo Router y TypeScript estricto, y pregunta qué módulos opcionales se deben incluir.
Uso local
npm install
npm run typecheck
npm test
npm start -- mi-appCuando el paquete esté publicado:
npx antilla-react-native-project mi-appEl asistente pregunta por:
- NativeWind y Prettier con ordenamiento de clases.
- Paleta semántica centralizada y modo claro, oscuro o del sistema.
- Control de acceso por roles, permisos y capacidades.
- Stack, Tabs y Drawer, combinables en una jerarquía de Expo Router.
- Botón, input y modal genéricos.
- i18n, códigos de idioma y lenguaje principal.
- Gestor de paquetes.
Expo Router es la base obligatoria. El resto puede activarse o desactivarse.
Personalizar la plantilla
Los componentes y configuraciones estáticas son archivos normales dentro de
template-files/. Por ejemplo, el componente de acceso restringido se edita
directamente en:
template-files/access/src/components/access/restricted-access.tsxNo es necesario escapar JSX ni modificar una cadena multilínea. El ensamblador
principal está en src/project-files.ts; src/templates/ queda reservado para
el cargador y para las plantillas dinámicas cuyo resultado depende de opciones
como Tabs, Drawer, permisos o i18n.
Las personalizaciones pequeñas que necesiten interpolar valores siguen
disponibles en src/templates/custom-project-files.ts.
El propio paquete está escrito en TypeScript estricto. Consulta
MAINTENANCE.md para conocer la arquitectura, cómo añadir
opciones y plantillas, las comprobaciones obligatorias y el proceso completo de
publicación.
Cada app creada incluye src/features/README.md con una convención sencilla
para crear funcionalidades por dominio. Es un buen punto de partida para añadir
pantallas, servicios, hooks y componentes sin llenar src/app de lógica de
negocio.
La capa de backend también es obligatoria y siempre se genera en src/lib:
src/lib/api.ts: instancia Axios, interceptores,ApiError, helpers HTTP, token y challenges de autenticación.src/lib/env.ts: lectura y validación deEXPO_PUBLIC_API_BASE_URL.src/lib/secure-storage.ts: SecureStore en Android/iOS ylocalStorageen web..envy.env.example: dominio del backend.
La URL pública se configura así:
EXPO_PUBLIC_API_BASE_URL=http://192.168.1.20:3000/apiEn un dispositivo físico no se debe usar localhost para acceder a un backend que
corre en la computadora; usa la IP de la red local o un dominio accesible.
Uso automatizado
npx antilla-react-native-project mi-app \
--name "Mi App" \
--yes \
--languages en,es \
--default-language esPara generar sin instalar dependencias:
npx antilla-react-native-project mi-app --yes --no-installCada módulo admite una opción negativa: --no-nativewind, --no-theme,
--no-permissions, --no-stack, --no-tabs, --no-drawer, --no-ui y
--no-i18n. Consulta todas las opciones con:
npx antilla-react-native-project --helpQué genera
Con todas las opciones activas, la navegación queda:
Stack raíz
├── Drawer
│ ├── Tabs
│ │ ├── Inicio
│ │ ├── Explorar
│ │ └── Perfil
│ └── Ajustes
└── Modal de rutaLas rutas se consumen desde src/navigation/routes.ts. El sistema de acceso está
adaptado de los componentes web indicados como referencia: conserva capacidades
adicionales, wildcard *, acceso por varios roles, guard de pantalla y wrapper de
controles, pero usa un AuthProvider compatible con React Native.
Los diccionarios iniciales completos están disponibles en inglés y español. Si se selecciona otro código, se crea con textos de respaldo en inglés para que el proyecto compile y quede listo para traducir.
Validación y publicación
npm run build
npm run typecheck
npm run check
npm pack --dry-run
npm publishEl paquete requiere Node.js 22.13 o posterior, igual que Expo SDK 57.
