UserDefaults

UserDefaults ile uygulamalarınız için küçük boyutta verileri tutabilen bir veri tabanı oluşturmayı öğrenin.

Ege Sucu
TurkishKit
3 min readDec 28, 2018

--

Merhaba TurkishKit okuyucuları, yepyeni bir seri ile karşınızdayız!

Uygulamalarınıza ufak bir database(veri tabanı) ekleyemeye ne dersiniz? Bu şekilde kullanıcınızdan aldığınız bilgileri iOS cihazların kendi hafızasına kaydedebilir böylece uygulamanız kapatılıp yeniden açılsa bile kaydetmiş olduğunuz verileri kullanmaya devam edebilirsiniz!

Bir iOS uygulamasında küçük verileri kaydetmek için UserDefaults kullanıyoruz. O zaman hemen keşfetmeye başlayalım!

Neden UserDefaults?

Bazı durumlarda uygulamamızda ayar, kullanıcı tercihleri veya giriş yapmış olan kullanıcının bilgisi gibi az küçük veriler kaydetmemiz gerekiyor. Bu tür durumlarda daha kompleks fakat bir o kadar da geniş kullanım alanları sunan CoreData veya Realm gibi komplike database yapılarını tercih etmiyoruz.

CoreData ve Realm bu serimizin ilerleyen konularıdır.

Küçük Veri Örnekleri;

  • Uygulamanızda video içerikleri gösteriyorsunuz ve kullanıcınız videoların oynatım hızını ayarlıyor. Kullanıcı tarafından ayarlanan oynatım hızını UserDefaults kullanarak kaydetmelisiniz. Böylece uygulamayı tekrar açan kullanıcı, önceden kaydettiği oynatım hızında videolarını izlemeye devam edebilir.
  • Kullanıcı uygulamanıza giriş yaptı. Bu aşamada kullanıcının bilgilerini UserDefaults’a kaydedersiniz. Böylece uygulamanızı yeniden açan bir kullanıcı, giriş yapmadan devam edebilir.
  • Twitter uygulamasının Night Mode(Gece Modu)ve Day Mode(Gündüz Modu) isimli iki farklı arayüz teması var. Kullanıcının tercihi yine userDefaults ile kaydedilir.
TurkishKit — Twitter Night & Day Modları

Hangi Tür Verileri Kaydedebiliriz?

UserDefaults ile Data olarak ifade edilebilecek (dünya üzerindeki her şey :)) tüm verileri saklayabiliriz. Bazı temel veri yapıları aşağıdaki gibi;

  • Bool
  • Dictionary
  • Int
  • String
  • Data
  • Array

Veri Kaydetme

UserDefaults’a veri kaydetmek, yazılım dünyasında anlaşılması ve uygulaması en kolay konu olabilir 😀 İşte veri kaydetmek için kullancağımız fonksiyon;

UserDefaults.standard.set(value: Any?, forKey: String) 

UserDefaults’un set fonksiyonu, farklı veri türleri için tanımlanmıştır. Bu fonksiyonu yazmaya başladığınıza karşınıza aşağıdaki gibi fonksiyonlar çıkacaktır. Tüm veri yapıları için ortak olan fonksiyon ise yukarıda yazandır.

Fonksiyon Parametreleri

Bu fonksiyonda iki parametremiz var. Bunlar; value ve key

Value: Kaydetmek istediğiniz veri. (Örneğin: Int, String, Double.)

Key: Verilerinizi kaydetmek ve çağırmak için kullanacağınız anahtar.

Önemli Not: Saklayacağınız her veriye farklı bir key vermelisiniz. Aksi takdirde yeni veri, aynı key’e sahip eski verinizin üzerine yazılır.

Veri Kaydetme Örnekleri

Farklı veri türlerini aşağıda olduğu gibi kolaylıkla kaydedebilirsiniz.

TurkishKit — UserDefaults Veri Kaydetme Örnekleri

Veri Okuma

UserDefaults’a kaydedilen bir verinin okunması, yazılım dünyasında anlaşılması ve uygulaması en kolay ikinci konu😀

İşte önceden kaydettiğimiz bir veriyi okumak için kullancağımız fonksiyon;

UserDefaults.standard.value(forKey: String)

Fonksiyon Parametreleri

Bu fonksiyonda yalnızca bir adet parametremiz var; key Verinizi kaydederken kullandığınız key değeridir.

Örneğin daha önce username key’ine sahip bir veriyi UserDefaults’a kaydettiyseniz, bu veriye ulaşmak için kullanacağınız key username’dir.

Veri Okuma Örnekleri

Önceden kaydettiğiniz verilerinizi aşağıda olduğu gibi okuyabilirsiniz.

TurkishKit — UserDefaults Veri OkumaÖrnekleri

Deneyim Zamanı!

Konuyu daha iyi anlayabilmeniz adına bir tema değiştirme projemiz var. Buradan indirebilir, UserDefaults’un gerçek hayatta nasıl kullanıldığını deneyimleyebilirsiniz.

Bu yazımız ile UserDefaults’un ne olduğunu, nasıl, ne zaman ve hangi durumlarda kullanılması gerektiğini öğrenmiş olduk.

Swift ile Veri Kaydetme serimizin bir sonraki yazısında görüşmek üzere, yaratıcı kodlamalar! 🤓

Swift Öğrenin. Uygulama Geliştirin. Sınırların Ötesine Geçin.

Hem kod yazmaya yeni başlayanların hem de profesyonellerin rahatlıkla takip edebilecekleri 40 saatlik videolu eğitim ile Swift programlama dilini derinlemesine keşfedin. Eğitim boyunca karşılaşacağınız problemleri birebir online görüşmelerde çözün.

--

--