8 dk

Konuma Dayalı Hatırlatıcılar İçin Mobil Uygulama Nasıl Geliştirilir

Konuma dayalı hatırlatıcılar nasıl oluşturulur: geofencing temelleri, izinler, UX kalıpları, bildirimler, test etme ve gizlilik.

Konuma Dayalı Hatırlatıcılar İçin Mobil Uygulama Nasıl Geliştirilir

Konuma Dayalı Hatırlatıcılar Nedir (ve Neden Kullanıcılar Onları Sever)\n\nKonuma dayalı hatırlatıcılar, birinin gerçek dünyadaki bir yere vardığında veya ayrıldığında uygulamanızın gönderdiği uyarılardır. 3:00 PM’de tetiklemek yerine, hatırlatıcı kullanıcının telefonunun bir konum çevresinde tanımlı bir sınırı—genellikle geofence olarak adlandırılır—aştığını algıladığında tetiklenir.\n\nBu değişim (zaman → yer) insanların onları sevmesinin nedenidir: hatırlatıcı, kullanıcının meşgul olduğu bir zamanda değil, gerçekten faydalı olduğu anda görünür.\n\n### Kullanıcıların hemen anlayacağı örnekler\n\nİyi bir zihinsel model: “Beni orada olduğumda hatırlat.” Yaygın senaryolar şunlardır:\n\n- Bir mağazaya yakın: “Trader Joe’s yakınındayken süt al.”\n- Ofiste: “İşe vardığımda zaman çizelgesini sor.”\n- Evden ayrılırken: “Ayrılırken kombiyi kapat.”\n\nBunlar rutinlere bağlı oldukları için işe yarar. En iyi uygulamalar, kullanıcının zaten ziyaret ettiği yerlere hatırlatıcı eklemeyi sürtünmesiz hale getirir.\n\n### Temel yapı taşları (karmaşık terimler yok)\n\nBu özelliği inşa etmek için birkaç basit parçayı birleştireceksiniz:\n\n- Konum sinyalleri: Telefonun GPS’i, Wi‑Fi ve hücresel veriler kullanıcının nerede olduğunu tahmin etmeye yardımcı olur.\n- Geofencing: “kullanıcı bu noktanın etrafındaki dairenin içine girerse/çıkarsa tetikle” gibi bir kural.\n- Bildirimler: Hatırlatıcıyı gösteren yerel bildirim (veya tasarımınıza bağlı olarak push).\n- Depolama: Hatırlatıcıları, konumlarını ve tetiklenip tetiklenmediğini kaydedecek bir yöntem.\n\n### Bu rehber neleri kapsayacak\n\nBu makale, gerçek iOS ve Android hususlarıyla konuma dayalı hatırlatıcılar geliştirmek için pratik adımlara odaklanır: yaklaşım seçimi, basit bir kurulum akışı tasarlama, izinler ve gizliliği ele alma, geofence güvenilirliğini sağlama ve pil kullanımını düşük tutma.\n\n## Gereksinimler ve Kullanım Senaryoları ile Başlayın\n\nSDK’ları seçmeden veya ekranları çizmeye başlamadan önce, insanların ne yapmaya çalıştığı konusunda net olun. Konuma dayalı hatırlatıcılar gerçek rutinlere uyduğunda “sihirli” hisseder—yanlış zamanda tetiklendiklerinde ise can sıkıcı olur.\n\n### Kullanıcı hedeflerini netleştirin (gerçekte olan senaryolar)\n\nÖnce en önemli senaryolarınızı ve kimlere hizmet ettiğini listeleyin:\n\n- Ev: “Eve vardığımda çöpü çıkar,” “Çamaşırı başlat,” “Hafta sonları bitkileri sulama.”\n- İş: “İşe vardığımda sözleşmeyi sor,” “Kart basma,” “Çıkarken laptopu unutma.”\n- İşler/Koşular: “Market yakınındayken süt al,” “Postaneye yakınken paketi gönder.”\n- Seyahat: “Havaalanında dolaşımı aç,” “Otele vardığımda anahtarları al.”\n- Rutinler: “Spor salonu check-in,” “İlaç alma, eczaneye yakın olduğunda.”\n\nHer senaryo için not alın:\n\n- Gerekli hassasiyet: mağaza önü mü yoksa mahalle mi\n- Aciliyet: kaçırılmaması gereken mi yoksa iyi olur mu\n- Tekrarlama davranışı: bir kere, her zaman mı yoksa “günde sadece bir kere” gibi\n\n### Tetikleyici türlerine karar verin\n\nİlk günden hangi tetikleyicileri destekleyeceğinizi tanımlayın:\n\n- Giriş (Enter): kullanıcı varışta bilgilendirilsin.\n- Çıkış (Exit): kullanıcı ayrıldığında bilgilendir ("unutma..." için harika).\n- Kalma (Dwell, destekleniyorsa): X dakika kaldıktan sonra bilgilendir.\n- Zaman pencereleri: yalnızca izin verilen zamanlarda tetikle (ör. hafta içi 8–18) gürültüyü azaltmak için.\n\n### Hatırlatıcı içeriğini tanımlayın\n\nMinimum içerik başlık + konum + tetiklemedir. Yaygın eklemeler:\n\n- Kontrol listesi öğeleri (hızlı “tamamlandı” dokunuşları)\n- Ekler/bağlantılar (park yeri fotoğrafı, sipariş numarası)\n- Tekrar kuralları (her hafta içi, “günde sadece bir kere”, sonraki atla)\n\n### Başarı metriklerini erken belirleyin\n\nDaha sonra takaslar yapmak için ölçülebilir hedefler seçin:\n\n- Teslimat oranı: beklenen pencerede tetiklenen hatırlatıcıların yüzdesi\n- Erteleme/kapatma oranı: fayda vs. rahatsızlık sinyali\n- Pil etkisi: arka plan kullanımı günlük/oturum başına\n- İzin oranı: konum izni + bildirim izni kabul oranı\n\n## Teknik Yaklaşımınızı Seçin\n\nTeknik seçimleriniz, hatırlatıcıların ne kadar güvenilir hissettireceğini, pil kullanımını ve iOS/Android’de yayınlama zorluğunu belirler.\n\n### Geofencing API’leri vs sürekli takip\n\nÇoğu hatırlatıcı uygulaması için başlangıçta sistem geofencing (region monitoring) ile başlayın, sürekli takip yerine.\n\n- Geofencing API’leri OS’in bir cihaz bir tanımlı alana girdiğinde veya çıktığında uygulamanızı uyandırmasına izin verir. Bu genellikle en iyi varsayılandır: daha düşük pil kullanımı, daha basit gizlilik anlatımı ve daha az arka plan sorunu.\n- Sürekli takip (sık konum güncellemeleri) daha “hassas” hissedebilir, ancak pahalıdır: daha yüksek pil tüketimi, daha fazla izin sürtüşmesi ve OS’in arka planda sizi sınırlama şansı.\n\nPratik bir desen: önce geofencing, kullanıcının aktif olarak etkileşimde olduğu durumlarda (ör. navigasyon sırasında) kısa, hedeflenmiş yüksek hassasiyetli takip patlamaları kullanmak.\n\n### Doğruluk takasları (GPS vs Wi‑Fi vs hücresel)\n\nKonum tek bir sinyal değildir—bir karışımdır.\n\n- GPS: dışarıda en iyi; kilitlenmesi daha yavaş ve iç mekanlarda zayıf.\n- Wi‑Fi konumlandırma: şehirlerde ve iç mekanlarda güçlü; yakın ağlara bağlı.\n- Hücresel kuleler: en düşük doğruluk, ama neredeyse her yerde çalışır.\n\nBu değişkenliği tasarlayın: mantıklı minimum yarıçap değerleri seçin ve sokak düzeyinde doğruluk vaat etmekten kaçının.\n\n### Çevrimdışı ve zayıf sinyal davranışı\n\nKullanıcının bağlantısı sınırlıysa ne olması gerektiğine karar verin:\n\n- Geofencing veri olmadan da tetikleyebilir, ancak konum güncellemeleri gecikebilir veya daha az doğru olabilir.\n- Sinyal zayıf olduğunda tetikleyiciler gecikebilir; kullanıcıya açık olun (ör. “birkaç dakika içinde tetiklenebilir”).\n- Olayları yerel olarak kuyruğa alın ve ağ geri geldiğinde senkronize edin, böylece hatırlatıcılar ve analizler ağ kesintisinde bozulmaz.\n\n### Platform kapsamı: native vs çapraz platform vs hibrit\n\nEkip becerilerine ve arka plan güvenilirliğinin önemine göre seçin:\n\n- Native (Swift/Kotlin): konum/arka plan özelliklerine en iyi erişim ve en hızlı hata ayıklama.\n- Çapraz platform (Flutter/React Native): paylaşılan UI daha hızlı, ancak arka plan/geofence kenar durumları için native modüller gerekebilir.\n- Hibrit/web: genellikle geofencing ve arka plan bildirimleri için en zayıf seçenek.\n\nHatırlatıcılar arka planda güvenilir olmalıysa, OS-özgü davranış üzerinde en fazla kontrole sahip yaklaşımı önceliklendirin.\n\n### Kilitlenmeden hızlı prototipleme\n\nUX ve iş akışlarını doğrulamadan önce native kenar durumlarına ağır yatırım yapmak istemiyorsanız, hatırlatıcı kurulum akışı, depolama modeli ve yönetim panellerini hızlıca prototiplemek için Koder.ai kullanabilirsiniz. Bu, sohbet ile web, sunucu ve mobil uygulamalar oluşturduğunuz bir vibe-coding platformudur—hatırlatıcı oluşturma, plan kuralları, durum görünümleri ve senkronizasyon davranışı gibi şeyleri iterasyonlamak için faydalıdır.\n\nKoder.ai tipik bir üretim yığını (web için React, backend için Go + PostgreSQL, mobil için Flutter) oluşturabilir ve kaynak kodu dışa aktarma, dağıtım/barındırma, özel alan adları ve anlık görüntü/rollback destekler—onboarding veya izin metni varyantlarını test edip güvenle geri almanız gerektiğinde kullanışlıdır.\n\n## UX Tasarımı: Basit Kurulum, Net Kontroller\n\nBir konuma dayalı hatırlatıcı, kurulum akışı kadar iyidir. Kullanıcılar bir hatırlatıcıyı bir dakikadan kısa sürede oluşturamıyorsa—veya bunun “etkin” olduğuna güvenmiyorlarsa—terk ederler. Tahmin edilebilir ve günlük dilde küçük ekran setleri hedefleyin.\n\n### Dahil edilmesi gereken ana ekranlar\n\n1) Hatırlatıcı oluştur\n\nFormu hafif tutun: başlık, isteğe bağlı notlar ve belirgin “Konum ekle” eylemi. Kullanıcıların ekrandan ayrılmadan kaydetmesine izin verin ve seçilen yeri satır içinde gösterin (isim + küçük harita önizlemesi).\n\n2) Konum seç\n\nBir yeri seçmenin birden çok tanıdık yolunu destekleyin:\n\n- Yer ara (otomatik tamamlama ve tanınabilir isimler)\n- Pin bırak (basılı tut, sonra sürükleyip hassaslaştır)\n- Son yerler (hızlı tekrar kullanım için)\n- Kaydedilmiş yerler (Home, Work, Favoriler)\n\n3) Listeyi yönet\n\nListe tek bir soruyu yanıtlamalı: “Hangileri aktif?” Durum etiketleri gösterin: Etkin, Askıda, veya İzin gerekiyor. Hızlı eylemler (duraklat, düzenle, sil) gömülü olmalı ama gizlenmemeli.\n\n4) Ayarlar\n\nAyarları minimal tutun: izin yardımı, bildirim tercihleri, birimler (mil/km) ve kısa bir “pil dostu mod” açıklaması.\n\n### Kullanıcıların anladığı kontroller\n\nHer hatırlatıcı için iki basit seçenek sunun:\n\n- Tetikleyici: “Vardığımda” / “Ayrıldığımda”\n- Yarıçap: “Daha küçük = daha hassas, daha az güvenilir olabilir” ve “Daha büyük = daha esnek” gibi düz bir rehberli kaydırıcı\n\nKullanıcıların tahmin etmesine gerek kalmaması için mantıklı ön ayarlar ekleyin (ör. 100m, 300m, 1km).\n\n### Güvenilirlik UX’i: güven oluşturun\n\nKonum özellikleri öngörülemez hissedebilir, bu yüzden güven verin:\n\n- Hatırlatıcı ayrıntı ekranında Etkin durumu\n- “Son kontrol” zaman damgası (ör. “3 dakika önce kontrol edildi”)\n- Hafif bir Test modu (tetik simülasyonu ve örnek bildirim gönderme)\n\nBir şey işlemi engelliyorsa (izinler kapalı, bildirimler devre dışı), “Ayarları düzelt” gibi tek ve net bir çağrı gösterin, uzun bir metin duvarı değil.\n\n## İzinler ve Gizliliği Baştan Ele Alın\n\nKonum hatırlatıcıları, kullanıcıların hassas verilerine güvendiklerinde çalışır. İzinleri ve gizliliği son dakika kutuları gibi değil, ürün özellikleri gibi ele alın.\n\n### Doğru izin düzeyini seçin (ve açıkça açıklayın)\n\nÇoğu platform iki yaygın konum modu sunar:\n\n- “Uygulama Kullanılırken” (While Using): konuma yalnızca uygulama ekranda iken erişim.\n- “Her Zaman” (Always) (arka plan konumu): uygulama kapalıyken bile konuma erişim—genellikle uygulama kapalıyken bile tetikleme gereken gerçek geofencing hatırlatıcıları için gereklidir.\n\nİhtiyacınız olan minimumu isteyin. İlk sürümünüz “While Using” ile çalışıyorsa, “Always” isteğini yalnızca bu özelliği gerektiren kullanıcılar etkinleştirdiğinde yükseltin.\n\n### OS isteminden önce uygulama içi gerekçe ekranı gösterin\n\nKullanıcıları doğrudan sistem dialoguna göndermeyin. Kısa bir ön-izin ekranı ekleyin ve şunları açıklayın:\n\n- ne istediğiniz (“Arka planda konuma izin ver”)\n- faydası (“Uygulama kapalı olsa bile mağazaya vardığınızda hatırlatıcı tetiklenir”)\n- ne yapmadığınız (“Konumunuzu sürekli takip etmiyoruz veya satmıyoruz” — yalnızca doğruysa)\n\nBu genellikle kabul oranlarını artırır ve karışıklığı azaltır.\n\n### Ayarlarda kontrol verin\n\nBasit geçişler ekleyin:

\n- konuma dayalı hatırlatıcıları etkinleştirme/devre dışı bırakma\n- bildirim kategorilerini yönetme (ör. “Varışlar”, “Ayrılışlar”, “Günlük özetler”)\n\nBir şey devre dışıysa eksik olanı gösterin ve yeniden etkinleştirmek için tek dokunuşlu bir yol sağlayın.\n\n### Gizlilik dostu varsayılanlar ve kolay veri silme\n\nVarsayılan olarak mümkün olan en az veriyi toplayın: kaydedilmiş yerleri ve hatırlatıcı kurallarını saklayın, ham konum geçmişini değil.\n\nAçık bir veri silme seçeneği ekleyin (tek hatırlatıcı, tüm yerler veya tüm hesap verisi) ve neyin silineceğini onaylayın. Gizlilik politikanız varsa, onboarding ve ayarlardan gizlilik sayfanıza bağlantı verin (gizlilik).\n\n## Veri Modelinizi ve Depolamayı Tasarlayın\n\nBir konuma dayalı hatırlatıcı uygulaması yüzeyde “basit” görünür, ancak hatırlatıcıların güvenilir şekilde tetiklenmesi, düzenlenmesi ve destek için ayırt edilebilir olması için net bir veri modeli gerekir.\n\n### Temel varlıklar (açık tutun)\n\nEn azından bu kavramları ayrı modelleyin:\n\n- Hatırlatıcı: başlık, notlar, öncelik, oluşturulma/güncellenme zaman damgaları ve nerede/ne zaman tetikleneceğine dair bağlantı.\n- Yer / Geofence: kaydedilmiş bir konum (lat/lng, yarıçap, “Home” gibi etiket), ve “arama ile oluşturuldu” vs “pin ile bırakıldı” gibi meta. Birden çok hatırlatıcı aynı yere referans verebilir.\n- Program (opsiyonel ama faydalı): “sadece hafta içi”, “9–17 arası” veya “belirli bir tarihten sonra” gibi kurallar. Başlangıçta “her zaman” ile başlasanız bile, ayrı bir program varlığı daha sonra acı verici yeniden düzenlemeleri önler.\n- Durum: etkin/pasif, tamamlandı, ertelemeli, son-tetiklenme-zamanı.\n- Bildirim günlüğü: gönderilen bildirimlerin hafif bir geçmişi (zaman damgası, hatırlatıcı id, neden). Destek ve hata ayıklama için saklayın; budanabilir olsun.\n\n### Depolama tercihleri: önce yerel\n\nÇoğu uygulama için yerel bir veritabanı doğru temeldir:\n\n- iOS: Core Data (veya altında SQLite), isteğe bağlı olarak sonra CloudKit ile entegrasyon.\n- Android: Room (SQLite).\n- Çapraz platform: SQLite, Realm veya OS-özgü yaklaşımlar.\n\nYerel-öncelikli strateji hatırlatıcıların çevrimdışı çalışmasını sağlar ve verilerin cihazdan çıkma zorunluluğunu azaltarak gizlilik riskini düşürür.\n\n### Senkronizasyon yalnızca gerçekten gerekiyorsa\n\nSenkronizasyon karmaşıklık ekler: hesaplar, şifreleme, göç, müşteri desteği ve çakışma çözümü. Başlangıçta çoklu cihaz desteğine ihtiyaç yoksa, önce dışa aktarma/yedekleme (JSON/CSV) veya OS düzeyinde yedeklemeler düşünün.\n\nSenkronizasyon kapsamdaysa çakışmaları baştan planlayın: sabit ID’ler kullanın, updated_at takip edin ve “son yazma kazanır” veya “tamamlandı her zaman kazanır” gibi kurallar tanımlayın. Birden fazla cihazda düzenleme yapan güçlü kullanıcılar için basit bir “çakışmayı göster ve kullanıcıya seçim yaptır” akışı, sessizce tahmin etmekten daha iyi olabilir.\n\n## Geofencing’i Güvenilir Uygulayın\n\nGeofencing, konuma dayalı hatırlatıcıların temel mekanizmasıdır: uygulamanız bir “sanat sınırı” tanımlar ve sistem kullanıcı bölgede girer/çıkarsa sizi bilgilendirir.\n\n### Geofence gerçekte nedir\n\nBir geofence genellikle: \n- Bir merkez noktası (enlem/boylam)

  • Bir yarıçap (ör. 100–500 metre)
  • Bir veya daha fazla olay: giriş, çıkış (bazen kalma) \nOS izlemesini yaptığı için sürekli GPS güncellemeleri almazsınız. Bu pil için iyidir, fakat geofence’lerin sistem limitleri (izlenen bölge sayısı gibi) olduğunu ve kenar durumlarda gecikebileceğini ya da atlanabileceğini unutmayın.\n\n### Platform davranışı: iOS vs Android\n\niOS’ta bölge izleme sistem tarafından yönetilir ve uygulamanız çalışmıyor olsa bile çalışabilir; ancak OS tanımlı sınırlar tarafından kısıtlanır ve hareket ve cihaz durumu bağlı olarak tetikleme gecikebilir.\n\nAndroid’de geofencing genellikle Google Play hizmetleri aracılığıyla uygulanır. Davranış cihaz üreticisine ve güç tasarrufu ayarlarına göre değişir; arka plan kısıtlamaları, önerilen API’leri ve foreground servislerini doğru kullanmazsanız güvenilirliği etkileyebilir.\n\n### Her şeyi kaydedemiyorsanız: dinamik geofence’ler\n\nKullanıcıların çok sayıda hatırlatıcı oluşturmasına izin veriyorsanız, hepsini aynı anda izlemeye çalışmayın. Pratik bir yedek plan dinamik kayıttır:\n\n- Tüm hatırlatıcıları veritabanınızda tutun.\n- Sadece en yakın N geofence’i izleyin (son bilinen konumdan makul bir mesafe içinde).\n- Kullanıcı anlamlı bir şekilde hareket ettiğinde veya belli bir süre sonra izlenen seti yenileyin.\n\nBu yöntem OS sınırları içinde kalırken yine de “tamamlanmış” hissettirir.\n\n### Yanlış tetiklemeleri azaltma\n\nGeofence’ler birden fazla kez veya garip anlarda tetikleyebilir. Aşağıdaki güvenlik önlemlerini ekleyin:\n\n- Debounce: kısa bir pencere içinde tekrarları yoksayma.\n- Hatırlatıcı başına minimum süre aralığı uygulama.\n- Opsiyonel hız kontrolleri (ör. otoyolda hızlı hareket ederken “vardı”yı yoksay).\n\nGeofence olaylarını sadece bir sinyal olarak ele alın, sonra bildirim göndermeden önce hatırlatıcının gerçekten bildirim yapıp yapmayacağını doğrulayın.\n\n## Kullanıcıların Gerçekten İstediği Bildirimleri Gönderin\n\nBir konum tetikleyicisi işin yarısıdır—diğer yarısı ise zamanında, yardımcı ve kolay işlem yapılabilir bir hatırlatıcı sunmaktır. Bildirimler gürültülü veya kafa karıştırıcıysa, kullanıcılar bunları devre dışı bırakır (veya uygulamayı siler).\n\n### Yerel mi push mı: doğru aracı seçin\n\nÇoğu konuma dayalı hatırlatıcı için yerel bildirimler en iyi varsayılandır: cihaz geofence olayını algılar ve sunucunuza ihtiyaç duymadan hatırlatıcıyı gösterir. Bu, zayıf bağlantıda bile tetiklemeleri hızlı ve daha güvenilir tutar.\n\nSunucu katılımı gerçekten gerektiğinde push bildirimleri kullanın—ör. paylaşılan listeler, ekip atamaları veya cihazlar arası senkronizasyon. Yaygın bir desen: geofence yerelde tetikler, tamamlanma/erteleme durumu arka planda senkronize edilir.\n\n### Bildirimi eyleme geçirilebilir yapın\n\nKullanıcıları temel işlemler için uygulamayı açmaya zorlamayın. Gerçek hayatta insanların nasıl davrandığına uygun hızlı kontroller sağlayın: \n- Tamamlandı olarak işaretle\n- Ertele (ör. 10 dakika / 1 saat)\n- Detayları aç (notu, listeyi veya kontrol listesini gösterir)\n\nBaşlığı kısa tutun (“Süt al”), iç metni ise bağlam için kullanın (“Trader Joe’s yakınındasınız”).\n\n### Sessiz saatlere ve zaman pencerelerine saygı gösterin\n\nHatırlatıcıya sessiz saatler ve opsiyonel zaman pencereleri ekleyin (“sadece 08:00–20:00 arası bildir”). Kullanıcı pencerenin dışında geldiğinde bildirimi pencere açılana kadar geciktirebilir veya sessiz bir rozet güncellemesi gösterebilirsiniz—her iki seçenek de rahatsızlığı azaltır.\n\n### Yeniden başlatma ve güncellemeleri atlat (mümkünse)\n\nKullanıcılar telefon yeniden başlatıldığında veya uygulama güncellendiğinde hatırlatıcıların çalışmasını bekler. Geofence’leri/hatırlatıcıları depolayın ve uygulama başlatıldığında yeniden kaydedin.\n\nAndroid’te izin verilen durumlarda yeniden başlatmada geri yüklemeyi düşünün. iOS’ta ise sistemin bölge izlemesini yönetmesini ve uygulama çalıştığında mümkün olduğunca yeniden kaydetmeyi planlayın.\n\n## Pil Dostu ve Arka Planda Kararlı Yapın\n\nKonuma dayalı hatırlatıcılar, sessizce çalıştıklarında “sihirli” hisseder. Zorluk şu ki arka plan işleri sıkı kısıtlamalara tabi: pil sınırlı, ve iOS/Android uygulamaların sürekli çalışmasını veya sık konum sorgulamasını engeller.\n\n### Neden arka plan konumu kısıtlıdır\n\nModern mobil işletim sistemleri sürekli GPS ve sık arka plan uyandırmalarını yüksek maliyetli olarak değerlendirir. Uygulamanız bunları aşırı kullanırsa, kullanıcı pil düşüşü görür, OS arka plan yürütmeyi kısıtlayabilir ve güvenilirlik daha da kötüleşir.\n\n### OS önerilen API’lerini kullanın (sürekli GPS değil)\n\nPlatformun sunduğu geofencing ve region monitoring API’lerini tercih edin. Bu yöntemler birden çok sinyali (GPS, Wi‑Fi, hücresel) kullanacak ve yalnızca gerektiğinde uygulamanızı uyandıracaktır.\n\nÇoğu hatırlatıcı için sürekli GPS nadiren gereklidir. Sadece çekirdek iş akışınız kesinlikle gerektiriyorsa kullanın.\n\n### Pili azaltmak için pratik yollar\n\nKüçük tercihler büyük fark yaratır: \n- Mümkün olduğunda daha büyük bir yarıçap kullanın (ör. 150–300m yerine 50m)\n- Aktif geofence sayısını sınırlayın (ve platform sınırlarının altında kalın)\n- Geofence’leri yalnızca düzenlemeler, program değişiklikleri veya anlamlı hareket olduğunda yenileyin\n- Bağlama uyum sağlayın: kullanıcı durgun ise gereksiz yeniden kayıttan kaçının; hızlı hareket ediyorsa daha basit sınırlar tercih edin\n\n### Şeffaf olun: “Pil etkisi” notu ekleyin\n\nAyarlar veya Yardım’da kısa bir “Pil etkisi” bölümü ekleyin: \n- hangi izin düzeyinin kullanıldığı (ör. “While Using” vs “Always”)\n- geofence’lerin arka planda nasıl çalıştığı\n- kullanıcıların uygulayabileceği pratik ipuçları (az yer, daha büyük yarıçap, kullanılmayan hatırlatıcıları devre dışı bırakma)\n\nBu güven oluşturur ve destek taleplerini azaltır. İzin metni rehberliği için gizlilik sayfanıza (gizlilik) referans verin.\n\n## Gerçek Dünyada Test Edin (Sadece Emülatör Değil)\n\nGeofencing ve arka plan konum özellikleri demoda mükemmel görünüp gerçek hayatta sessizce başarısız olabilir. Fark işletim sistemi önlemlerinden gelir: iOS ve Android arka plan işleri, izinleri, bağlantıyı ve pili agresifçe yönetir. Testi ürün özelliği olarak düşünün, son bir iş değil.\n\n### Pratik bir test matrisi oluşturun\n\nŞunları karışık şekilde test edin: \n- Cihazlar (eski + yeni donanım, farklı çip/GPS kalitesi)\n- Desteklediğiniz OS sürümleri\n- İzin durumları: Always, While Using, Denied, ve Android’de “Ask Next Time”\n- Uygulama durumları: ön plan, arka plan, kapalı/force-quit\n\nEn az bir “temiz kurulum” yolunu dahil ederek onboarding ve izin istemlerinin sıfırdan çalıştığını doğrulayın.\n\n### Konumları simüle edin—sonra ayakla ve araçla doğrulayın\n\nEmülatörler hızlı iterasyon için harikadır: \n- iOS Simulator: GPX rotaları / simüle edilmiş konum\n- Android Emulator: Extended Controls → Location (tek noktalar + rotalar)\n\nAma gerçek dünya koşularında da test edin. İki fence’li basit bir rota yürüyün (giriş + çıkış) ve sonra arabayla tekrarlayın. Sürüş, yürümeye göre zamanlama sorunlarını (kaçırılan sınırlar, gecikmiş callback’ler) açığa çıkarır.\n\n### Hatırlatıcıları bozan kenar durumlar\n\nAşağıdaki durumlar için açık testler planlayın: \n- Uçak modu / zayıf alım (bağlantı geri geldiğinde tetikleme daha sonra olur mu?)\n- Düşük Güç Modu / Pil Tasarruf\n- Cihaz yeniden başlatması (geofence’ler yeniden kaydediliyor mu?)\n- Uygulama force-quit ve yeniden başlatma (özellikle iOS’ta)\n\n### Fazladan kullanıcı verisi toplamadan yerel teşhis ekleyin\n\nBir hatırlatıcı tetiklenmediğinde kanıta ihtiyacınız vardır. Küçük bir olay setini yerel olarak kaydedin (varsayılan olarak sunucunuza göndermeyin): izin değişiklikleri, geofence kayıt/kaldırma, son bilinen konum zaman damgası, tetik alındı, bildirim planlandı/gönderildi.\n\nDestek için bir “Debug Log Dışa Aktar” düğmesi sunun; bu, gizliliği korurken kaçırılan tetiklemeleri teşhis etmeye yardımcı olur.\n\n## Yayın Kontrol Listesi: Onboarding, Destek ve Mağaza Hazırlığı\n\nTek bir ayar yanlışsa uygulama “bozuk” görünebilir. Güçlü bir lansman planı çoğunlukla beklentileri yönetmek, izinleri yönlendirmek ve kullanıcılara hızlı bir düzeltme yolu vermekle ilgilidir.\n\n### Jargondan kaçınan tetiklemeyi açıklayan onboarding\n\nOnboarding kısa tutun ama hatırlatıcıların ne zaman tetikleneceğini açıkça söyleyin: \n- Bir hatırlatıcı cihaz bir alana girince (veya çıkınca) tetiklenir—uygulama açık olduğunda değil.\n- OS kuralları, düşük güç modu veya kapalı konum erişimi bildirimleri geciktirebilir.\n- Güvenilir geofencing için kullanıcıların genellikle Always / Allow all the time konum izni vermesi gerekir.\n\nKullanıcıların uygulamaya güvenmesinin sağlanması için basit bir “test hatırlatıcısı” adımı ekleyin.\n\n### Destek taleplerini önleyen uygulama içi yardım\n\nAyarlar içinde hafif bir Yardım sayfası oluşturun (ve onboarding’den buna bağlantı verin). Sık problemler için taranabilir kısa yönergeler ekleyin:\n\nKaçırılan uyarı?\n\n- Hatırlatıcının etkin olduğundan ve yarıçapın çok küçük olmadığından emin olun.\n- Bildirim izinlerinin açık olduğunu doğrulayın.\n- Konum izninin doğru ayarlandığını kontrol edin (özellikle “Always”).\n\nBir kere çalışıp sonra duruyor mu?\n\n- Pil optimizasyonu/arka plan kısıtlamalarını gözden geçirin (Android’de yaygın).\n- Gerekirse uygulama için pil tasarrufunu devre dışı bırakmasını isteyin.\n\nKonum hatalı görünüyor mu?\n\n- “Kesin konum”u açmayı önerin (iOS) / yüksek doğruluk modu (Android) uygun olduğunda.\n\nÜcretli planlarınız varsa kısa bir “Destekle iletişime geç” kısmı ve (varsa) fiyatlandırma sayfanıza referans verin (fiyatlandırma).\n\n### Mağaza açıklaması için hazırlık: netlik abartı yener\n\nMağaza sayfanız yüklemeden önce kafa karışıklığını azaltmalı:\n\n- Özellik maddeleri: “Vardığımda hatırlat”, “Arka planda çalışır”, “Özel yarıçap”, “Ertele” vb.\n- Gizlilik özeti: hangi konumu topladığınız, verinin cihazda mı saklandığı ve arka plan konumunun ne zaman kullanıldığı\n- Ekran görüntüleri: hatırlatıcı kurulum akışını, izin istemlerini ve örnek bildirimi gösterin.\n\nGerçek davranışınızla eşleşen bir metin yazın. Hatırlatıcıların bazen gecikebileceğini biliyorsanız “anında” vaat etmeyin—yerine doğru kurulum rehberliğiyle güvenilir hatırlatıcılar vaat edin.\n\n## Güvenli İterasyon: Özellikler, Erişilebilirlik ve Analitik\n\nv1’i yayınlamak sadece başlangıçtır. Konuma dayalı hatırlatıcılar için küçük değişiklikler pil, güvenilirlik ve güven üzerinde büyük etki yapabilir—bu yüzden kolay test edilebilen ve geri alınabilen iterasyonlar planlayın.\n\n### Geofencing’i bozmayacak özellik geliştirmeleri\n\nÇekirdek geofencing mantığını mümkün olduğunca değiştirmeden katmanlar halinde yetenekler ekleyin: \n- Tekrarlayan hatırlatıcılar (ör. “Hafta içi her vardığımda”) aynı yer/yarıçap modelinin üzerine inşa edilebilir.\n- Paylaşılan listeler (aile veya ekip) için sahiplik kuralları ve çakışma yönetimi.\n- Şablonlar (“Market”, “Postane”) hızlı kurulum sağlar.\n- Akıllı öneriler yerel-öncelikli olduğunda (ör. sık kullanılan yerler için öneri) ve kolayca devre dışı bırakılabilir olmalıdır.\n\nArka plan konum davranışını değiştirirken özellik bayrağı arkasında yayınlayın ve geniş kullanıma almadan önce çökme oranlarını ve bildirim teslimatını izleyin.\n\n### Erişilebilirlik: herkes için tasarlayın\n\nKonuma dayalı hatırlatıcılar tek elle, tek duyuyla veya tek dokunuşla kullanılabilir olmalı:\n\n- Büyük metin desteği ekleyin; ana kontroller (yarıçap, yer isimleri) kesilmesin.\n- Hatırlatıcı metni ve yer araması için ses girişi sağlayın.\n- Ekran okuyucu etiketlerinin akışı anlaşılır kıldığından emin olun (“Vardığımda bildirim gönder”, “Yarıçap: 200 metre”).\n\n### Uluslararası ve çevrimdışı hususlar\n\nDünya genelinde adresler farklı biçimlerde girilir. Farklı adres formatlarını kabul edin ve yarıçap için birimler seçeneği sunun (metre/fit). Çevrimdışı harita stratejisi için, son yerleri önbelleğe alın ve harita karoları yokken bile kaydedilmiş yerleri seçmeye izin verin.\n\n### Gizliliğe saygılı analitik\n\nİyileştirmeye yardımcı olacak ölçümler alın ama insanları takip etmeyin. Analitiği isteğe bağlı yapın, agregat metrikler (hatırlatıcı oluşturuldu, geofence tetiklendi, bildirim açıldı) saklayın ve minimum tanımlayıcı kullanın. Kesin koordinatları kaydetmekten kaçının; mesafeyi ve zamanı kümele.\n\nKısa bir “Nasıl ölçüyoruz” notu gizlilik bölümünüzde güven oluşturur ve daha iyi mobil kararlar vermenize yardımcı olur.

SSS

Konuma dayalı hatırlatıcı nedir?

Konuma dayalı hatırlatıcılar cihaz bir yerin etrafındaki tanımlı bir alana (bir geofence) girip çıktığında tetiklenir — örneğin bir mağaza, ev veya ofis gibi.

Bu hatırlatıcılar, kullanıcı için gerçekten faydalı olduğu anda görünür; rastgele bir saatte değil.

Konuma dayalı hatırlatıcılar geliştirmeden önce hangi gereksinimleri tanımlamalıyım?

Önce hizmet edeceğiniz gerçek rutinleri (ev, iş, işler, seyahat) ve her birinin ne kadar hassas olması gerektiğini yazın.

Her kullanım durumu için karar verin:

  • Hassasiyet: mağaza önü mü yoksa mahalle mi
  • Aciliyet: birkaç dakika gecikebilir mi?
  • Sıklık: tek seferlik mi yoksa tekrarlı mı
  • Tetikleyici: girme, çıkma, (opsiyonel) kalma ve zaman pencereleri
Geofencing API’leri mi yoksa sürekli konum takibi mi kullanmalıyım?

Çoğu hatırlatıcı uygulaması için sistem geofencing/region monitoring tercih edin.

  • Artıları: daha düşük pil kullanımı, daha basit gizlilik açıklaması, arka planda daha öngörülebilir davranış
  • Eksileri: OS sınırlamaları (izlenen bölge sayısı), olası gecikmeler, daha deterministik olmayan zamanlama

Sadece özel durumlarda kısa süreli sürekli takip (ör. aktif navigasyon) kullanın; varsayılanınız olmasın.

İlk sürüm hangi tetikleyici türlerini desteklemeli?

Pratik bir v1 genellikle şunları destekler:

  • Giriş (Enter): “Vardığımda hatırlat”
  • Çıkış (Exit): “Ayrıldığımda hatırlat” ("unutma" senaryoları için çok kullanışlı)
  • Opsiyonel: zaman pencereleri (ör. yalnızca hafta içi, 08:00–18:00) gürültüyü azaltmak için

Platform desteği ve UX değeri netleştiğinde dwell (belirli süre kalındığında) ekleyin.

Güvenilir konum hatırlatıcıları için hangi veri modeline ihtiyacım var?

Basit ve sağlam bir model için ayrı tutun:

  • Hatırlatıcı (Reminder): başlık/notlar + yere/ tetikleyici tipine bağlantı
  • Yer/Geofence: lat/lng, yarıçap, etiket (Home/Work), meta (arama mı pini düşürme mi)
  • Durum: etkin, tamamlandı, ertelemeli, son tetiklenme zamanı
  • Bildirim günlüğü (küçük): hata ayıklama için zaman damgaları + hatırlatıcı id

Bu, hatırlatıcıların düzenlenmesini ve “neden tetiklenmedi?” sorusunun araştırılmasını mümkün kılar.

Hangi konum izinlerini istemeliyim ve ne zaman?

Özelliklerinize uygun en az izin isteyin:

  • While Using (Uygulama Kullanılırken): hatırlatıcılar yalnızca uygulama açıkken çalışıyorsa yeterli
  • Always / Allow all the time: uygulama kapalıyken de tetikleme gerekiyorsa genellikle gerekli

OS isteminden önce kısa bir uygulama içi gerekçe ekranı gösterin: ne istediğinizi, nedenini ve yapmadıklarınızı (doğruysa) açıklayın.

Konuma dayalı hatırlatıcıların güvenilir olduğunu kullanıcıya nasıl hissettiririm?

Kurulumun hızlı ve güven verici olmasını sağlayın:

  • Oluştur ekranı: başlık + “Konum ekle”
  • Konum seçimi: arama, pin bırakma, son/kayıtlı yerler
  • Basit kontroller: Vardığımda/Ayrıldığımda ve ön ayarlı yarıçaplar (100m/300m/1km)
  • Güven sinyalleri: Etkin/Askıya alındı/İzin gerekiyor, “Son kontrol” zaman damgası ve test bildirimi seçeneği

Erişim kapalıysa tek ve net bir “Ayarları düzelt” eylemi gösterin.

Konuma dayalı hatırlatıcılar yerel bildirim mi yoksa push bildirim mi kullanmalı?

Çoğu konuma dayalı hatırlatıcı için varsayılan olarak yerel bildirimler (local notifications) en iyisidir: geofence tetikleyicisi cihazda gerçekleşir ve sunucuya ihtiyaç olmadan hatırlatmayı gösterir.

Sunucu gerektiğinde (paylaşılan listeler, ekip atamaları, çoklu cihaz senkronizasyonu) push kullanın. Yaygın bir model: geofence yerelde tetikler, tamamlanma/erteleme durumu arka planda senkronize edilir.

Konuma dayalı hatırlatıcıları pil dostu hale nasıl getiririm?

Ortak koruyucular:

  • Sürekli GPS yerine OS geofencing kullanın
  • Mümkünse daha geniş yarıçap tercih edin (daha esnek, daha az kontrol)
  • Aktif geofence sayısını sınırlayın ve platform sınırlarının altında kalın
  • İzlenen geofence’leri yalnızca gerekliyken güncelleyin
  • Ayarlar veya Yardım’da kısa bir “Pil etkisi” notu ekleyin ve gizlilik bölümünüzde nasıl ölçtüğünüzü açıklayın
Geofencing hatırlatıcılarını üretim benzeri koşullarda nasıl test etmeliyim ve hata ayıklamalıyım?

Sadece emülatörlerde değil, gerçek dünyada test edin:

  • İzin durumları: Always / While Using / Denied
  • Uygulama durumları: ön planda, arka planda, kapatılmış/force-quit
  • Koşullar: düşük güç modu, pil tasarruf, uçak modu, yeniden başlatma

Küçük yerel teşhis kayıtları (kayıtlı/kaldırılmış geofence, tetik alma, bildirim planlandı/gönderildi) ekleyin ve destek için bir Debug Log Dışa Aktar düğmesi sunun.

Related posts