Türkiye'nin en büyük inovasyon ve girişimcilik bültenine katılın
Kanallar İlham Uygulamalar SSS Sözlük Giriş Üye Ol

Mobil Uygulama Geliştirme

/mobiluygulama · 1.YIL

Fikirden App Store ve Google Play'e uzanan yolun tamamı tek kanalda. Swift, Kotlin, Flutter, React Native — platform fark etmez; uygulamanı nasıl yapacağını burada konuşuruz. Mimari kararlar, arayüz desenleri, yayın süreçleri, test ve sürüm yönetimi; ilk satırdan ilk indirmeye kadar ne varsa burada. Takıldığın yeri sor, öğrendiğini paylaş, uygulamanı yapan diğer üreticilerle omuz omuza ilerle.

66 içerik Katıl
#mobil uygulama geliştirme akışına dön
@bananaman · 37 gün önce

Çevrimdışı çalışan uygulama tasarlamak: Ağ kesildiğinde ne olacağını baştan düşünmek

Mobil uygulamanın masaüstünden en temel farkı, bağlantının güvenilmez olması. Metroda, asansörde, kırsalda ve yoğun saatlerde ağ kesiliyor. Buna göre tasarlanmayan uygulamalar kullanıcı gözünde bozuk görünüyor.

En yaygın hata, her ekranı doğrudan sunucudan besleyip ağ yoksa boş ekran veya hata mesajı göstermek. Kullanıcı daha önce gördüğü veriyi tekrar göremiyor ve bu mantıksız geliyor.

Daha sağlam yaklaşım, yerel veritabanını tek doğruluk kaynağı yapmak. Ekran her zaman yerelden okuyor, sunucudan gelen veri yereli güncelliyor. Bağlantı yoksa kullanıcı son bilinen durumu görüyor ve uygulama çalışmaya devam ediyor.

Yazma tarafı daha zor. Kullanıcı çevrimdışıyken bir kayıt oluşturursa, bu işlemin kuyruğa alınıp bağlantı gelince gönderilmesi gerekiyor. Burada dikkat edilecek konular: aynı işlemin iki kez gönderilmemesi, çakışma durumunda hangi sürümün kazanacağı ve kullanıcıya bekleyen işlem olduğunun gösterilmesi.

Çakışma çözümü çoğu uygulamada son yazan kazanır kuralıyla hallediliyor ve çoğu senaryoda yeterli. İşbirliği içeren uygulamalarda ise daha dikkatli bir strateji gerekiyor.

Kullanıcıya durumu göstermek de tasarımın parçası. Bekleyen bir işlem varsa bunu belli etmek, sessizce arka planda tutmaktan daha güven verici.

Bu mimariyi sonradan eklemek çok zor, baştan kurmak gerekiyor.
0 1 yorum
Yorumlar (1)
@erayuzun · 36 gün önce 4
Sonradan eklemenin zor olduğu vurgusu çok doğru. Veri modeliniz sunucu yanıtına göre kurulduysa, yerel önceliğe geçmek neredeyse baştan yazmak demek.

Bir ekleme yapayım: çevrimdışı desteği sunuyorsanız, senkronizasyon durumunu kullanıcıya göstermek şart. Kullanıcı bir şey kaydettiğinde bunun henüz sunucuya gitmediğini bilmezse, telefonunu kaybettiğinde veya uygulamayı sildiğinde verisini kaybediyor ve suç sizde oluyor.

Basit bir ikon bile yeterli. Bekliyor, gönderiliyor, tamamlandı. Kullanıcı bu üç durumu görebiliyorsa güven sorunu kalmıyor.