muhiddin@grimoire:~$ cat ./uygulamalar/wifile/README.md

Wifile_
Araçlar · Android · iOS
İnternetsiz dosya transferi.
Aynı Wi-Fi ağındaki cihazlar arasında dosyaları eşten eşe aktaran bir araç. Yerel ağdaki cihazları otomatik olarak keşfeder; dosyalar internet bağlantısı gerektirmeden ve hiçbir sunucuya uğramadan aktarılır.

## nasıl çalışır
- 01
Alıcı ekranını aç
Alıcı cihaz kendini yerel ağda yayınlar; adını, IP’sini ve bir QR kod gösterir.
- 02
Cihazı bul
Gönderen taraf alıcıları otomatik bulur; istersen QR okutur ya da IP’yi elle eklersin.
- 03
Teklifi onayla
Alıcı gönderenin adını, dosya sayısını ve toplam boyutu görüp kabul eder ya da reddeder.
- 04
Dosyalar aksın
Dosyalar doğrudan diske yazılır, her biri için onay döner ve transfer geçmişe kaydedilir.
## özellikler
İnternetsiz transfer
Aynı Wi-Fi’da ya da telefonun erişim noktasında; kablo ve hesap gerekmez.
Otomatik keşif
Bonjour/NSD ve alt ağ taraması birlikte çalışarak yakındaki cihazları listeler.
QR ile bağlan
Alıcının QR kodu okutulunca IP yazmaya gerek kalmaz.
Onay sende
Her transfer alıcının onayıyla başlar; meşgul ve zaman aşımı durumları ayrıca ele alınır.
Büyük dosyalar
Gigabaytlık videolar belleğe alınmadan akıtılır; anlık hız ve kalan süre gösterilir.
iPhone ↔ Android
Platformlar arası çalışır; gönderilen ve alınan dosyalar geçmişten tek dokunuşla açılır.
## ekranlar





## teknik detaylar
kullanılan teknolojiler
zorluk
Aynı ağdaki cihazları güvenilir biçimde bulmak; mDNS bazı ağlarda ve hotspot’ta çalışmayabiliyor.
çözüm
Servis Bonjour ile yayınlanıp aranıyor. Buna ek olarak yerel /24 alt ağ 48 eşzamanlı işçiyle taranıyor ve yalnızca geçerli “pong” yanıtı veren cihazlar listeleniyor.
zorluk
Ham verinin protokolü bozmaması ve yarıda kalan transferler.
çözüm
Kendi TCP protokolü var: kontrol mesajları satır satır JSON, dosya verisi bildirilen boyut kadar ham bayt. Dosyalar .part olarak yazılıp tamamlanınca yeniden adlandırılıyor, bağlantı koparsa siliniyor.
zorluk
Platforma özgü sorunlar: iOS’ta Türkçe karakterli cihaz adları, Android galerisinde görünmeyen dosyalar, transferde kilitlenen ekran.
çözüm
Bonjour’da yalnızca ASCII bir kimlik yayınlanıyor, görünen ad ping yanıtından okunuyor. Android’de platform kanalıyla medya taraması tetikleniyor, transfer boyunca ekran açık tutuluyor.