Notas técnicas
Análises detalhadas da arquitetura peer-to-peer, do design de transporte e da criptografia do PlainApp — direto do código-fonte.
DLNA Cast: Construindo um Remetente e Receptor UPnP do Zero
Como o PlainApp implementa o DLNA/UPnP AV em ambos os lados: escaneando e controlando TVs via SOAP como remetente, e transformando o próprio telefone em um MediaRenderer UPnP como receptor — com descoberta SSDP, metadados DIDL-Lite, serviço de mídia com suporte a Range Request, callbacks de eventos GENA e um modelo de confiança baseado em lista de permissão/negação por IP do remetente, tudo em Kotlin Multiplatform puro.
Screen Mirror: Arquitetura de Casting de Baixa Latência
Este artigo aborda o design ponta a ponta do sistema de screen mirror do PlainApp: como o Android captura e codifica H.264/Opus via MediaCodec, como os quadros trafegam via WebSocket usando um protocolo binário personalizado, como o lado web decodifica via WebCodecs e renderiza via WebGL2 com zero cópias em CPU, como a detecção de perda, mudança de orientação e controle remoto por toque são tratados, e como o ciclo de vida do MediaProjection é mantido em sincronia.
PlainApp Segurança: análise detalhada
Como o PlainApp protege seus dados na rede Wi-Fi local — com evidências do código open source.
Design do Transporte Wi-Fi Aware — Descoberta de Vizinhos e Caminhos de Dados
Este artigo explica como o PlainApp usa Wi-Fi Aware (NAN — Neighbor Awareness Networking) como a camada intermediária da sua cadeia de fallback de transporte entre pares, entre a LAN (HTTPS na mesma sub-rede) e o BLE (RPC GATT de último recurso). O Wi-Fi Aware é o que faz dois dispositivos PlainApp conversarem quando estão em SSIDs diferentes, VLAN de visitantes vs IoT, ou sem qualquer infraestrutura Wi-Fi — sem jamais precisar de um endereço IP de um servidor DHCP.
Design do Transporte BLE — Mensagens e Downloads de Arquivos
Este artigo explica como o PlainApp envia mensagens de chat e baixa arquivos via Bluetooth Low Energy quando nem a LAN nem o Wi-Fi Aware estão disponíveis. O BLE é o fallback garantido: lento, mas funciona sem qualquer conectividade IP. O artigo cobre o formato do protocolo, o design de fragmentação em duas camadas, como o tráfego concorrente é (e não é) priorizado e por que toda conexão é encerrada após cada requisição.
Arquitetura de Chat entre Pares e Canais
Este artigo explica como o chat offline-first do PlainApp funciona de ponta a ponta: como uma mensagem viaja de um toque na UI até outro dispositivo pelo transporte entre pares, como canais de grupo distribuem mensagens para muitos membros e como o sistema se mantém resiliente quando as redes desaparecem. O pareamento (a troca de confiança e chaves que inicializa dois dispositivos) é abordado no artigo separado Fluxo de Pareamento.
Fluxo de Pareamento
Este artigo explica como dois dispositivos PlainApp estabelecem confiança pela primeira vez — como eles se descobrem, trocam chaves e chegam à chave de transporte ChaCha20 compartilhada com a qual toda mensagem de chat, transferência de arquivo e ping de presença é criptografada em seguida. A arquitetura de chat e canais que consome essa chave é abordada no artigo separado Arquitetura de Chat.