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- etkinleştirme/devre dışı bırakma\n- 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 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- başlık, notlar, öncelik, oluşturulma/güncellenme zaman damgaları ve nerede/ne zaman tetikleneceğine dair bağlantı.\n- 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- “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- etkin/pasif, tamamlandı, ertelemeli, son-tetiklenme-zamanı.\n- 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- Core Data (veya altında SQLite), isteğe bağlı olarak sonra CloudKit ile entegrasyon.\n- Room (SQLite).\n- 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 (JSON/CSV) veya OS düzeyinde yedeklemeler düşünün.\n\nSenkronizasyon kapsamdaysa çakışmaları baştan planlayın: sabit ID’ler kullanın, 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ı sizi bilgilendirir.\n\n### Geofence gerçekte nedir\n\nBir geofence genellikle:
\n- Bir (enlem/boylam)