PlainApp Blog

Mühendislik Notları

PlainApp'ın peer-to-peer mimarisinin, taşıma katmanı tasarımının ve kriptografisinin derinlemesine analizi — doğrudan kaynak koddan.

Transport16 min read

DLNA Yayın: Sıfırdan Bir UPnP Gönderici ve Alıcı Kurmak

PlainApp, DLNA/UPnP AV yayınını her iki yönde nasıl uygular: bir gönderici olarak TV'leri SOAP üzerinden tarayıp kontrol etmek ve bir alıcı olarak telefonun kendisini bir UPnP MediaRenderer'a dönüştürmek — SSDP keşfi, DIDL-Lite meta verileri, Range-istekli medya sunumu, GENA olay geri çağrıları ve gönderici-IP izin/red güven modeli, tamamen saf Kotlin Multiplatform ile.

Makaleyi oku
Architecture15 min read

Ekran Yansıtma: Düşük Gecikmeli Yayın Mimarisi

Bu makale, PlainApp'in ekran yansıtma sisteminin uçtan uca tasarımını kapsar: Android'in MediaCodec ile H.264/Opus'u nasıl donanım kodlayıp yakaladığı, karelerin özel bir ikili protokol ile WebSocket üzerinden nasıl taşındığı, web tarafının WebCodecs ile kod çözüp WebGL2 ile sıfır CPU kopyası ile nasıl render ettiği, kayıp algılama, yön değişikliği ve uzaktan dokunma kontrolünün nasıl ele alındığı ve sistem MediaProjection yaşam döngüsünün nasıl senkronize tutulduğu.

Makaleyi oku
Security12 min read

PlainApp Güvenlik: Derinlemesine Analiz

PlainApp yerel Wi-Fi'da verilerinizi nasıl korur — açık kaynak koddan kanıtlarla.

Makaleyi oku
Transport19 min read

Wi-Fi Aware Taşıma Tasarımı — Komşu Keşfi ve Veri Yolları

Bu makale, PlainApp'in eş taşıma yedek zincirinin orta katmanı olarak, LAN (aynı alt ağ HTTPS) ve BLE (son çare GATT RPC) arasında Wi-Fi Aware'i (NAN — Neighbor Awareness Networking) nasıl kullandığını açıklamaktadır. Wi-Fi Aware, iki PlainApp cihazının farklı SSID'lerde, misafir ve IoT VLAN'larında veya hiç Wi-Fi altyapısı yokken — bir DHCP sunucusundan hiçbir zaman IP adresi gerektirmeden konuşmasını sağlayan şeydir.

Makaleyi oku
Transport15 min read

BLE Taşıma Tasarımı — Mesajlar ve Dosya İndirmeleri

Bu makale, PlainApp'in ne LAN ne de Wi-Fi Aware kullanılabilir olduğunda Bluetooth Low Energy üzerinden sohbet mesajlarını nasıl gönderdiğini ve dosyaları nasıl indirdiğini açıklamaktadır. BLE, garanti edilen yedektir: yavaştır, ancak hiçbir IP bağlantısı olmadan çalışır. Makale, kablo biçimini, iki katmanlı parçalama tasarımını, eşzamanlı trafiğin nasıl önceliklendirildiğini (ve önceliklendirilmediğini) ve her bağlantının neden her istekten sonra yıkıldığını ele almaktadır.

Makaleyi oku
Architecture12 min read

Eş ve Kanal Sohbet Mimarisi

Bu makale, PlainApp'in çevrimdışı öncelikli sohbetinin uçtan uca nasıl çalıştığını açıklamaktadır: bir mesajın UI'da bir dokunuştan eş taşıması üzerinden başka bir cihaza kadar nasıl yol aldığını, grup kanallarının mesajları birçok üyeye nasıl dağıttığını ve ağlar kaybolduğunda sistemin nasıl dayanıklı kaldığını. Eşleştirme (iki cihazı başlatan güven ve anahtar değişimi) ayrı Eşleştirme Akışı makalesinde ele alınmaktadır.

Makaleyi oku
Security10 min read

Eşleştirme Akışı

Bu makale, iki PlainApp cihazının ilk kez nasıl güven oluşturduğunu — birbirlerini nasıl keşfettiklerini, anahtarları nasıl değiştirdiklerini ve sonrasında her sohbet mesajının, dosya transferinin ve varlık pinginin şifrelendiği paylaşılan ChaCha20 taşıma anahtarına nasıl ulaştıklarını açıklamaktadır. Bu anahtarı kullanan sohbet ve kanal mimarisi, ayrı Sohbet Mimarisi makalesinde ele alınmaktadır.

Makaleyi oku