Basit Konuma Duyarlı Uyarılar İçin Mobil Uygulama Nasıl Yapılır?
Konuma göre basit hatırlatmalar tetikleyen mobil bir uygulama oluşturma rehberi—MVP planlama, geofence’ler, izinler, test ve gizlilik.

“Konuma Duyarlı Uyarı” Ne Demektir (Örneklerle)
Bir konuma duyarlı uyarı, bir kullanıcı gerçek bir yere girip çıktığında uygulamanızın gösterdiği bir mesajdır. Bunu zamana değil konuma bağlı bir hatırlatma olarak düşünün.
Basit bir tanım
Özetle, bir konuma duyarlı uyarı üç parçadan oluşur:
- Bir yer (örneğin “Ev” veya “Market”)
- Bir tetikleyici (varış, ayrılış veya yakında)
- Bir uyarı (kısa bir mesaj veya kontrol listesi)
Örnek: “Eczaneye varınca reçetemi almamı hatırlat.”
Yaygın, pratik kullanım senaryoları
Konuma duyarlı uyarılar, bağlamdan fayda sağlayan günlük hatırlatmalar için iyidir:
- Hatırlatmalar: “Ofisten çıkınca tamirciyi aramamı hatırlat.”
- Kontrol listeleri: “Spor salonuna varınca: su şişesi, havlu, kilit.”
- Güvenlik notları: “Patika başlangıcına varınca: konumu bir arkadaşla paylaş.”
- Alışkanlık tetikleyicileri: “Eve gelince: vitaminleri al.”
Ana fikir: uyarı, kullanıcının harekete geçmesinin en kolay olduğu anda—doğru yerde gösterilir.
Bu kılavuzda “basit” ne anlama geliyor
“Basit”, düşük kalite demek değildir—odaklanmış demektir:
- Bir net tetikleyici (varış/ayrılış)
- Temel bir kural seti (hangi yer, hangi mesaj, belki zaman pencereleri)
- Minimum kurulum (birkaç dokunuş, karmaşık otomasyon jeneratörleri yok)
Tam bir “if-this-then-that” sistemi kurmuyorsunuz. Güvenilir bir hatırlatıcı aracı inşa ediyorsunuz.
Bu kılavuz neleri kapsar (neleri kapsamaz)
Bu kılavuz fikirden yayınlamaya kadar ilerler: MVP tanımı, mimari seçimi, izinlerin net yönetimi, konumun verimli tespiti, iyi UX ile uyarı teslimi ve gizlilikle yayınlama.
Gelişmiş rota hesaplama, adım adım navigasyon, sosyal konum paylaşımı veya yüksek frekanslı fitness takibi gibi konulara değinmez—bunlar karmaşıklığı, pil gereksinimlerini ve gizlilik beklentilerini önemli ölçüde değiştirir.
MVP ile Başlayın: Tetikleyiciler, Uyarılar ve Kurallar
Konuma duyarlı uyarılar için bir MVP, “tam uygulamanın küçük bir sürümü” değildir. Açık bir vaadi olmalıdır: bir kişi bir yere ulaştığında uygulama ona yardım edecek şekilde güvenilir bir şekilde hatırlatır—pil tüketmeden veya spam gibi hissettirmeden.
Başlarken üç şeyi tanımlayın: tetikleyici türleri, uyarı formatları ve deneyimi makul tutacak kurallar.
Tetikleyici türlerinizi seçin
İlk sürümü cümle halinde açıklayabileceğiniz tetikleyicilerle sınırlayın:
- Giriş (Enter): kullanıcı belirli bir yarıçap içine girdiğinde tetikleme (örn. “Market’teyken”).
- Çıkış (Exit): ayrıldığında tetikleme (örn. “Ofisten ayrılırken”).
- Dwell: belirli bir süre kaldıktan sonra tetikleme (örn. “Spor salonda 10 dakika kaldıktan sonra”).
- Zaman penceresi: herhangi bir tetikleyicinin hangi zamanlarda tetiklenebileceğini sınırlama (örn. hafta içi 08:00–18:00).
Emin değilseniz Enter + zaman penceresi ile başlayın. Çoğu hatırlatma senaryosunu kapsar ve kenar durumları azaltır.
Uyarı formatlarına karar verin
Birincil teslim yöntemi ve bir yedek seçin. Daha fazlası sonraya kalabilir.
- Bildirim: anlık, eller serbest hatırlatmalar için en uygun. Eyleme geçirilebilir yapın (örn. “Tamamlandı olarak işaretle”, “Ertele”).
- Uygulama içi kart: kullanıcı zaten uygulamadaysa bağlam ve geçmiş için iyi.
- Widget: kullanışlı ama ekstra yüzey ve QA işi getirir—ikinci sürüm özelliği olarak düşünün.
Pratik bir MVP kombinasyonu bildirim + uygulama içi karttır: bildirimler dikkat çeker; uygulama tetiklenen öğeyi ve nedenini gösterir.
“Bildirim kaosu”nu önleyecek limitler koyun
Basit bir konuma dayalı hatırlatmalar uygulaması bile koruyuculara ihtiyaç duyar:
- Maks kayıtlı konum: başlangıçta bir üst sınır belirleyin (örn. 20–50) performans ve test için sadeleştirir.
- Yarıçap aralığı: mantıklı sınırlar zorunlu kılın (örn. 100 m–1 km) böylece kullanıcılar sürekli tetiklenen kurallar oluşturamaz.
- Frekans kapları: “konum başına X dakikadan daha sık olmayacak” ve “aynı anda konum başına yalnızca bir aktif uyarı” gibi kurallar ekleyin.
Bu limitler uygulamayı düşünceli hissettirir, gürültülü değil.
MVP başarısını baştan tanımlayın
Özellik eklemeden önce “çalışıyor” ne demek olduğunu ölçülebilir olarak kararlaştırın. İlk sürüm için birkaç ölçülebilir sinyale odaklanın:
- Aktivasyon oranı: kurulumların yüzde kaçı en az bir konuma duyarlı uyarı oluşturuyor
- Uyarı kaydı: aktif kullanıcı başına ortalama oluşturulan uyarı sayısı
- Tutma (retention): yenilik etkisi geçtikten sonra kullanıcılar bir hafta sonra geri geliyor mu?
Bu metrikler iyileşirse, daha fazla tetikleyici, widget ve akıllı zamanlama gibi özellikler eklemeye hak kazanırsınız.
Teknoloji Yığını ve Uygulama Mimarisi Seçimi
Teknik seçimleriniz şu soruya dayanmalı: uygulama bir yere ilişkin tetiklemeyi ne kadar güvenilir fark edebilir ve uyarıyı gösterebilir—pil tüketmeden ve kullanıcıları şaşırtmadan?
Native vs. çapraz platform
Native (iOS: Swift + Core Location, Android: Kotlin + Location API'ları) arka planda konum davranışı, sistem kısıtlamaları ve hata ayıklama için genelde daha öngörülebilirdir. Eğer ekibiniz platformları zaten biliyorsa MVP için en hızlı yol genellikle budur.
Çapraz platform (Flutter, React Native) UI geliştirmeyi hızlandırıp tek bir kod tabanı sağlayabilir, ancak konum özellikleri plugin'lere bağımlıdır. Basit bir uygulama için bu yeterli olabilir; ancak arka plan sınırları, üretici farklılıkları veya OS güncellemeleri gibi kenar durumlarda native yamalar gerekebilir.
Pratik kural: konum tetikleyicileri ana özellikse, ekibiniz seçtiğiniz çapraz platformda zaten konum ağırlıklı uygulamalar yayınlamıyorsa native tercih edin.
Hızlı prototip ya da ilk sürüm için Koder.ai gibi sohbet tabanlı bir spesifikasyondan çalışan bir uygulama üretebilen platformlar Flutter kullanarak hızlı başlangıç sağlayabilir—sonrasında isterseniz React için web ve senkron için Go + PostgreSQL backend ekleyebilirsiniz.
Yayınlayabilecek basit bir mimari
MVP için küçük ve net tutun:
- Mobil uygulama: uyarı oluşturma, tetikleyicileri izleme ve bildirim gösterme işlerini yapar.
- Yerel depolama: SQLite/Room (Android), Core Data/SQLite (iOS) veya hafif bir veri katmanı.
- İsteğe bağlı backend: gerçekten gerekliyse ekleyin.
Bu yaklaşım çevrimdışı kullanımını doğal olarak destekler: bağlantı olmasa bile uyarılar çalışır.
Ne zaman backend gerekir
Çoklu cihaz senkronu, paylaşılan listeler (aile/ekip), analitik veya sunucu tarafından yönetilen deneyler gerektiğinde backend ekleyin. Aksi takdirde backend maliyet, gizlilik yüzeyi ve hata durumlarını artırır.
Backend eklemeye karar verirseniz sınırı temiz tutun: senkron için gereken nesneleri saklayın ve tetik değerlendirmesini mümkün olduğunca cihazda bırakın.
Veri modeli temelleri
Temel nesneleri sade tutun:
- Prompt (Uyarı): başlık, mesaj, etkin/etkin değil, öncelik
- Location (Konum): kaydedilmiş yer bilgileri (etiket + koordinatlar + yarıçap)
- Schedule (Zamanlama): isteğe bağlı zaman pencereleri veya günler
- Trigger history (Tetik geçmişi): ne zaman tetiklendi, ne eşleşti, kullanıcı tepki verdi mi
Bu modelle daha sonra temelini yeniden yazmadan yineleyebilirsiniz.
Kullanıcıları Kafalarını Karıştırmadan Konum İzinleri
Konum özellikleri, izin isteği anında en çok başarısız olur. İnsanlar “konum”u reddetmiyor; belirsizliği reddediyorlar. İşiniz, tam olarak ne olacağını ve ne zaman olacağını açıklamaktır.
Sistem popup’ından önce “neden”i açıklayın
OS diyaloguyla başlamayın. Önce basit, tek sayfalık bir açıklama gösterin:
- Konumu ne için kullanacağınız (örn. “Markete varınca hatırlatmak için”)
- Ne zaman erişeceğiniz (örn. “Sadece bir hatırlatıcı oluşturduğunuzda veya çalıştırdığınızda”)
- Yapmayacağınız şeyler (örn. “Hareket geçmişinizi saklamıyoruz”)
Kısa, net ve anlaşılır tutun. İki cümlede açıklayamıyorsanız, özellik muhtemelen çok geniştir.
iOS vs Android: kullanıcıların gerçekten gördüğü seçenekler
iOS’ta kullanıcıların çoğu Uygulama Kullanılırken (When In Use) veya Her Zaman (Always) arasında seçim yapar. Uygulamanız kapalıyken de uyarılar gerekiyorsa Her Zaman gerektiğini açıklayın—ve bu izni yalnızca kullanıcı en az bir konum uyarısı oluşturduktan sonra isteyin.
Android’te kullanıcılar genellikle önce ön plan (foreground) konum verir, sonra arka plan izni ayrı olarak istenir. Bunu iki adımlı bir güven akışı olarak ele alın: önce görünür değeri kanıtlayın, sonra arka plan erişimi isteyin.
Kesin (precise) vs yaklaşık (approximate) konum
Pek çok telefon kesin ya da yaklaşık konum seçeneği sunar. Kullanıcı yaklaşık seçtiyse deneyimi bozmayın:
- Tetik alanını genişletin (daha büyük yarıçap)
- “Daha sıkı hatırlatmalar için Kesin Konumu etkinleştirin” gibi bir not ekleyin
İzin reddedildiyse: uygulamayı faydalı tutun
Bir yedek sunun: zaman tabanlı hatırlatmalar, manuel “buradayım” kontrolü veya sadece uygulama açıkken tetikleyen bir adres seçici gibi.
Ayrıca izinleri yeniden etkinleştirme yolunu net gösterin (ör. ayarlar ekranı ve kısa bir açıklama).
Konumu Nasıl Tespit Edersiniz: Geofence vs GPS Takibi
Uygulamanızın “kullanıcının nerede olduğunu” nasıl bildiğini seçmek pil ömrü ve güvenilirlik için en büyük karardır. Basit konuma dayalı uyarılar için genelde hâlâ doğru hissettiren en hafif seçeneği tercih edin.
Geofencing: varış/ayrılış tetiklemeleri için en iyi seçenek
Geofencing, bir yer etrafında sanal bir sınır (yarıçaplı daire) tanımlamanıza izin verir. OS, “giriş” ve “çıkış” olaylarını izler ve gerektiğinde uygulamanızı uyandırır.
Bu, uyarılarınız yer tabanlı ve ikili (varış/ayrılış) ise idealdir. Kullanıcılara da kolayca açıklanır: “Bu konuma yaklaştığınızda sizi uyaracağız.”
Basit uygulamalar için önerilen varsayılanlar:
- Yarıçap: 150–300 metre (daha küçük daha hassas ama kararsız olabilir)
- Debounce / soğuma: konum başına 10–30 dakika
- Günlük maksimum tetikleme: kural başına 3–10 (uygulamanın amacına bağlı)
Significant location change vs sürekli GPS takibi
Yaklaşık konum güncellemeleri gerekiyorsa (ör. yakın kuralları yenilemek için), significant location change iyi bir orta yol sunar. Cihaz sadece anlamlı hareket algıladığında güncelleme bildirir, bu da sürekli GPS’den çok daha az pil tüketir.
Sürekli GPS takibi gerçek zamanlı ihtiyaçlar (fitness, navigasyon) dışında genelde gereksizdir. Pil çabuk biter ve gizlilik hassasiyeti artar.
Planlanacak kenar durumlar
- GPS sapması: sınır yakınında tetiklemeler olabilir. Biraz daha büyük yarıçap ve soğuma kullanın.
- Yüksek binalar / yeraltı: sinyaller gürültülü olur. Gecikmeler veya kaçırılan tetiklemeler bekleyin; uygulamada manuel “şimdi çalıştır” olanağı sunun.
- Hızlı hareket (araç/tren): kullanıcı küçük bir geofence’i çok hızlı geçebilir. Daha büyük yarıçapları tercih edin ve çok kısa soğuma sürelerinden kaçının.
Pratik yaklaşım: birincil kurallar için geofenceleri kullanın, ekstra güvenilirlik gerekiyorsa only significant-change güncellemelerini ekleyin.
Uyarıları Teslim Etme: Bildirimler ve Uygulama İçi UX
Bir konum tetikleyici, uyarı doğru zamanda ve kolayca işlem yapılabilir şekilde gösterilmezse işe yaramaz. Teslimatı bir ürün özelliği gibi ele alın: zamanlama, ifade şekli ve “bir sonraki dokunuş” tespit kadar önemlidir.
Yerel vs push: en basit aracı seçin
Çoğu MVP için yerel bildirimler güvenilir uyarılara en hızlı yoldur. Cihaz üzerinde tetiklenir, sunucuya ihtiyaç duymaz ve mimarinizi basit tutar.
Push bildirimleri yalnızca gerçekten sunucu kontrollü davranış gerektiğinde (cihazlar arası senkron, uzaktan değiştirilen uyarılar, paylaşılmış takvimlerle bağlı uyarılar) kullanılmalı.
“Bildirim yorgunluğu”nu akıllı sınırlamalarla önleyin
Yardımcı bir hatırlatma bile çok sık tekrar ederse rahatsızlık olur. Açık dille açıklanabilecek hafif kontroller ekleyin:
- Soğuma (örn. “30 dakika daha hatırlatma” yok)
- Sessiz saatler (uyku veya toplantılarda uyarı yok)
- Maks tekrar: (örn. üç kez görmezden gelindikten sonra dur)
Bu kurallar uygulamanızın itibarını korur: daha az sinirli kullanıcı, daha az kaldırma.
Uyarıları eyleme geçirilebilir yapın
İyi bir uyarı “sonraki ne yapmalıyım?” sorusunu cevaplar. Bildirimleri şu şekilde tasarlayın:
- Ertele (5/15/60 dakika)
- Tamamlandı olarak işaretle (ve isteğe bağlı kaydet)
- Uygulamayı doğrudan ilgili hatırlatmaya aç
- Eğer gerekliyse haritayı aç (navigasyon veya yakın görevler için)
Bildirimleri sakin bir uygulama içi deneyimle eşleştirin
Kullanıcı bir uyarıdan uygulamayı açtığında, onları odaklanmış bir ekrana yönlendirin: hatırlatma metni, hızlı eylemler ve zarif bir “Tamamlandı” onayı. Yoğun bir gösterge paneline atmayın—kesintinin aciliyetine uygun tutun.
Uyarı Kurulumu Deneyimini Tasarlama
Konuma duyarlı bir uyarı, bir kişinin bunu düşünmeden kurabildiği anda en iyi performansı gösterir. Amaç, oluşturma akışının tanıdık, affedici ve hızlı hissetmesi—özellikle konum seçimi teknik olmayan kullanıcılar için kafa karıştırıcı olabilir.
“Uyarı Oluştur” akışı: yer, yarıçap, mesaj
Akışı üç karar üzerine odaklayın:
- Bir yer seçin (uyarı hangi yerde tetiklenecek)
- Yarıçap seçin (ne kadar yakın “yeterince yakın”)
- Mesajı yazın (ne hatırlatılmasını istiyorsunuz)
Pratik bir varsayılan, mesaj alanını kısa bir şablonla doldurmak (örn. “Unutma…”) ve kullanıcıların metre/fit anlamak zorunda kalmaması için makul bir yarıçap ön seçmektir.
Konum seçimi: arama, harita veya mevcut konum
Birden fazla seçim yolu sunun, ama hepsini aynı anda göstermeyin.
Önce arama çoğunlukla en hızlı seçenektir: yer tamamlama ile “Ev”, “Migros” veya belirli bir adres kolay bulunur.
İki destekleyici seçenek ekleyin:
- Mevcut konumu kullan hızlı kurulumlar için (“Buraya geri döndüğümde hatırlat”). Bu işlemin yaranın dokunduğu anı sabitlediğini açıkça belirtin.
- Harita seçici sınır durumları için (park, patika başlangıcı, otopark). Harita varsa etkileşimi basit tutun: iğneyi sürükle, adresi/gösterimi göster ve net bir “Konumu Onayla” düğmesi verin.
İnsanların anlayacağı yarıçap arayüzü
Çoğu kullanıcı metreyle düşünmez. Bir kaydırıcı kullanın ve düz dil etiketleri verin (örn. “Çok yakın”, “Yakın”, “Birkaç blok ötede”) ama sayısal değeri de net tutun. Küçük bir önizleme satırı (“~200 m içindeki tetiklemeler”) sürprizleri azaltır.
Oluşturma sonrası yönetim
Uyarılar oluşturulduktan sonra kullanıcılar hızlı kontrol istemelidir:
- Her uyarı için etkin/pasif anahtarı
- Aynısını yeniden kullanmak için kopyala
- Ana listede yer kaplamaması için arşivle
Listeyi okunaklı tutun: yer adı, tek satırlık mesaj önizlemesi ve ince bir durum gösterimi (“Etkin”, “Duraklatıldı”, “Arşivlendi”).
Erişilebilirlik temelleri
Konum UX genellikle küçük harita kontrollerine dayanır—bu yüzden erişilebilirlik kasıtlı olmalı:
- Seçilen adres ve yarıçap için okunabilir metinler ve güçlü kontrast
- Anahtarlar, harita düğmeleri ve “Onayla” eylemleri için büyük dokunma hedefleri
- Ekran okuyucular için net odak sırası ve etiketler (örn. “Yarıçap kaydırıcısı, 200 metre”)
Hızlı, net ve geri alınabilir bir kurulum deneyimi destek taleplerini azaltır ve kullanıcıların konuma dayalı hatırlatmaları kullanma olasılığını artırır.
Çevrimdışı Destek, Pil Ömrü ve Arka Plan Kısıtları
Konuma duyarlı bir hatırlatmalar uygulaması, kullanıcı sinyallerinin zayıf olduğu, pilin azaldığı veya uygulamanın günlerce açılmadığı durumlarda bile çalışmalı. Bu kısıtları baştan tasarlamak basit uygulamanızın güvenilir kalmasını sağlar.
Çevrimdışı-öncelikli depolama (hatırlatmalar her zaman tetiklensin)
Cihazı tetiklemenin doğrulanmış kaynağı olarak görün. Hatırlatmaları yerel olarak saklayın (ör. ad, enlem/boylam, yarıçap, etkin durumu, son düzenleme zaman damgası).
Hesap veya senkron planlıyorsanız, değişiklikleri bir “outbox” tablosuna kuyruğa alın: oluşturma/güncelleme/silme eylemleri zaman damgasıyla. Ağ ulaştığında bu işlemleri gönderin ve sunucu onayı alındıktan sonra tamamlandı olarak işaretleyin.
Arka plan kısıtları: neye güvenebilirsiniz
Hem iOS hem Android uygulamaların arka planda neler yapabileceğini sınırlar, özellikle kullanıcı uygulamayı sık açmıyorsa.
Güvenilir yaklaşım OS tarafından yönetilen konum tetikleyicilerine (geofenceler / region monitoring) dayanmaktır—bunlar uygulamanızı gün boyu aktif tutmadan doğru anda uyandırmak için tasarlanmıştır.
Varsayımlara dikkat edin:
- Her senaryoda anlık geri çağırma almayabilirsiniz (pil tasarruf modları, cihaz yeniden başlatma, sistem planlaması).
- Tetik sonrası arka planda çalışma süresi kısa olabilir; işi minimal tutun: uyarının gösterilip gösterilmeyeceğine karar verin, sonra bir bildirim planlayın.
Pil: sorgulamadan kaçının
Sık GPS sorgulama pilin hızlı tükenmesine ve uygulamanın kaldırılmasına neden olur. Tercihler:
- “Varış/ayrılış” hatırlatmaları için geofenceler
- Periyodik güncellemeler gerektiğinde düşük güçlü konum modları
- İşleri toplu hâlde yapma (bir kerede birden fazla hatırlatmayı güncelleme)
Senkron eklenirse: çakışma yönetimi
Hatırlatmalar birden fazla cihazda düzenlenebiliyorsa, basit bir çakışma politikası belirleyin. Pratik varsayılan “son yazan kazanır” (server timestamp kullanarak) ve silinmeler için tombstone kaydıdır, böylece eski bir cihaz senkronu silinmiş bir öğeyi geri getirmez.
Gizlilik ve Güvenlik: Konuma Dayalı Özellikler
Konuma dayalı hatırlatmalar kişisel hissedilir; kullanıcılar verilerinize nasıl davrandığını gözlemler. İyi gizlilik sadece politika metni değildir—ürün tasarımıdır.
Gerekenden azını toplayın
Başlangıçta en küçük gerekli veri kümesiyle başlayın. Bir hatırlatıcı sadece bir yere varıldığında tetiklenecekse, genellikle kullanıcı yolunu saklamaya gerek yoktur.
- Minimum veri toplayın; tam konum geçmişinden kaçının
- Ham GPS kayıtları yerine kullanıcı tanımlı yerleri saklamayı tercih edin
- Sadece gerektiğinde zaman damgaları tutun (örn. “sadece hafta içi” için)
Mümkünse cihaz üzerinde işleyin
Uygulama “tetik karşılandı, uyarı göster” kararını cihazda verebiliyorsa, bunu yapın. Cihaz üstü işlem veri maruziyetini azaltır ve uyumluluğu kolaylaştırır.
- Tetik değerlendirmesini mümkün olduğunca cihazda tutun
- Sunucu gerekiyorsa sadece gerekli olanı gönderin (ör. yer ID’leri ve tetik durumları)
Gizliliği uygulama içinde anlaşılır kılın
Gizliliği yasal metinlerin arkasına saklamayın. Açık, sade bir ekran ekleyin:
- Kısa gizlilik ekranı: neyi izlediğiniz, neden ve nasıl sileceğinizi
- Kontroller: konum özelliklerini duraklat, kaydedilmiş yerleri sil, tüm uygulama verilerini sil
Güvenlik temelleri
Kaydedilmiş konumları hassas veri gibi ele alın.
- Konumları veya yer adlarını sakladığınız yerel veritabanlarını şifreleyin
- Tüm ağ trafiğinde TLS kullanın ve istekleri düzgün doğrulayın
- İçeri erişimi sınırlandırın: konuma ihtiyaç duyan bölümler dışında okunamaz olsun
Basit bir kural: veri kullanımınızı iki cümlede açıklayamıyorsanız muhtemelen çok fazla veri topluyorsunuz.
Konum Tetiklemelerini Test Etme ve Hata Ayıklama
Konum özellikleri genelde “telefonunuzda çalışır” ama gerçek kullanıcılar için başarısız olur çünkü koşullar karmaşıktır: zayıf sinyal, farklı cihazlar, pil kısıtlamaları ve öngörülemeyen hareket. İyi bir test planı bu hataları erken görünür kılar.
Gerçek koşullarda test edin (sadece masanızda değil)
Uygulamayı normal bir yapı ile dış ortamda birkaç kez çalıştırın.
- Yürüme testleri: aynı yere farklı yönlerden yaklaşın, girin ve çıkın.
- Araç testleri: hızlı hareket sınırları atlayabilir veya gecikebilir. Hedef alanın yakından geçtiği bir rota deneyin.
- Zayıf GPS testleri: yeraltı otopark, yoğun sokaklar veya iç mekanlarda pencerelerden uzak alanlar.
- Düşük güç modu testleri: pil tasarrufu ayarları arka plan güncellemelerini geciktirebilir.
Beklenen tetikleme zamanı, gerçek tetikleme zamanı ve uygulamanın açık/background/force-closed olup olmadığını not edin.
Tekrarlanabilirlik için simülatör ve mock konum kullanın
Gerçek dünya testleri önemli ama yavaştır. Tekrarlanabilir testler ekleyin:
- Simüle edilmiş rotalar (sınırdan geçiş)
- “Jump” testleri (uzaktan içeri teleport)
- Kenar testleri (sınır etrafında gezinme ve tekrar eden tetiklemeler)
Mocking bir hatayı tam olarak yeniden üretmenizi ve düzeltmeyi doğrulamanızı sağlar.
Küçük ama kasıtlı bir cihaz matrisi oluşturun
Konum davranışı Android üreticilerine ve OS sürümlerine göre değişir. Kapsayın:
- En az bir eski Android, bir yeni Android ve bir iPhone modeli
- Birkaç izin durumu: Bir Kez İzin Ver, Uygulama Kullanılırken, Her Zaman, Reddedildi
- Arka plan kısıtlamaları: varsayılan ayarlar vs agresif pil optimizasyonu
Hassas geçmiş toplamadan hata kaydı
Kayıtları hata ayıklama aracı olarak kullanın, konum günlüğü olarak değil. Aşağıdaki gibi olayları kaydedin:
- Zaman damgası, tetik tipi (enter/exit), uyarı ID’si
- İzin durumu ve arka plan güncellemelerinin izinli olup olmadığı
- Doğruluk seviyesi ve başarısızlık için kaba neden kodu (örn. “permission_denied”, “location_unavailable”)
Ham koordinatlar veya uzun konum izleri depolamaktan kaçının. Hata ayıklama için konum gerekiyorsa, bunu isteğe bağlı, kısa ömürlü ve kullanıcı kontrollü tutun.
Yayınlama: Mağaza Gereksinimleri ve Yayın Kontrol Listesi
Konuma duyarlı bir uygulamayı onaylatmak, çoğunlukla açıklıkla ilgilidir: özellikle arka planda neden konuma eriştiğinizi gerekçelendirmeli ve kullanıcıya veri konusunda saygılı olduğunuzu göstermelisiniz.
İzinleri etkileyen mağaza gereksinimleri
iOS (App Store):
Apple, izin amaç metinlerinizi inceler. Konum amaç dizeleri kullanıcıya açıkça ne sunduğunuzu anlatmalıdır. “Her Zaman” konumu istiyorsanız, “Uygulama Kullanılırken” ile güvenilir çalışmayacağı konusunda gerekçe sunmaya hazır olun.
Android (Google Play):
Google arka plan konumuna karşı katıdır. Bunu talep ederseniz Play Console’da özelliği ve neden ön planın yeterli olmadığını açıklayan bir bildirim doldurmanız gerekebilir. Ayrıca Veri Güvenliği (Data Safety) ayrıntılarını doldurmanız istenir (ne topluyorsunuz, nasıl kullanılıyor, paylaşılıyor mu).
Mağaza açıklamalarında faydayı açıklayın
App Store/Play Store açıklamanızda kullanıcı faydasını bir cümlede önce verin:
“Markete varınca listenizi unutmayın diye hatırlatmalar alın.”
Ayrıca şunları belirtin:
- Uyarıların ne zaman tetiklendiği (varış, ayrılış, yakınlık)
- Konumun sadece hatırlatmaları teslim etmek için kullanıldığı
- Arka plan konumunun isteğe bağlı olduğu ve olmadan neyin etkilenebileceği
Yayın planı: test, beta, kademeli dağıtım
Basit bir dağıtım sırayla kullanın:
- İç test (ekip cihazları, farklı OS sürümleri)
- Kapalı beta (gerçek kullanıcılar, gerçek yerler)
- Kademeli sürüm (küçük bir yüzde ile başlayıp genişletme)
Çökme oranları, izin opt-in oranları ve tetikleyicilerin güvenilirliği izleyin.
Yayın kontrol listesi (atlamayın)
- İzin pencereleri uygulama içi açıklama ile eşleşiyor
- Gizlilik politikası konum kullanımını yansıtıyor
- Sorun giderme ve “Neden buna ihtiyaç var?” soruları için destek yolu olarak /help/location-permissions gibi bir destek sayfası yolu ekleyin
- Ekran görüntüleri ve metinler, geofencing kullanıyorsanız sürekli takip izlenimi vermesin
Başarıyı Ölçme ve Bir Sonraki Sürümü Planlama
Konuma duyarlı uyarılar MVP’sini yayınlamak işin yarısıdır. Diğer yarısı gerçek kişiler için işe yaradığını kanıtlamak ve sonra ne yapılacağına kanıta dayanarak karar vermektir—tahmine değil.
Erken eklenmesi gereken analitik (karanlıkta uçmayın)
İlk günden aşağıdaki olayları takip edin:
- Uyarı oluşturuldu (ham koordinatlar değil, “yarıçap kovası” veya “tetik türü” gibi temel meta veriler)
- İzin verildi / reddedildi (kullanıcı daha sonra değiştirirse onu da takip edin)
- Tetikleme gerçekleşti (sistem kullanıcının girdiğini/çıkış yaptığını düşündüğünde)
Bu üçü, kullanıcıların uyarı kurup kurmadığını, uygulamanın konumu algılayıp algılayamadığını ve temel özelliğin gerçekten çalışıp çalışmadığını gösterir.
Backend kullanıyorsanız analitik gizlilik odaklı olsun: mümkün olduğunca toplulaştırın, ham koordinatlardan kaçının ve kaydedilenleri belgelerle açıklayın.
Miktar yerine kaliteyi ölçün
Yüksek tetikleme sayıları yine kötü bir deneyim anlamına gelebilir. Kalite sinyalleri ekleyin:
- Yanlış tetiklemeler: kullanıcı “bu doğru değildi” dediğinde (basit bir başparmak aşağı ekleyin)
- Kaçırılan tetiklemeler: kullanıcı beklediği ama görmediği hatırlatmaları raporlasın
- Bildirim etkileşimleri: açmalar, kapatmalar ve “görmezden gelinme” süreleri
MVP için pratik hedef, yanlış ve kaçırılan tetiklemeleri hafta hafta azaltmaktır.
Çaba ve maliyet gerçeği
İlk yapımın ötesinde sürekli çalışma planlayın:
- MVP kapsamı: 2–4 ana ekran, temel kurallar, bildirim teslimi
- Tasarım: netlik ciladan daha önemlidir; onboarding metinleri ve izin eğitimi için bütçe ayırın
- QA: şehirlerde, binalarda ve günlük ulaşım desenlerinde gerçek cihaz testleri
- Bakım: OS güncellemeleri, izin davranışı değişiklikleri, kenar durumu düzeltmeleri
Daha hızlı yayın hedefliyorsanız, boilerplate ve yinelemeyi azaltan araçları düşünün. Örneğin Koder.ai, snapshot ve geri alma ile birlikte kaynak kodu dışa aktarma desteği sağlayarak çok sayıda OS ve cihaz kombinasyonunu test ederken yardımcı olabilir.
Sonraki yineleme fikirleri (MVP değerini kanıtladığında)
Yeniden kullanım oranını artıracak özelliklere öncelik verin:
- Paylaşılan uyarılar (aile veya ekip)
- Şablonlar (“Spor salonuna varınca…”)
- Takvim entegrasyonu (sadece belirli günlerde hatırlat)
- Kestirmeler hızlı oluşturma ve erteleme için widget’lar
SSS
What is a location-aware prompt?
Location-aware prompt (konuma duyarlı uyarı), kullanıcının bulunduğu yere göre tetiklenen bir hatırlatmadır; yani zamana değil konuma bağlıdır.
Genellikle şunları içerir:
- Kaydedilmiş bir yer (etiket + koordinatlar + yarıçap)
- Bir tetikleyici (giriş/çıkış/dwell)
- Bildirim veya uygulama içi arayüzle iletilen kısa bir mesaj veya kontrol listesi
What’s the simplest MVP feature set for a location-aware prompts app?
Güçlü bir MVP güvenilirlik ve açıklık üzerine kuruludur:
- Tetikleyiciler: başlangıç için Enter (isteğe bağlı olarak zaman aralığı ile)
- Teslimat: yerel bildirimler + uygulama içi kart/geçmiş
- Koruyucular: yarıçap sınırları, soğuma süreleri ve kaydedilen konum sayısında üst sınır
Bu, kurulumu basit tutar ve “bildirim kaosu”nu önler.
Which trigger types should I support first: enter, exit, or dwell?
Önce Enter + zaman aralıkları ile başlayın.
- Enter çoğu gerçek hatırlatmayı kapsar (“varınca…”) ve kolay anlatılır.
- Zaman aralıkları istenmeyen/rahatsız edici tetiklemeleri azaltır (ör. sadece hafta içi).
Güvenilirlik ve kullanıcı deneyimini doğruladıktan sonra Exit veya Dwell ekleyin.
How do I choose a geofence radius and prevent repeated triggers?
Doğruluk ve güvenilirlik arasında denge kuran varsayılanlar kullanın:
- Yarıçap: ~150–300 m (daha küçük kararsız olabilir; daha büyük ise belirsiz gelebilir)
- Soğuma/debounce: konum başına 10–30 dakika
- Günlük üst sınır (isteğe bağlı): kural başına 3–10 tetikleme, kullanım durumuna bağlı
Ayrıca mantıksız yarıçaplara (örn. 10 m veya 50 km) izin vermeyin.
How should I handle location permissions without confusing users?
Sistem izin penceresini göstermeden önce faydayı kısaca açıklayın.
Pratik akış:
- Kısa bir ekran gösterin: ne yapacağınızı, ne zaman konuma erişileceğini ve neyi saklamayacağınızı belirtin.
- Önce ön plan (foreground) izni isteyin.
- Arka plan/Her Zaman iznini yalnızca kullanıcı en az bir konum hatırlatıcısı oluşturduktan sonra ve neden gerektiğini açıklayarak isteyin.
Reddedilirse, zaman tabanlı hatırlatmalar veya uygulama açıkken çalıştırma gibi yedekler sunun.
What should my app do if the user enables approximate (not precise) location?
Deneyimi bozmadan adapte olun:
- İzin yaklaşıksa, yarıçapı büyütün (daha geniş tampon)
- Nazikçe uyarın: “Daha hassas hatırlatmalar için Precise Location/için kesin konumu etkinleştirin.”
- Yanlış tetiklemeleri önlemek için tetikleme ve sınırlamaları muhafazakar tutun
Uygulamanın daha az hassas ama yine de işlevsel olmasını sağlayın.
Geofencing vs GPS tracking: which should I use for location triggers?
Basit varış/ayrılış hatırlatmaları için OS tarafından yönetilen geofencing/region monitoring tercih edin.
- Geofence: düşük güç kullanır; OS gerektiğinde uygulamanızı uyandırır
- Significant location change: kural yenileme gibi “yaklaşık nerede” senaryoları için iyi bir orta yol
- Sürekli GPS takibi: hatırlatmalar için genellikle aşırı; daha fazla pil ve gizlilik yükü
Önce geofencelere geçin, ekstra güvenilirlik gerekiyorsa significant-change güncellemelerini ekleyin.
Do I need a backend, or can everything run locally?
Başlangıçta çevrimdışı-öncelikli olun:
- Hatırlatmaları ağ olmadan bile tetiklemek için yerel olarak saklayın.
- Gerçekten ihtiyaç olduğunda (çoklu cihaz senkronu, paylaşılan listeler) backend ekleyin.
Senkron eklerseniz, değişiklikleri bir “outbox” tablosuna kuyruğa alın ve basit bir çakışma politikası (ör. son yazan kazanır) kullanın; silinmeler için tombstone yaklaşımı düşünün.
How do I design notifications so they’re helpful instead of annoying?
Bildirimleri eyleme geçirilebilir ve öngörülebilir yapın:
- Eylemler: Mark done, Snooze, Uygulamayı ilgili hatırlatmaya aç
- Kısıtlamalar: soğuma süreleri, sessiz saatler ve “X kez göz ardı edilirse dur” kuralları
- Uygulama içi görünüm: ne tetiklendiğini ve nedenini sakin bir geçmiş/kart görünümünde gösterin
Bu, kullanıcı yorgunluğunu azaltır ve hatırlatmalara güveni artırır.
How do I test and debug location triggers reliably across devices?
Gerçek dünya koşullarında test edin:
- Aynı geofence’e farklı yönlerden yaklaşma, girip çıkma testleri yapın
- Hızlı hareket (araç) testleri: küçük sınırlar atlanabilir veya gecikmeler olabilir
- Zayıf GPS koşulları: kapalı otopark, yoğun binalar, pencereden uzakta iç mekanlar
- Düşük güç modu testleri: arka plan güncellemeleri gecikebilir
Ayrıca simülatör ve mock lokasyonlarla tekrarlanabilir testler oluşturun (teleport, sınırda gezinme).