Tabla de Contenidos

Glosario de Términos

A

ADR: Architecture Decision Record. Documento que registra decisiones arquitectónicas importantes. Ver 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