"Uygulamada kuryeyi canlı takip edelim" cümlesi, teklif toplantılarında en sık duyduğumuz isteklerden biri. Kulağa basit geliyor: haritada bir nokta, hareket eden bir simge. Gerçekte ise bu özellik, bir mobil projede en çok mühendislik kararı gerektiren yerlerden biri — ve yanlış kurulduğunda hem teknik hem hukuki tarafta sorun üretiyor.
Bu yazı, Ev Hizmet uygulamasında canlı konum takibini kurarken verdiğimiz kararları ve gerekçelerini anlatıyor. Uygulama App Store ve Google Play'de yayında; aşağıdakiler teori değil, mağaza incelemesinden geçmiş kararlar.
Sorun neden basit değil?
Konum takibinde birbirini iten üç kısıt var:
1. Doğruluk — Nokta ne kadar sık güncellenirse takip o kadar gerçekçi olur.
2. Pil — Sık güncelleme telefonu ısıtır ve pili bitirir. Sahadaki çalışan telefonu öğlen ölen bir uygulamayı ikinci gün açmaz.
3. Mahremiyet ve hukuk — Sürekli konum toplamak, çalışanı mesai dışında da izlemek anlamına gelebilir.İyi bir çözüm üçünü de aynı anda maksimuma çıkarmaz; hangi anda hangisinin öncelikli olduğuna karar verir.
Karar 1: Takip sürekli değil, işe bağlı olmalı
En önemli karar bu ve gerisi buradan türüyor.
Ev Hizmet uygulamasında konum paylaşımı kendiliğinden başlamaz. Hizmet veren bir işi kabul edip "yola çıktım" dediğinde başlar. Ve şu üç durumdan biri olduğunda kendiliğinden durur:
İş tamamlandığında
İş iptal edildiğinde
Uygulama kapatıldığındaBuna ek olarak hizmet verenin ekranında paylaşımın açık olduğunu gösteren kalıcı bir gösterge ve istediği an basabileceği bir duraklat düğmesi var.
Bu tasarımın üç faydası birden var:
Pil: Günün büyük kısmında konum servisi hiç çalışmaz. Sadece aktif iş sırasında, yani günde belki bir-iki saat.
Hukuk: Mesai dışında konum toplanmadığı için "çalışan sürekli izleniyor" durumu doğmaz.
Mağaza incelemesi: Hem Apple hem Google, arka planda konum kullanan uygulamalardan gerekçe ister. "Yalnızca aktif iş sırasında, kullanıcının başlattığı ve durdurabildiği paylaşım" savunulabilir bir gerekçedir; "sürekli takip" değildir.Karar 2: Güncelleme sıklığı sabit olmamalı
Her üç saniyede bir konum göndermek gereksizdir. Kırmızı ışıkta bekleyen bir araçtan saniyede bir konum almanın hiçbir faydası yok, pil maliyeti ise gerçek.
Doğru yaklaşım mesafe tabanlı ve duruma duyarlı güncellemedir:
Araç hareket etmiyorsa güncelleme seyrekleşir.
Belirli bir mesafe kat edildiğinde yeni konum gönderilir.
Varış noktasına yaklaştıkça sıklık artar — çünkü müşterinin en çok baktığı an odur.Ayrıca konumun her değişiminde sunucuya yazmak gerekmez. Kısa aralıklı değişiklikler cihazda toplanıp toplu gönderilebilir; bu hem veri kullanımını hem sunucu maliyetini düşürür.
Karar 3: Müşteri neyi görüyor, hizmet veren neyi görüyor?
Simetrik olmayan bir tasarım gerekiyor:
Müşteri, kendisine gelen kişinin konumunu ve tahmini varış süresini görür — ama yalnızca iş aktifken.
Hizmet veren, müşterinin tam adresini yalnızca işi kabul ettikten sonra görür.
Operasyon ekibi, canlı haritada tüm aktif işleri görür — ama rolüne göre kısıtlı.Son madde önemli: Ev Hizmet panelinde dokuz farklı rol var ve saha koordinatörü yalnızca kendi illerindeki işleri görebiliyor, müşterinin kimliğini göremiyor — yalnız bir müşteri numarası görüyor.
Karar 4: Havuzdaki adres — en kritik nokta
Bu, konum konusunun en çok atlanan ve en pahalıya patlayan kısmı.
Bir iş havuza düştüğünde onu henüz kabul etmemiş kişiler de o kartı görüyor. Kartta müşterinin açık adresi varsa, sistem her iş için müşteri adresini sahadaki herkese dağıtıyor demektir.
Ev Hizmet uygulamasında çözüm şöyle:
Havuzdaki kartta adres ilçe seviyesine kırpılır
Haritadaki konum yaklaşık üç yüz metreye yuvarlanır
Tam adres yalnızca işi kabul eden kişiye açılırVe en kritik ayrıntı: bu kırpma telefonda değil, veriyi döndüren sunucu fonksiyonunun içinde yapılır.
Neden? Çünkü ekranda gizlenen veri gizlenmiş sayılmaz. Uygulamanın sunucuyla konuşmasını inceleyen biri, ekranda görünmeyen ama gönderilmiş olan veriye ulaşabilir. Kişisel veriyi ekranda gizlemek yeterli değildir; veriyi hiç göndermemek gerekir.
Bu ilke, KVKK'nın veri minimizasyonu yaklaşımıyla da örtüşür: bir işlem için gerekli olandan fazla kişisel veri işlememek.
Karar 5: Konum geçmişi ne kadar saklanacak?
Sık atlanan bir soru. Konum verisi biriktikçe hem depolama maliyeti artar hem de bir veri sızıntısı durumunda risk büyür.
Pratik yaklaşım:
Aktif iş sırasında konum gerçek zamanlı tutulur.
İş bittikten sonra rota özeti (başlangıç, bitiş, süre, mesafe) saklanır; saniye saniye izin tamamı değil.
Ham konum kayıtları belirlenen bir süre sonunda otomatik silinir.Bu, hem operasyonun ihtiyaç duyduğu raporlamayı karşılar hem de gereksiz veri birikmesini önler. Saklama süresini iş ihtiyacınıza ve hukuki gerekliliğinize göre siz belirlersiniz; sistem bunu uygular.
Teknik notlar: neyi nasıl kullanıyoruz
Mobil taraf: Flutter ile tek kod tabanı; iOS ve Android'in konum izin modelleri farklı olduğu için izin akışı platform bazında ayrı ele alınır.
Gerçek zamanlı iletim: Konum güncellemeleri veritabanının gerçek zamanlı kanalı üzerinden akar; müşteri tarafı sürekli sorgu atmaz, değişiklik geldiğinde bilgilendirilir. Bu, pil ve veri kullanımında ciddi fark yaratır.
Erişim kısıtı: Kimin hangi konumu görebileceği veritabanı seviyesinde satır bazlı erişim kurallarıyla tanımlıdır, uygulama kodunda değil. Uygulama kodundaki kontrol atlatılabilir; veritabanı kuralı atlatılamaz.
Harita: İşaretçi yoğunluğu arttığında kümeleme kullanılır, aksi halde panel yavaşlar.İzin metinleri: mağaza incelemesinin takıldığı yer
Hem App Store hem Google Play, konum izni isteyen uygulamalardan kullanıcıya gösterilen gerekçe metnini ve mağaza formundaki açıklamayı tutarlı biçimde ister. Sık yapılan hatalar:
Gerekçe metninin genel geçer olması ("Uygulamanın çalışması için konum gerekli")
Arka plan konumu istenip gerekçenin ön plan gibi yazılması
Veri güvenliği beyanında konum verisinin paylaşılıp paylaşılmadığının eksik doldurulmasıEv Hizmet uygulamasında bu süreçleri, red durumlarındaki düzeltmeler dahil biz yürüttük. Mağaza incelemesi, projenin sonuna eklenen bir formalite değil, takvimin gerçek bir parçasıdır. Detay için: App Store ve Google Play Yayın Rehberi
Özet
Canlı konum takibi bir harita özelliği değil, bir güven özelliğidir — ve güven, sınırları belli olduğunda oluşur.
Takip işe bağlı olsun, sürekli olmasın
Güncelleme sıklığı duruma göre değişsin
Kim neyi görüyor, açıkça tanımlansın
Havuzdaki adres sunucu tarafında kırpılsın
Konum geçmişi süresiz saklanmasınBu beş kural uygulandığında takip, çalışanı rahatsız etmeyen ve müşterinin "geliyor mu" sorusunu ortadan kaldıran bir araca dönüşüyor.
İlgili sayfalar
Kurye Takip Yazılımı ve Dağıtım Sistemi
Yol Yardım ve Çekici Çağrı Yazılımı
Hizmet Pazaryeri ve Usta Çağırma Uygulaması
Ev Hizmet vaka çalışması