DigitalOnboardingSDK kullanıcılarınızın kolayca DB müşterisi olmasını sağlayan bir kütüphanedir.
Bu kütüphaneyi kullanabilmeniz için uygulamanızın minimum iOS 13.0 SDK versiyonunu desteklemesi gerekmektedir.
Kütüphaneyi projenize eklemek için aşağıdaki adımları uygulayabilirsiniz.
- Projenizi seçin, ardından
Package Dependencies
sekmesine geçin ve+
butonuna tıklayın.
- Açılan pencerede arama kutusuna https://github.com/madiguzel/DigitalOnboarding.git yazın
Dependency Rule
seçeneğiniUp to Next Major Version
veyaExact
olarak değiştirin, versiyon/minimum versiyon kutusuna1.0.1
değerini girin veAdd Package
butonuna tıklayın.
- Açılan pencerede uygulamanızın target’ının seçildiğine emin olun ve
Add Package
butonuna tıklayın.
- Paketin projenize eklendiğini teyit edin.
- Sisteminizde Cocoapods kurulu değilse https://cocoapods.org/ linkindeki yönergeleri izleyerek kurulumu tamamlayın.
- Projenizde halihazırda Cocoapods kullanılmıyorsa projenizin root dizininde Terminal’den
pod init
komutunu çalıştırın. - Root dizininde oluşan
Podfile
dosyasını açın.platform :ios,
satırındaki yorumu kaldırın ve iOS versiyonunu13.0
olarak ayarlayın.use_frameworks!
satırının altınapod ‘DigitalOnboardingSDK’
satırını ekleyin. Son durumdaPodfile
dosyası aşağıdaki gibi görünmelidir.
# Uncomment the next line to define a global platform for your project
platform :ios, '13.0'
target 'DigitalOnboardingHostApp' do
# Comment the next line if you don't want to use dynamic frameworks
use_frameworks!
# Pods for DigitalOnboardingHostApp
pod 'DigitalOnboardingSDK'
target 'DigitalOnboardingHostAppTests' do
inherit! :search_paths
# Pods for testing
end
target 'DigitalOnboardingHostAppUITests' do
# Pods for testing
end
end
- Projenizin root dizininde Terminal açarak
pod install --repo-update
komutunu çalıştırın. - Pod’un projenize eklendiğini doğrulayın.
-
Eğer yoksa proje dizininde
Frameworks
adlı bir klasör yaratın. -
DigitalOnboardingSDK.xcframework
dosyasını bu klasöre kopyalayın. -
Uygulamanızın target’ını seçtikten sonra
Build Settings
tabındaFramework Search Paths
bölümüne$(PROJECT_DIR)/Frameworks
satırını ekleyin. -
Build Phases
tabındaLink Binary With Libraries
bölümünde+
ikonuna tıkladıktan sonraAdd Other
menüsü açın veAdd Files…
seçeceğini seçin. -
Açılan Finder penceresinde oluşturduğunuz
Frameworks
dizinine gidin veDigitalOnboardingSDK.xcframework
dosyasını seçin ve Aç’a tıklayın. Kütüphanenin LinkLibrary With Libraries
bölümüne eklendiğinden emin olun. -
General
tabındaFrameworks, Libraries and Embedded Content
kısmındaDigitalOnboardingSDK.xcframework
satırının sağındaDon’t Embed
seçeneğiniEmbed & Sign
olarak değiştirin.
Kütüphaneyi projenize entegre ettikten sonra kütüphanenin düzgün şekilde çalışabilmesi için aşağıdaki konfigürasyonları uygulayın.
-
Signing & Capabilities
tabında+Capability
butonuna dokunun. Açılan penceredeNear Field Communication Tag Reading
i aratıp ekleyin. -
Projenizin
Info.plist
dosyasına aşağıdaki izin açıklamalarını girin.<key>NSCameraUsageDescription</key> <string>Görüntülü görüşme gerçekleştirmek ve çipli kimlik kartınızın arka kısmındaki kodu okuyabilmek için kamera erişim izni vermeniz gerekmektedir.</string> <key>NSLocationAlwaysAndWhenInUseUsageDescription</key> <string>Size en yakın şubeleri görüntüleyebilmemiz için konum erişim izni vermeniz gerekmektedir.</string> <key>NSLocationAlwaysUsageDescription</key> <string>Size en yakın şubeleri görüntüleyebilmemiz için konum erişim izni vermeniz gerekmektedir.</string> <key>NSLocationUsageDescription</key> <string>Size en yakın şubeleri görüntüleyebilmemiz için konum erişim izni vermeniz gerekmektedir.</string> <key>NSLocationWhenInUseUsageDescription</key> <string>Size en yakın şubeleri görüntüleyebilmemiz için konum erişim izni vermeniz gerekmektedir.</string> <key>NSMicrophoneUsageDescription</key> <string>Görüntülü görüşme gerçekleştirmek için mikrofon erişim izni vermeniz gerekmektedir.</string> <key>NFCReaderUsageDescription</key> <string>Çipli TC kimlik kartınızdan bilgilerinizi okumak için gereklidir.</string>
-
Projenizin
Info.plist
dosyasına kimlik kartındaki çipin okunması için gerekli olan aşağıdaki değeri girin.<key>com.apple.developer.nfc.readersession.iso7816.select-identifiers</key> <array> <string>A0000002471001</string> </array>
-
Projenizi build edin.
-
İlk olarak kütüphaneyi import edin.
import DigitalOnboardingSDK
-
Kütüphane digital onboarding sonucunu bir closure ile geri bildirir. Bunun için aşağıdaki gibi bir closure tanımlayın.
let resultCallback: (DigitalOnboardingResult) -> Void = { result in print(result) }
DigitalOnboardingResult
aşağıdaki dört durumdan birini döner:public enum DigitalOnboardingResult { case success // Başvuru başarılı case courier // Başvuru kurye ile devam edecek case error // Başvuru sırasında hata alındı case cancel // SDK başvuru tamamlanmadan kapatıldı }
-
Tanımladığınız closure ile
DigitalOnboardingVC
tanımlayın ve onu sunun.let vc = DigitalOnboardingVC(resultCallback: resultCallback) vc.modalPresentationStyle = .fullScreen present(vc, animated: true, completion: nil)
Kütüphane ön tanımlı bazı ayarlar ile hazır olarak sunulur. Herhangi bir değişiklik yapmadan çalışır. İhtiyaç duymanız halinde aşağıda belirtilen ayarları değiştirmek için bir ayar dosyası ekleyebilirsiniz.
i. Renk Paleti
ii. Karanlık Mod
iii. Font
iv. Kurye akışı
v. Doğrulama Türleri
Ayar dosyası bir Property List
olmalıdır. Projenize bir ayar dosyası eklemek için File -> New -> File…
menüsünü kullanarak yeni dosya ekleme penceresini açın.
Açılan pencerede Property List
i seçin ve Next
butonuna tıklayın.
Dosya adını dilediğiniz şekilde ayarlayıp Create
butonuna basın.
Projenize aşağıdaki gibi boş bir ayar dosyası eklenecektir. (Ayar dosyası içeriğinin nasıl olacağı konu başlıkları altında daha sonra aktarılacaktır.)
Ayar dosyasını kullanmak için yarattığınız DigitalOnboardingVC
yi sunmadan önce aşağıdaki satırı ekleyin.
vc.loadPreferences(named: "Preferences", in: Bundle.main)
Son durumda kodunuz aşağıdaki gibi olmalıdır:
import DigitalOnboardingSDK
let resultCallback: (DigitalOnboardingResult) -> Void = { result in
print(result)
}
let vc = DigitalOnboardingVC(resultCallback: resultCallback)
vc.loadPreferences(named: "Preferences", in: Bundle.main)
vc.modalPresentationStyle = .fullScreen
present(vc, animated: true, completion: nil)
Note
Ayar dosyasına herhangi bir değer eklemeden kütüphaneyi çalıştırdığınızda kütüphane ön tanımlı değerler kullanılarak yüklenecektir.
Renk paletini değiştirmek için ayar dosyasına Dictionary
türünde colorPalette
adında değer eklemeniz gerekir.
colorPalette
sözlüğüne normal modda renk paleti eklemek için Dictionary
türünde lightPalette
adında, koyu modda renk paleti eklemek için Dictionary
türünde darkPalette
adında değer eklemeniz gerekir. Bu değerleri eklemek zorunlu değildir. İhtiyacınıza göre herhangi birini veya ikisini birden ekleyebilirsiniz.
Renkler ayar dosyasına String
türünde hexadecimal formatta eklenir. Desteklenen formatlar aşağıda gösterilmiştir.
Kütüphane içerisindeki renk adı ve kullanıldığı yer eşleşmelerini aşağıda görebilirsiniz.
1. navigationBar | 17. secondaryButtonHighlightedText | 33. textDisabled | 49. linkButton |
2. landingItemTitle | 18. secondaryButtonDisabled | 34. errorText | 50. addressViewBackground |
3. warningGradient | 19. secondaryButtonDisabledText | 35. fieldBorder | 51. addressViewBorder |
4. warningTitle | 20. secondaryButtonBorder | 36. fieldBackground | 52. addressViewBorderSelected |
5. warningBackground | 21. switchActive | 37. fieldDisabledBackground | 53. addressViewText |
6. primary | 22. switchInactive | 38. placeholder | 54. addressViewTextSelected |
7. primaryButton | 23. switchOnTint | 39. errorPlaceholder | 55. addressViewEdit |
8. primaryButtonText | 24. switchThumbTint | 40. zebra1 | 56. infoText |
9. primaryButtonHighlighted | 25. switchOnThumbTint | 41. zebra2 | 57. inputRightView |
10. primaryButtonHighlightedText | 26. switchOnText | 42. progressBar | 58. tableSectionTitle |
11. primaryButtonDisabled | 27. switchOffText | 43. progressTrack | 59. tableSeparator |
12. primaryButtonDisabledText | 28. switchBorder | 44. floatingView | 60. tableSelection |
13. primaryButtonBorder | 29. overlay | 45. secureInputText | 61. idCardFocus |
14. secondaryButton | 30. background | 46. secureInputBorder | |
15. secondaryButtonText | 31. navigationItem | 47. secureInputDefaultIndicator | |
16. secondaryButtonHighlighted | 32. text | 48. secureInputActiveIndicator |
Karanlık modu kullanabilmeniz için ayar dosyasına Boolean
türünde darkMode
adında değer eklemeniz gerekir. darkMode
değeri NO
olarak ayarlandığında cihaz karanlık koda alınsa da normal mod renk paleti kullanılır. darkMode
değeri YES
olarak ayarlandığında cihaz karanlık moda alındığında karanlık mod renk paleti kullanılır.
Warning
darkMode
değeriYES
olarak ayarlandığında ayar dosyasınadarkPalette
değeri de eklenmesi gerekir. Eklenmediği durumda normal mod renk paleti kullanılır.
Fontu değiştirmek için ayar dosyasına Dictionary
türünde font
adında değer eklemeniz gerekir.
font
sözlüğüne aşağıdaki gibi Normal
, Semibold
ve Bold
adında üç adet String
türünde değer eklenmesi gerekir.
Başvuru sırasında kurye akışının kullanılıp kullanılmayacağı belirtmek için ayar dosyasına Boolean
türünde courierChoice
değeri eklenebilir. Kurye akışı varsayılan olarak kapalıdır. courierChoice
değeri YES
olarak ayarlandığı durumda başvuru kurye akışı ile devam ettirilebilir.
Başvuru sırasında desteklenen doğrulama türlerinden hangilerinin kullanılabileceğini belirtmek için ayar dosyasına Array
türünde verificationTypes
değeri eklenir.
Doğrulama türü olarak çipli kimlik kartı kullanılacak ise verificationTypes
listesine String
türünde IdCard
değeri eklenir.
Note
Şu an için kullanılabilen tek doğrulama türü çipli kimlik kartı olduğundan ayar dosyanıza bu ayarı eklemeniz gerekmez.