Files
packet/docs/BUILD-v1.7.4.md
Architect 92f55be026 v1.7.4 - Android permissions and build documentation
Changes:
- AndroidManifest.xml: Added all required permissions
  - Network: INTERNET, ACCESS_NETWORK_STATE
  - Media: CAMERA, RECORD_AUDIO
  - Location: ACCESS_FINE/COARSE_LOCATION
  - Storage: READ_MEDIA_* (Android 13+), READ_EXTERNAL_STORAGE (≤12)
- Added android:usesCleartextTraffic=true for HTTP
- Added docs/BUILD-v1.7.4.md with full build report
- Added CHANGELOG.md

Build: Flutter 3.38.5 / Dart 3.10.4 / Java 17
APK: 49MB | SHA-256: 7f57bee3edec...
2025-12-23 18:19:45 +00:00

4.3 KiB

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

<!-- Network -->
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

<!-- Camera and Audio -->
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.RECORD_AUDIO"/>

<!-- Location -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>

<!-- Media (Android 13+ / API 33+) -->
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES"/>
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO"/>
<uses-permission android:name="android.permission.READ_MEDIA_AUDIO"/>

<!-- Storage (Android 12 and below) -->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" 
                 android:maxSdkVersion="32"/>

Configuración adicional:

<application android:usesCleartextTraffic="true">

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

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