Notas técnicas
Análisis profundos de la arquitectura peer-to-peer, el diseño del transporte y la criptografía de PlainApp — directamente desde el código fuente.
DLNA Cast: Creando un Emisor y Receptor UPnP Desde Cero
Cómo PlainApp implementa la proyección DLNA/UPnP AV en ambos sentidos: escaneando y controlando televisores vía SOAP como emisor, y convirtiendo el propio teléfono en un UPnP MediaRenderer como receptor — con descubrimiento SSDP, metadatos DIDL-Lite, servicio de medios con soporte de Range Requests, callbacks de eventos GENA y un modelo de confianza basado en IP de origen permitida/denegada, todo en Kotlin Multiplatform puro.
Screen Mirror: Arquitectura de Proyeccion de Baja Latencia
Este articulo cubre el diseno integral del sistema de proyeccion de pantalla de PlainApp: como Android captura y codifica via hardware H.264/Opus con MediaCodec, como los fotogramas viajan por WebSocket usando un protocolo binario personalizado, como el lado web decodifica con WebCodecs y renderiza con WebGL2 sin copias por CPU, como se manejan la deteccion de perdidas, los cambios de orientacion y el control tactil remoto, y como se mantiene sincronizado el ciclo de vida de MediaProjection.
PlainApp Seguridad: análisis detallado
Cómo PlainApp protege tus datos en la red Wi-Fi local — con evidencia del código abierto.
Diseño del transporte Wi-Fi Aware — descubrimiento de vecinos y rutas de datos
Este artículo explica cómo PlainApp usa Wi-Fi Aware (NAN — Neighbor Awareness Networking) como nivel intermedio de su cadena de fallback de transporte entre pares, entre LAN (HTTPS de misma subred) y BLE (RPC GATT de último recurso). Wi-Fi Aware es lo que permite que dos dispositivos PlainApp hablen cuando están en distintos SSID, VLAN de invitados vs IoT, o sin infraestructura Wi-Fi alguna — sin necesitar jamás una dirección IP de un servidor DHCP.
Diseño del transporte BLE — Mensajes y descargas de archivos
Este artículo explica cómo PlainApp envía mensajes de chat y descarga archivos por Bluetooth Low Energy cuando ni la LAN ni Wi-Fi Aware están disponibles. BLE es el fallback garantizado: lento, pero funciona sin ningún tipo de conectividad IP. El artículo cubre el formato de transmisión, el diseño de fragmentación de dos capas, cómo el tráfico concurrente se prioriza (y cómo no), y por qué cada conexión se derriba tras cada solicitud.
Arquitectura de chat entre pares y canales
Este artículo explica cómo funciona el chat offline-first de PlainApp de punta a punta: cómo un mensaje viaja desde un toque en la UI hasta otro dispositivo a través del transporte entre pares, cómo los canales grupales distribuyen mensajes a muchos miembros, y cómo el sistema se mantiene resiliente cuando las redes desaparecen. El emparejamiento (la confianza e intercambio de claves que arranca dos dispositivos) se cubre en el artículo independiente Flujo de emparejamiento.
Flujo de emparejamiento
Este artículo explica cómo dos dispositivos PlainApp establecen confianza por primera vez — cómo se descubren mutuamente, intercambian claves y llegan a la clave de transporte ChaCha20 compartida con la que posteriormente se cifra cada mensaje de chat, transferencia de archivos y ping de presencia. La arquitectura de chat y canales que consume esta clave se cubre en el artículo independiente Arquitectura de Chat.