Rehbere Telefon Numarası Kaydetmek

iOS uygulamanızdan rehbere telefon numara kaydetmek nasıl oluyor öğrenelim🤙

Uygulama içinde görüntülenen telefon numarasını kullanarak rehbere kaydetmek, aramak, e-mail atmak, sms göndermek gibi işlemleri yapabilme imkanımız var. Peki bunu nasıl yapıyoruz?

Bunu yapabilmek için Apple ın built-in iki tane kütüphanesinden yararlanacağız:

iOS-8-Contacts-icon-full-size

  • Contacts
  • ContactsUI

 

Bu kütüphaneler sayesinde cihazın rehberiyle alakalı operasyonlar gerçekleştirebileceğiz.

 

Uzatmadan başlıyoruz… 🔨

 

Rehbere Telefon Numarası Kaydetmek: Örnek Uygulama

Şimdi örnek bir proje oluşturalım, 3 tane label yaratalım ve bunu auto-layout ile isteğe göre konumlandıralım.

Label ların hepsini StackView içine alıp 10 birim boşluk verirseniz daha rahat edersiniz.

Auto-layout ve constraint le ile alakalı kapsamlı bir yazı daha sonra paylaşacağım.

Storyboard dosyamız şöyle gözükmelidir:

Screen Shot 2018-09-12 at 11.27.17 AM.png

Çoğu örnek projede belirgin bir arkaplan rengi veriyor ve uygulama ayarlarından Landscape özelliğini kapatıyorum.

 

Bu label ların altına bir tane de buton koyalım, constraint lerini şekildeki gibi verelim:

Screen Shot 2018-09-12 at 11.31.41 AM.png

Screen Shot 2018-09-12 at 11.30.57 AM.png

Uygulama senaryosunu şöyle düşünelim:

  • Her label kullanıcının bir bilgisini temsil etsin: İsim-Telefon-Eposta
  • Bu bilgiler uygulama içinde bir şekilde gözüküyor olsun. Örneğin bir alışveriş uygulaması yapıyoruz ve ürün satıcısına ulaşmamız gerek.
  • Butona tıkladığımız zaman satıcı bilgilerini cihaza göndermiş olalım

 

Örnek açısından statik veri kullanacağız. Normal şartlarda bu verilerin veritabanından online olarak gelmesi lazım 🙂

 

Veritabanı konusuna başka yazıda girelim, konuyu dağıtmayalım

 

Şimdi statik veriler ile komponentlerimizi dolduralım:

Screen Shot 2018-09-12 at 11.49.36 AM.png

 

Yapmak istediğimiz tamamen anlaşıldı galiba 🙂

ViewControllar ı splitView yapalım ve StoryBoard-ViewController bağlantılarını yapalım.

 

Şimdi yukarda bahsettiğim Contacts ve ContactsUI kütüphanelerini import edelim.

 

Ayrıca sınıfımızı CNContactViewControllerDelegate ile extend edelim.

 

Telefon numarası şekildekine benzer bir şekilde formatlanmışsa önce boşluk, parantez ve çizgi gibi karakterlerden kurtulmamız gerekiyor.
Bunun için ufak bir extension modülü import etmemiz gerekecek.

Extension modüllerini sınıfın bittiği son süslü parantezden sonra yazıyoruz, unutmayalım 🙂

 

Bu extension sayesinde istediğimiz stringdeki numerik değer harici şeyleri silebileceğiz.

Şimdi butona bastığımız zaman kullanıcı bilgisini değişkenlerde tutalım

 

Bu değişkenleri parametre olarak içini dolduracağımız saveContact fonksiyonuna göndereceğiz.

Şimdi “saveContact” isminde bir fonksiyon yaratalım ve içine 3 adet parametre alacağını belirtelim.

 

Rehbere telefon numarası kaydetmek için fonksiyonumuzun içine bişeyler yazalım da boş kalmasın, yalnız hissetmesin. 😁

 

familyName kısmı çok önemli değil ama isterseniz uygulamanızın adını yazdırabilirsiniz, kullanıcı diğer kullanıcıyı neden eklediğini daha rahat hatırlamış olur.

Hatırlarsanız butona bastığımız zaman kullanıcı bilgisini değişkenlere yazdırmıştık.

Şimdi saveContact metodunu butonun aksiyonunda çağıralım ve parametre olarak bu değişkenleri sırasıyla belirtelim.

 

Her şey tamam, şimdi projeyi çalıştırma zamanı 💻

C3ll1Uc0Y0.gif

 

Sonuç

Gördüğünüz gibi istediğimizi yaptık. Yaptıklarımızın üzerinden geçelim:

  • MutableContact tipinde bir instance yarattık ve kullanıcı bilgilerini bunun içine yazdırdık
  • ContactViewController yaratıp kullanıcı bilgilerini bunun içine gönderdik
  • ContactViewController ı present ettik

 

Ama bir şey eksik…

ContactViewController ı present ettik fakat işimiz bittiğinde uygulamaya nasıl döneceğiz?

Bir yerlerde bunu dismiss etmek lazım galiba… 🤔

CNContactViewController ın bir delegate metodu var.

Bu metod sayesinde ContactViewController ile işimiz bittiğinde neler yapmak istediğimizi yazabiliyoruz.

Biz ne istiyoruz? İşi bitince kapansın, uygulamaya geri dönsün.

Ee, dönsün o zaman 🙂

 

Şimdi projeyi tekrar derleyip edip çalıştırırsanız bu sorunu hallettiğimizi göreceksiniz.

Tüm işlem bu kadardı. Artık rehbere telefon numarası kaydetmek olayını anladık sanırım. Unutursanız problem değil, zaten siteyi sık kullananlara eklediğiniz için tek tıkla derse bir daha bakabilirsiniz 😁

 

Projenin kaynak koduna iOS Notları – Github hesabından ulaşabilirsiniz.

 

Sizce bu rehbere telefon numarası kaydetmek daha nasıl geliştirebiliriz? Tartışalım 🙂

İyi kodlamalar 💻

Kimler Neler Demiş?

avatar
  Subscribe  
Bildir