====== Glosario de Términos ====== ===== A ===== **ADR**: Architecture Decision Record. Documento que registra decisiones arquitectónicas importantes. Ver [[adr-architecture-decisions|adr-architecture-decisions.md]]. **API**: Application Programming Interface. Interfaz de programación. **APK**: Android Application Package. Archivo ejecutable de aplicación Android. **AVD**: Android Virtual Device. Emulador de dispositivo Android en computadora. ===== B ===== **Backend**: Servidor que expone endpoints HTTP. En PAE, provee beneficiarios, jornadas, etc. **Balanza**: Hardware que mide peso de documento/alimento. Se comunica vía Bluetooth. **Beneficiary**: Persona que recibe entrega. Tiene embedding facial 512d. **Biometric**: Datos biométricos. En PAE: embedding facial para matching. **BOM**: Bill of Materials. En Gradle: versionado coordinado de librerías. **Build**: Compilación de código a APK ejecutable. **Bytecode**: Código compilado a formato máquina virtual (Kotlin → bytecode JVM → Android DEX). ===== C ===== **Camera2**: API de Android para captura de imágenes. Usado en Machine para fotos. **Certificado Pinning**: Técnica de seguridad que fija certificado TLS esperado. **Compose**: Framework de UI declarativa de Android. Reemplaza XML layouts. **Contract**: Módulo PAE que contiene modelos P2P compartidos entre Machine y RutaPAE. **Coroutine**: Mecanismo de Kotlin para asincronía. Alternativa moderna a threads. **CPU**: Central Processing Unit. Procesador. **CRUD**: Create, Read, Update, Delete. Operaciones básicas de dato. ===== D ===== **Daemon**: Proceso que corre en background sin interfaz usuario. **DAG**: Directed Acyclic Graph. Grafo de dependencias. **DAO**: Data Access Object. Patron abstraer acceso a datos. **Database**: SQLite en PAE para persistencia local. **Debug**: Depuración de código. Pausar en breakpoints, inspeccionar variables. **Delivery**: Entrega procesada. Contiene peso, fotos, similitud con beneficiario. **DirectLink**: Módulo PAE que implementa P2P vía Wi-Fi Direct. **Domain**: Capa de lógica de negocio. Entre presentación y datos. **DTO**: Data Transfer Object. Objeto para transferir datos entre capas. ===== E ===== **Embedding**: Vector numérico. En PAE: 512 dimensiones para rostros. **Emitter**: Observer pattern. En PAE: StateNameEmitter, DeliverySyncUiEmitter, etc. **Enum**: Tipo con conjunto finito de valores. Ej: P2PMachineStatus. **Extension Function**: Función agregada a tipo existente. Ej: ''Float.isValidWeight()''. ===== F ===== **Factory Pattern**: Patrón crear objetos sin especificar clase exacta. **Flow**: Kotlin coroutine observable. Emite datos secuencialmente. **Fragment**: Componente de UI (legacy, no usado en PAE). **FuelHttpClient**: Librería HTTP ligera. Cliente para endpoints REST. ===== G ===== **Gradle**: Build system para Android/JVM. ''gradlew'' es gradle wrapper. **GPU**: Graphics Processing Unit. Para aceleración gráfica. ===== H ===== **Hardware**: Componentes físicos. Camera, Balanza, LED, etc. **HNSW**: Hierarchical Navigable Small World. Índice para búsqueda vectorial aproximada. **Hotspot**: Red Wi-Fi creada por dispositivo. Machine puede ser hotspot para RutaPAE. **HTTP**: HyperText Transfer Protocol. Protocolo web no cifrado. Reemplazado por HTTPS. **HTTPS**: HTTP + TLS/SSL. Protocolo web cifrado y seguro. ===== I ===== **Inyección de Dependencias**: Patrón pasar dependencias a constructor. Facilita testing. **Intent**: Mensaje de Android entre componentes (activities, services, etc.). **Interface**: Contrato que especifica métodos sin implementación. ===== J ===== **Jetpack**: Conjunto de librerías Android de Google. Compose, WorkManager, etc. **JDK**: Java Development Kit. SDK de Java. **JDWP**: Java Debug Wire Protocol. Protocolo debug para Java/Android. ===== K ===== **Keystore**: Almacén de claves criptográficas. Para firmar APK. **Kotlin**: Lenguaje moderno que corre en JVM. Usado 100% en PAE. ===== L ===== **Lint**: Herramienta análisis estático. Detecta bugs y vulnerabilidades. **Log**: Registro de eventos. Ver con ''adb logcat''. ===== M ===== **Machine**: App Android en dispositivo del operador. Captura entregas. **MainThread**: Thread principal de Android. No bloquear (UI cuelga). **Manifest**: AndroidManifest.xml. Declara permisos, actividades, etc. **Memory Leak**: Retención innecesaria de memoria. Causa crashes por OutOfMemory. **Mocking**: Crear objetos fake para tests. **Model**: Clase data que representa entidad (Delivery, Beneficiary, etc.). **MVP**: Model-View-Presenter. Patrón UI arquitectónico (legacy). **MVVM**: Model-View-ViewModel. Patrón UI arquitectónico. ===== N ===== **Namespace**: Qualificador de nombre. En Android: ''package'' en manifest. **Network**: Red. Conectividad internet u hotspot. **Null Safety**: Sistema de tipos que previene NullPointerException. Kotlin feature. ===== O ===== **Observer Pattern**: Patrón desacoplado emisor-observadores. **OKHttp**: Librería HTTP robusta. Backend de Fuel. **ORM**: Object-Relational Mapping. Mapea objetos Java a tablas SQL. ===== P ===== **P2P**: Peer-to-Peer. Comunicación directa entre dispositivos sin servidor central. **Package**: Namespace de Java/Kotlin. Ej: ''co.ada.paemachine''. **Payload**: Datos útiles en mensaje HTTP. **Performance**: Velocidad y eficiencia. Tiempo, memoria, batería. **Permission**: Permiso requerido por app. Ej: CAMERA, BLUETOOTH, INTERNET. **Proguard**: Herramienta obfuscate y optimización de código. Reemplazado por R8. **ProGuard Rules**: Archivo que especifica qué código preservar durante obfuscation. **P2PContract**: Interfaz que define rutas P2P y modelos. En módulo Contract. **P2PManager**: Gestor que conecta vía P2P en RutaPAE. **P2PPeer**: Dispositivo peer descubierto en red P2P. ===== R ===== **R8**: Herramienta optimización y obfuscation de código (Proguard moderno). **RAID**: Array de discos. Para almacenamiento redundante. **RAM**: Random Access Memory. Memoria volátil (se limpia al apagar). **Real-time**: Sin latencia notable. Procesamiento inmediato. **Realm**: Base de datos móvil (no usado en PAE, usamos Room/VectorDB). **Release Build**: Compilación optimizada para producción. Firmada con certificado. **Repository Pattern**: Patrón abstrae acceso a datos. En PAE: Repository interface. **REST**: Representational State Transfer. Estilo API HTTP. **Retrofit**: Librería HTTP con type-safety (no usada en PAE, usamos Fuel). **RutaPAE**: App Android de operador de rutas. Sincroniza entregas de Machines. ===== S ===== **Scope**: Visibilidad de variable/función. Ej: global, local, object. **Serialization**: Convertir objeto a bytes/JSON. Ej: Kotlin Serialization. **Shift**: Jornada laboral. Ej: mañana 6-12am, tarde 12-6pm. **Software**: Código/programas contra hardware. **SQL**: Structured Query Language. Lenguaje bases de datos. **SQLCipher**: SQLite encriptado. **SQLite**: Base de datos SQL ligera. Embebida en Android. **SSL**: Secure Sockets Layer. Protocolo seguridad (reemplazado por TLS). **State Management**: Gestión estado en UI. StateFlow, ViewModel, etc. **StateManager**: Orquestador de máquina de estados en Machine. **StateNameEmitter**: Observable emite nombre de estado actual. **StateFlow**: Kotlin coroutine observable con estado. Similiar a LiveData. **StatePattern**: Patrón donde comportamiento cambia según estado. WaitingForWeight → CaptureImages, etc. **Suspend Function**: Función que puede pausarse sin bloquear thread. Kotlin suspend keyword. **SyncDeliveries**: Sincronizar entregas entre apps. **SyncResult**: Resultado de operación sincronización. ===== T ===== **Tare**: Operación balanza que pone peso a cero. **Targets**: Configuración de compilación cuáles SDK versiones soporta app. **TensorFlow Lite**: Framework IA para inference on-device. Para embeddings. **Test Double**: Objeto fake para testing (mock, stub, fake, spy). **Thread**: Hilo de ejecución. Android tiene Main Thread (UI). **TLS**: Transport Layer Security. Protocolo encriptación HTTPS (reemplazó SSL). **Timberlog**: Librería logging conveniente para Android. **Transaction**: Operación atómica en BD. O completa o revierte. ''BEGIN TRANSACTION ... COMMIT''. ===== U ===== **UI**: User Interface. Interfaz usuario (buttons, texts, etc.). **UUID**: Universally Unique Identifier. ID único de 128 bits. ===== V ===== **Vector**: Array de números. En PAE: 512 floats para embedding. **VectorDB**: ORM custom con soporte índices vectoriales. Para búsqueda facial. **ViewModel**: Holder de estado UI. Survives screen rotations. **View**: Componente visual en Android (legacy, reemplazado por Composable). ===== W ===== **Wi-Fi Direct**: Protocolo P2P Wi-Fi. Crea conexión punto-a-punto sin router. **WorkManager**: Framework para scheduled background tasks. Para DeliverySyncWorker. ===== X ===== **XML**: Markup language. Antes usado para layouts Android (ahora Compose). ===== Z ===== **Zone**: Región geo. En contexto Machine: zona de operación. ---- ===== Siglas comunes ===== ^ Sigla ^ Significado ^ | API | Application Programming Interface | | APK | Android Application Package | | AVD | Android Virtual Device | | BD / DB | Base de datos | | BOM | Bill of Materials | | CPU | Central Processing Unit | | CRUD | Create, Read, Update, Delete | | DAO | Data Access Object | | DTO | Data Transfer Object | | DI | Dependency Injection | | GPS | Global Positioning System | | HNSW | Hierarchical Navigable Small World | | HTTP | HyperText Transfer Protocol | | HTTPS | HTTP Secure | | IDE | Integrated Development Environment | | IO | Input/Output | | JDK | Java Development Kit | | JVM | Java Virtual Machine | | MVC | Model-View-Controller | | MVP | Model-View-Presenter | | MVVM | Model-View-ViewModel | | ORM | Object-Relational Mapping | | P2P | Peer-to-Peer | | RAM | Random Access Memory | | REST | Representational State Transfer | | SDK | Software Development Kit | | SQL | Structured Query Language | | SSL/TLS | Secure Sockets Layer / Transport Layer Security | | UUID | Universally Unique Identifier | | XML | Extensible Markup Language | ---- ===== Acrónimos específicos de PAE ===== ^ Acrónimo ^ Definición ^ Módulo ^ | StateManager | Máquina de estados de adquisición | MachineDomain | | P2PManager | Gestor de conexión P2P | RutaPAEDomain | | Repository | Abstracción de datos | MachineData / RutaPAEData | | VectorDB | Motor de BD con índices vectoriales | VectorDB | | DirectLink | Implementación Wi-Fi P2P | DirectLink | | Contract | Modelos P2P compartidos | Contract | | ComputerVision | Modelos IA para embeddings | ComputerVision | | SDCard | Almacenamiento externo | Sistema | | LED | Light Emitting Diode | Hardware Machine |