Una aplicación de juego de bebidas con verdades y retos.
- Node.js (v14 o superior)
- Expo CLI
- Android Studio (para desarrollo en Android)
- Xcode (para desarrollo en iOS, solo macOS)
- Cuenta en Supabase
Este proyecto utiliza variables de entorno para gestionar configuraciones sensibles como las credenciales de Supabase. Hay dos formas de configurar estas variables:
Para desarrollo local, crea un archivo .env en la raíz del proyecto basado en .env.example:
cp .env.example .envLuego, edita el archivo .env y añade tus credenciales:
# Variables de Supabase
SUPABASE_URL=https://tu-proyecto.supabase.co
SUPABASE_ANON_KEY=tu-clave-anonima
SUPABASE_DATABASE=tu-id-de-base-de-datos
# Variables de Android
ANDROID_HOME=$HOME/Android/Sdk
ANDROID_SDK_ROOT=$HOME/Android/Sdk
PATH=$PATH:$ANDROID_HOME/platform-tools:$ANDROID_HOME/cmdline-tools/latest/bin:$ANDROID_HOME/emulator
Para despliegues con EAS, las variables de entorno se gestionan de forma segura a través de EAS Secrets. Las variables ya están configuradas como secretas en EAS para todos los entornos (development, preview y production).
Si necesitas actualizar estas variables, puedes usar los siguientes comandos:
# Iniciar sesión en EAS (si aún no lo has hecho)
eas login
# Listar las variables de entorno existentes
eas env:list production # También puedes usar 'development' o 'preview'
# Actualizar una variable existente
eas env:update SUPABASE_URL --scope project --type string --secret
# Crear una nueva variable secreta
eas env:create --scope project --name NUEVA_VARIABLE --type string --secretImportante: Las claves de Supabase están configuradas como secretas en EAS y no se pueden ver ni modificar desde la interfaz de usuario. Solo se pueden acceder durante el proceso de construcción en EAS.
-
Clona el repositorio:
git clone https://github.com/tu-usuario/drink-app.git cd drink-app -
Instala las dependencias:
npm install
-
Inicia la aplicación:
npm start
/src: Código fuente de la aplicación/components: Componentes reutilizables/screens: Pantallas de la aplicación/services: Servicios (Supabase, etc.)/context: Contextos de React
/assets: Recursos estáticos (imágenes, fuentes, etc.)
npm start: Inicia el servidor de desarrollonpm run android: Inicia la aplicación en un dispositivo/emulador Androidnpm run ios: Inicia la aplicación en un dispositivo/emulador iOSnpm run web: Inicia la aplicación en un navegador web
Para construir un APK para Android:
eas build --platform android --profile localPara construir la aplicación en EAS:
# Versión de desarrollo
eas build --platform android --profile development
# Versión de vista previa
eas build --platform android --profile preview
# Versión de producción
eas build --platform android --profile productionPara publicar la aplicación en Google Play Store, sigue estos pasos:
-
Preparación de recursos:
- Asegúrate de tener los siguientes recursos listos:
- Ícono de la aplicación (512x512 px)
- Imagen de portada (1024x500 px)
- Capturas de pantalla (al menos 2 por dispositivo)
- Video promocional (opcional)
- Descripción corta (80 caracteres máximo)
- Descripción completa (4000 caracteres máximo)
- Asegúrate de tener los siguientes recursos listos:
-
Crear una cuenta de desarrollador:
- Regístrate en la Google Play Console
- Paga la tarifa única de registro ($25 USD)
-
Configurar la aplicación en Google Play Console:
- Crea una nueva aplicación
- Completa la información de la ficha de Play Store
- Configura la clasificación de contenido
- Configura el precio y la distribución
-
Generar un AAB (Android App Bundle) para producción:
eas build --platform android --profile production
-
Subir el AAB a Google Play Console:
- Ve a la sección "Producción" en Google Play Console
- Crea una nueva versión
- Sube el archivo AAB generado
- Completa las notas de la versión
- Envía para revisión
-
Actualizar la aplicación: Para futuras actualizaciones, incrementa la versión en
app.jsony ejecuta:eas build --platform android --profile production
-
Enviar actualizaciones a través de EAS Update (opcional): Para cambios menores que no requieren una nueva versión en la tienda:
eas update --branch production --message "Descripción de la actualización"
- Nunca incluyas claves API o secretos directamente en el código
- Utiliza siempre variables de entorno o EAS Secrets para gestionar información sensible
- Asegúrate de que
.envesté incluido en.gitignorepara evitar subir credenciales al repositorio
La aplicación está configurada para mostrar anuncios utilizando AdMob. Los IDs de AdMob están configurados en app.json:
- App ID: ca-app-pub-7275388055615808~3583010996
- Banner ID: ca-app-pub-7275388055615808/4816185702
- Interstitial ad ID: ca-app-pub-7275388055615808/3059191415
Para implementar completamente los anuncios, sigue estos pasos:
-
Instalar la biblioteca de Google Mobile Ads para React Native:
npx expo install react-native-google-mobile-ads
-
Actualizar app.config.js para incluir los permisos necesarios:
plugins: [ [ "react-native-google-mobile-ads", { "userTrackingPermission": "Esta aplicación utiliza la tecnología de anuncios para financiarse. La información de tu dispositivo se utilizará para ofrecerte anuncios personalizados." } ] ]
-
Implementar los componentes de anuncios:
- Utiliza los componentes
AdBanner.tsxy el servicioads.tsque ya están creados - Para implementar completamente, reemplaza el código de marcador de posición con el código real de AdMob
- Utiliza los componentes
-
Pruebas de anuncios:
- Durante el desarrollo, utiliza los IDs de prueba proporcionados por AdMob
- Verifica que los anuncios se muestren correctamente en diferentes dispositivos
- Asegúrate de que los anuncios no interfieran con la experiencia del usuario
Antes de lanzar la aplicación a producción, verifica los siguientes puntos:
- Todas las funcionalidades principales funcionan correctamente
- La autenticación con Supabase funciona sin problemas
- Los anuncios se muestran correctamente y no son intrusivos
- La aplicación maneja correctamente la pérdida de conexión a Internet
- Las animaciones y transiciones son fluidas
- La aplicación no tiene fugas de memoria o problemas de rendimiento
- Todos los textos están en español y son gramaticalmente correctos
- Los iconos y gráficos se ven bien en diferentes tamaños de pantalla
- La política de privacidad está actualizada y accesible
- La aplicación cumple con las políticas de Google Play Store