Beni Hatırla Özelliği Yapmak

 

iOS uygulamanızın login ekranında beni hatırla özelliği yapmak ister misiniz?

Örnek uygulamamızda bir giriş ekranı hazırlayıp kullanıcının giriş yapmasını isteyeceğiz.

Eğer kullanıcı ‘Beni hatırla’ seçeneğini seçer ve bilgilerini doğru girerse giriş bilgilerini UserDefaults yapısı ile saklayıp birdaha oturum açmak istediğinde otomatik olarak getireceğiz.

Önbilgi

Bu işlemi UserDefaults ile yapıyoruz, UserDefaults temelde kullanıcı cihazına kalıcı veri yazmamızı sağlayan bir yapıdır fakat String based olduğu için parola gibi kritik verilerin böyle saklanmasını önermiyorum. Bu ders sadece UserDefaults kullamını örneklemek amaçlıdır.

Hemen başlayalım 🔨

Beni Hatırla Özelliği Yapmak: Örnek Uygulama

Resimdeki gibi iki tane VC yaratın, present modally türünde segue oluşturun ve bir identifier belirleyin.

"<yoastmark

 

Screen Shot 2018-09-04 at 7.22.36 PM.png

Beni Hatırla Özelliği Yapmak: Segue Identifier

Not: Giriş butonundan segue oluşturmayın, ViewController ın kendisinden oluşturmanız gerekiyor.

ViewController ların class ve IBOutlet bağlantılarını yaptığınızı varsayıyorum.

(Yapamadıysanız aşağıda kaynak kodunu zaten paylaşıyorum, oradan bakabilirsiniz.)

 

Şimdi giriş ekranı için kullandığımız ViewController ı açın.

Beni hatırla özelliği yapmak için takip etmemiz gereken adımlar şunlar:

  • Kullanıcı Giriş butonuna bastığında kullanıcı adı ve parolasını al
  • Bilgiler doğruysa ve beni hatırla özelliği aktif ise bilgileri UserDefaults ile kullanıcının telefonuna kaydet.
  • Eğer değilse veya bilgileri yanlışsa bir şey kaydetme.

Olayın koda dönüşmüş halini inceleyelim.

 

 

Kullanıcı eğer bilgilerini doğru girmişse ve switch açıksa bilgilerini UserDefaults a kaydettik ve Anasayfa ya gitmesi için performSegue kullandık.

Segue için verdiğiniz identifier a dikkat edin, birbiriyle uyuşmalı

 

Şimdi uygulama açılmadan önce UserDefaults da belirlediğimiz anahtar kelime var mı diye kontrol edeceğiz.

Eğer varsa bu daha önce başarılı giriş yaptığı anlamına geliyor.

Bu yüzden bu durumda kullancı adı ve parola TextField larına UserDefaults daki verileri yazdıracağız.

Eğer UserDefaults da veri bulunmuyorsa TextField ları boş bırakacağız. Kodu inceleyelim:

 

Not

Şu an beni hatırla özelliğini yaptık. Şimdi şöyle bir senaryo düşünmenizi istiyorum:

Mesala kullanıcıdan kayıt olmasını istiyoruz, kullanıcı başarılı kayıt oldu ve biz bu kullanıcının bilgilerini otomatik olarak login ekranına geri göndermek istiyoruz.

Burada ne kullanırız?

Cevap: Delege & Protokol

Delege & Protokol beraber kullanıldığında geriye dönük veri alışverişi yapabilmemizi sağlar.

Delege ve Protokol Kullanımı dersine bakmanızı tavsiye ediyorum 🙂

Sonuç

Bütün işlem bu kadardı. Beni hatırla özelliği yapmak aslında bu kadar kolay. Şimdi uygulamayı kapatıp yeniden açsanız bile kullanıcı bilgilerinin otomatik olarak geldiğini göreceksiniz.

Kullanıcı credential larını plain-text olarak tutmak güvenli değildir. Bu yöntemi kritik uygulamalarınızda kullanmayın.

 

Örnek projenin kaynak koduna iOS Notları – Github hesabından erişebilirsiniz.

 

 

Sizce bu yöntem nasıl geliştirilebilir? Özellikle key-chain kullanımı hakkında tartışalım istiyorum, buyrun yorum bölümüne 🙂

Kimler Neler Demiş?

avatar
  Subscribe  
Bildir