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.

platform
Android · iOS
geliştirici
Muhiddin İlhan
sunucu
yok, tamamen yerel ağ
Google Play ↗App Store · yakında
Wifile ana ekranı

## nasıl çalışır

  1. 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.

  2. 02

    Cihazı bul

    Gönderen taraf alıcıları otomatik bulur; istersen QR okutur ya da IP’yi elle eklersin.

  3. 03

    Teklifi onayla

    Alıcı gönderenin adını, dosya sayısını ve toplam boyutu görüp kabul eder ya da reddeder.

  4. 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

Wifile – Ana sayfa
Ana sayfa
Wifile – Dosya gönder
Dosya gönder
Wifile – Gelen teklif
Gelen teklif
Wifile – Transfer
Transfer
Wifile – QR ile bağlan
QR ile bağlan

## teknik detaylar

kullanılan teknolojiler

FlutterP2PNetworkYapay ZekâAndroidiOSGitHub

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.