Aplicación móvil de lista de tareas construida con Ionic Framework, Angular y Firebase (Remote Config). Utiliza Apache Cordova.
🚀 ¿Quieres probar la app ya? Descargar APK para Android (Google Drive)
| Tecnología | Versión | Detalle |
|---|---|---|
| Ionic Framework | ^8.0.0 | UI Components & Framework |
| Angular | ^20.0.0 | Aplicación Base & Lógica |
| Cordova | ^12.0.0 | Acceso Nativo |
| Firebase | ^11.0.0 | Remote Config & Configuración |
| TypeScript | ~5.9.0 | Tipado Estático |
| Storage | ^4.0.0 | Persistencia Local |
npm install -g @ionic/clinpm install -g cordova| Requisito | Detalle |
|---|---|
| Java JDK | JDK 17 recomendado |
| Android Studio | Incluye SDK y AVD Manager |
| Android SDK | API Level 34+ recomendado |
Variable de entorno ANDROID_HOME |
Apuntando a la ruta del SDK |
Variable de entorno JAVA_HOME |
Apuntando a la ruta del JDK |
Configura las variables de entorno en Windows:
ANDROID_HOME = C:\Users\<tu-usuario>\AppData\Local\Android\Sdk JAVA_HOME = C:\Program Files\Java\jdk-17Y agrega a
PATH:%ANDROID_HOME%\tools %ANDROID_HOME%\platform-tools %JAVA_HOME%\bin
⚠️ iOS requiere macOS con Xcode instalado. No es posible compilar para iOS desde Windows.
| Requisito | Detalle |
|---|---|
| macOS | Ventura o superior |
| Xcode | 15+ (disponible en Mac App Store) |
| Xcode Command Line Tools | xcode-select --install |
| CocoaPods | sudo gem install cocoapods |
-
Clonar el repositorio:
git clone https://github.com/W17Code/to-do-tech-test.git cd to-do-tech-test -
Instalar dependencias:
npm install
Este proyecto utiliza Firebase Remote Config para controlar características dinámicas.
-
Crea un proyecto en Firebase Console.
-
Registra una aplicación Web y copia las credenciales.
-
Configura
src/environments/environment.ts:typescript export const environment = { production: false, firebase: { apiKey: "TU_API_KEY", authDomain: "TU_PROJECT.firebaseapp.com", projectId: "TU_PROJECT_ID", storageBucket: "TU_PROJECT.appspot.com", messagingSenderId: "TU_SENDER_ID", appId: "TU_APP_ID" } }; -
En Firebase Console → Remote Config, crea el parámetro:
- Nombre:
enable_categories - Tipo: Boolean
- Valor por defecto:
true
- Nombre:
ionic serve# Añadir plataforma (solo una vez)
ionic cordova platform add android
# Ejecutar en dispositivo/emulador
ionic cordova run android- Activa las Opciones de desarrollador en tu Android:
- Ve a Ajustes → Acerca del teléfono y toca 7 veces en Número de compilación.
- Habilita la Depuración USB dentro de las Opciones de desarrollador.
- Conecta el dispositivo por USB y confirma el permiso de depuración.
- Verifica que el dispositivo es detectado:
adb devices- Ejecuta la app:
ionic cordova run android --deviceionic cordova build androidEl APK se genera en:
platforms/android/app/build/outputs/apk/debug/app-debug.apk
ionic cordova build android --prod --release
⚠️ Requiere macOS con Xcode instalado.
ionic cordova platform add iosInstala los pods de CocoaPods:
cd platforms/ios
pod install
cd ../..ionic cordova run iosPara seleccionar un simulador específico:
ionic cordova run ios --target="iPhone 15"Listar simuladores disponibles:
xcrun simctl list devices- Conecta el iPhone/iPad por USB.
- Confía en la computadora desde el dispositivo cuando se te solicite.
- Abre el proyecto en Xcode para configurar el Team de firma:
open platforms/ios/to-do-tech-test.xcworkspace- En Xcode → Signing & Capabilities, selecciona tu Apple Developer Account.
- Ejecuta la app:
ionic cordova run ios --deviceionic cordova build ios --prod --release| Comando | Descripción |
|---|---|
npm start / ionic serve |
Inicia el servidor de desarrollo en el navegador |
npm run build |
Compila la app Angular para producción |
npm test |
Ejecuta las pruebas unitarias con Karma |
npm run lint |
Analiza el código con ESLint |
ionic cordova run android |
Compila e instala en Android (emulador o dispositivo) |
ionic cordova run android --device |
Instala en dispositivo físico Android |
ionic cordova build android |
Solo compila el APK debug |
ionic cordova build android --prod --release |
Compila APK release de producción |
ionic cordova run ios |
Compila e instala en iOS (simulador) |
ionic cordova run ios --device |
Instala en dispositivo físico iOS |
ionic cordova build ios --prod --release |
Compila para distribución en App Store |
src/app/
├── components/ # Componentes reutilizables (Modales, etc.)
│ ├── add-task-modal/ # Modal de creación/edición de tareas
│ └── add-category-modal/
├── models/ # Interfaces TypeScript (Task, Category)
├── pages/ # Páginas principales de la app
│ └── tasks/ # Lista de tareas principal (Lógica y UI)
├── services/ # Servicios de negocio
│ ├── firebase.ts # Integración Remote Config
│ ├── task.ts # Gestión de tareas y Storage
│ └── category.ts # Gestión de categorías
└── app.module.ts # Configuración de módulos e inyecciones
Si ves errores como error NG8002: Can't bind to 'property' since it isn't a known property of 'element', asegúrate de que el componente esté declarado en un módulo que importe IonicModule y FormsModule.
- ADB Unresponsive: Si el comando se queda colgado, intenta reiniciar el servidor adb:
adb kill-serverseguido deadb start-server. - Java Version: Asegúrate de que
java -versiondevuelva la versión 17. Las versiones más recientes pueden causar incompatibilidades con Cordova.
Para compilar una versión final optimizada:
ionic cordova build android --prod --release