# Packet v1.7.4 - Build Report
**Fecha:** 2025-12-23
**Compilado por:** Claude Code
**Plataforma:** macOS Darwin 25.1.0
## Artefacto
| Campo | Valor |
|-------|-------|
| Archivo | `packet-v1.7.4.apk` |
| Tamaño | 49 MB |
| SHA-256 | `7f57bee3edec7342d6ca78d789704fec3827e3bf85f11ac362dcbacc8371ef1a` |
| Firmado | Debug keys |
## Entorno de Compilación
### Flutter
| Componente | Versión |
|------------|---------|
| Flutter | 3.38.5 (stable) |
| Dart | 3.10.4 |
| DevTools | 2.51.1 |
| Engine | c108a94d7a |
### Android
| Componente | Valor |
|------------|-------|
| Java | OpenJDK 17.0.17 |
| Package Name | `me.tzzr.packet` |
| Label | packet |
## Permisos Android
```xml
```
**Configuración adicional:**
```xml
```
## Dependencias
### Runtime
| Paquete | Versión | Propósito |
|---------|---------|-----------|
| flutter_bloc | ^9.0.0 | State management |
| equatable | ^2.0.7 | Value equality |
| sqflite | ^2.4.2 | SQLite local DB |
| path_provider | ^2.1.5 | File paths |
| dio | ^5.7.0 | HTTP client |
| crypto | ^3.0.6 | SHA-256 hashing |
| image_picker | ^1.1.2 | Captura fotos/video |
| record | ^6.0.0 | Grabación audio |
| file_picker | ^8.1.7 | Selección archivos |
| geolocator | ^13.0.2 | GPS location |
| permission_handler | ^11.4.0 | Runtime permissions |
| uuid | ^4.5.1 | UUID generation |
| intl | ^0.20.2 | Internacionalización |
| cached_network_image | ^3.4.1 | Cache de imágenes |
### Dev
| Paquete | Versión |
|---------|---------|
| flutter_test | SDK |
| flutter_lints | ^6.0.0 |
## Estructura del Proyecto
```
lib/ (3,505 líneas Dart)
├── main.dart # Entry point
├── core/
│ ├── constants/ # AppConstants, RetryDelays
│ ├── errors/ # Excepciones
│ ├── utils/ # hash_utils, retry_utils
│ └── theme/ # AppTheme
├── data/
│ ├── datasources/ # BackendApi, BibliotecaApi, LocalDatabase
│ └── repositories/ # Config, Etiqueta, Contenedor repos
├── domain/
│ └── entities/ # Contenedor, Etiqueta, Pack, Destino
└── presentation/
├── app.dart # PacketApp, MainScreen
├── bloc/ # Cubits
├── pages/ # 5 pantallas
└── widgets/ # Componentes
```
## Pantallas
| # | Pantalla | Icono | Función |
|---|----------|-------|---------|
| 1 | Captura | 📷 | Montar contenedor multimedia |
| 2 | Etiquetas | 🏷️ | Seleccionar tags |
| 3 | Packs | 📦 | Conjuntos de etiquetas |
| 4 | Pendientes | ⏳ | Cola de reintentos (máx 20) |
| 5 | Config | ⚙️ | URLs, llaves, bibliotecas |
## Constantes
| Constante | Valor |
|-----------|-------|
| maxPendientes | 20 |
| maxReintentos | 20 |
| hashLength | 64 (SHA-256) |
| chunkSize | 512 KB |
| httpTimeout | 30s |
| retryCheckInterval | 30s |
## Backoff de Reintentos (72h total)
| Rango | Espera |
|-------|--------|
| 1-3 | 1, 2, 5 min |
| 4-6 | 10, 20, 30 min |
| 7-10 | 1, 2, 3, 4 h |
| 11-14 | 5, 6, 6, 6 h |
| 15-19 | 8, 8, 8, 8, 6 h |
| 20 | STOP |
## Comandos de Build
```bash
export JAVA_HOME=/opt/homebrew/opt/openjdk@17/libexec/openjdk.jdk/Contents/Home
cd /tmp/packet-app
flutter clean
flutter build apk --release
cp build/app/outputs/flutter-apk/app-release.apk ~/Downloads/packet-v1.7.4.apk
```