iOS Fintech Uygulaması
Fintech, finans ve teknolojinin toplamıdır. Terim, finansal hizmetlerin sunumunu iyileştirmek için teknolojiyi kullanan gelişmekte olan endüstrileri ifade eder. Online alışverişten mobil banka işlemlerine kadar insanlar neredeyse her gün fintech uygulamalarını kullanıyor. Ödeme uygulamaları, işletme sahiplerinin geleneksel bordro yöntemlerini kullanmadan doğrudan bir akıllı telefondan ödeme yapmasına olanak tanıdığından, yalnızca sorunsuz işlem yapmalarına yardımcı olmakla kalmayıp, aynı zamanda sorunsuz işlem yapmalarına yardımcı olacak müşteri ve satıcı dostu bir ödeme uygulaması (2 ayrı uygulama) oluşturmaya karar verdik. yapacakları her ödemede ekstra ödüller kazanın.
Uygulama iOS mobil ortamında oluşturulmuştur.
A) XCode IDE - Xcode, Apple'ın macOS, iOS vb. için yazılım geliştirmek için kullandığı tümleşik geliştirme ortamıdır. Bu proje için Xcode 11+ sürümü kullanılmıştır.
Araçlar : _
- Figma( Tasarım Aracı) : Birlikte ürün oluşturan ekipler için ücretsiz bir tasarım aracıdır. Bu aracı, uygulamanın prototipini tasarlamak ve teknik ekibin uygulamayı gerçek zamanlı olarak tasarlamasına yardımcı olmak için kullandık.
- SwiftLint (Kod Şekillendirme) : Swift stilini ve kurallarını zorlamak için açık kaynaklı araç. Realm tarafından geliştirilmiştir. Kodlama stili kurallarını belirlemek ve geliştirme sırasında bunları zorlamak için kullandık.
- Swift Package Manager (Code destribution) : Swift kodunun dağıtımını yönetmek için kullanılan bir araçtır ve indirme, derleme ve bağımlılıkları bağlama sürecini otomatikleştirmek için Swift oluşturma sistemi ile entegre edilmiştir. Kakao podları yerine kullandık.
- Postman : API'leri tasarlamak, oluşturmak, test etmek ve yinelemek için API platformu. Bunu paytm api yanıtını okumak ve ödemenin başarılı mı yoksa başarısız mı olduğunu kontrol etmek için kullandı.
D) Çerçeveler:
- SwiftUI (SwiftUI, uygulamanızın kullanıcı arayüzünü bildirmek için görünümler, kontroller ve düzen yapıları sağlar)
- Temel (veri depolama ve kalıcılık, tarih ve saat hesaplamaları, sıralama ve filtreleme vb. dahil olmak üzere uygulamalar ve çerçeveler için temel bir işlevsellik katmanı sağlar)
- Birleştir (değerleri zaman içinde işlemek için bildirime dayalı Swift API'si)
- UIKit (UI bileşenleri ve stilleri gibi bir dizi tasarım öğesi içeren varlıkların koleksiyonu)
- Çekirdek Konum (Mağazaların ve kullanıcının konumunu izlemek için)
- Firebase SDK (Kullanıcının kimliğini doğrulamak, bilgilerini saklamak ve bildirim almak için)
- CoreImage.CIFilterBuiltins (Ödemeler için dinamik QR oluşturmak için)
- CodeScanner (Mağazadan QR kodunu taramak için)
- Webkit (Ödeme platformunu entegre etmek ve ödeme yanıtını okumak için)
F) Github (Versiyon Oluşturma Aracı) : Yazılım geliştirme ve sürüm kontrol aracı için internet barındırma hizmetidir. Projemiz için Git'in dağıtılmış sürüm kontrolünün yanı sıra erişim kontrolü, hata izleme, çekme istekleri, görev yönetimi, sürekli entegrasyon vb. sağlar.
G) Mimari Tasarım kalıbı (MVVM): Model Görünümü ViewModel, mobil geliştirmede kullanılan bir mimari tasarım kalıbıdır. Kod tabanı gelecekte büyüyeceğinden, MVVM modelini kullanmak daha avantajlı olacaktır.
H) Arka Uç Entegrasyonu:
- Firebase SDK: Bu SDK'yı SPM (https://github.com/firebase/firebase-ios-sdk) ve projeye .plist dosyası eklendi.
- Bildirimler : FCM(Firebase Cloud Messaging) : Ücretsiz ve güvenilir bir şekilde mesaj göndermenizi sağlayan platformlar arası bir mesajlaşma çözümüdür.
- Gerçek zamanlı veritabanı: Uygulamaya kendilerini kaydettirdiklerinde satıcı ve kullanıcının ayrıntılarını depolamak için kullanılır. Bu veritabanı, kullanıcıların bilgilerini güvenli bir şekilde saklamaya yardımcı olmak için CRUD(oluştur, oku, güncelle, sil) işlevlerini takip eder.
- Kullanıcı Kimlik Doğrulaması: ( Firebase Auth )- Giriş ve çıkış sırasında kullanıcı kimlik doğrulamasını kontrol etmek için çerçeveyi kullandı. İlgili kayıtlı cep telefonu numarasına otp göndererek kimlik doğrulama sürecine yardımcı olur ve kullanıcıyı doğrular.
- Bu ürünün ayrıntılı öyküsünü ve pazar analizini almak için aşağıdaki bağlantıya göz atın. Ürünü ve ticari beklentilerini ayrıntılı olarak analiz ettim. Fintech Payment App (Geliştirme ve Ürün Yönetimi deneyimi)
- https://www.hackingwithswift.com/books/ios-swiftui/generating-and-scaling-up-a-qr-code
- https://developer.apple.com/documentation/webkit/wkwebview
- https://developer.apple.com/documentation/corelocation/
- https://blog.kiprosh.com/preferable-dependency-manager-swift-package-manager-spm-or-cocoapods/
J) DRY(kendinizi tekrar etmeyin): Kalıpların tekrarını ve soyutlamaların yardımıyla kod tekrarını azaltmak için bu yazılım geliştirme ilkesini izledi , böylece fazlalıktan kaçındı.
Bu uygulama temel olarak bir kullanıcının ve bir tüccarın çevrimiçi transferle birbirine görünüşte ödeme yapmasına izin verir ve yaptığınız her ödemede ek indirimler ve ödüller almanızı sağlar.
İşletme, kullanıcıların uygulamalarını kullanmak ve her ödemede ek avantajlar elde etmek için şirkete abonelik ücreti ödediği abonelik modeliyle kazanıyor . Abonelik satın alınmazsa, kullanıcılar yaptıkları her ödemede indirim almazlar, ancak uygulamayı indirimsiz normal ödemeler yapmak için kullanabilirler.
Tüccar uygulaması, mağaza sahibini kayıt anında uygulamaya kaydettirerek ve her ödemede daha fazla kar yüzdesi için uygulamayı kullanarak kazanç sağlar.
Kodun Önemli Noktaları:
> QR Kodu taraması için:
Kullanıcı uygulamasındaki QR kodunu müşteri tarafından taramak için, tarama sürecini basitleştirmek için Github'dan üçüncü taraf çerçevesini (CodeScanner) entegre ettik.
Bu konuda daha fazla bilgi edinmek ve projeye entegre etmek için bağlantıya bakın: https://github.com/twostraws/CodeScanner
Tarama sırasında ve sonuca göre çağrıldı, yani. başarı/başarısızlık, ekranda gezinme gerçekleşir. Başarılı olursa, ödeme sayfasına gider ve başarısız olursa, aşağıdaki hataları atar:
case badInput //Kameraya erişilemedi.
case badOutput // Kamera istenen kodları tarayamadı.
> Ödeme Entegrasyonu:
Ödemeyi bir mağazaya yapmak veya üyelik aidatlarını ödemek için WebKit ithal edilerek entegre edilmiştir. Ödemenin lansmanın ilk aşamasında gerçekleşmesini sağlamak için ödeme uygulamasına (Paytm) web görünümü entegrasyonunu ekledik.
Adımlar 1:WKNavigationDelegate
Web görünümünüzün ana çerçevesindeki değişiklikleri koordine etmek için kullandığınız nesneye protokolekleyinKullanıcı web içeriğinde gezinmeye çalıştığında, web görünümü geçişleri yönetmek için gezinme temsilcisiyle koordine olur.
Adım 2: SwiftUI arayüzünüzde bir UIView nesnesi oluşturmak ve yönetmek içinbir UIViewRepresentable örneği kullanın. Bu protokolü uygulamanızın özel örneklerinden birinde benimseyin ve görünümünüzü oluşturmak, güncellemek ve yıkmak için yöntemlerini kullanın.
Adım 3: Ana Görünümde yukarıdakileri kullanın. Başarı veya başarısızlığa bağlı olarak, yanıt gösterilir.
@StateObject var webViewCoordiantor = WebViewCoordinator()
ZStack'te WebView sınıfını kullanın.
> Dinamik QR Oluştur:
Satıcı uygulaması için her seferinde farklı bir tutarda yeni bir QR oluşturmak için aşağıdaki adımları izledik:
Adım 1:CIFilter
Core Image, tür açısından güvenli örnekleroluşturan yöntemler sağlarCore Image'ın dize tabanlı API'sine güvenirken oluşabilecek çalışma zamanı hatalarını önlemek için bu filtreleri kullanın.
CoreImage.CIFilterBuiltins'i içe aktarın
Adım 2: Etkin bir Core Image bağlamını ve Core Image'ın QR kod oluşturucu filtresinin bir örneğini depolamak için iki özelliğe ihtiyacımız var. Öyleyse, bu ikisini şuna ekleyinMeView
:
bağlam = CIContext() olsun
CIFilter.qrCodeGenerator() işlevini filtrelemesine izin ver
3. Adım: GenerateQR işlevini oluşturun ve ana görünümde kullanın.
4. Adım: Bu yeniImage
görünümü doğrudan aşağıya ekleyin:
> Konum Takibi:
Yakındaki mağazaları müşterilere göstermek için CoreLocation kullanıcı çerçevemiz var.
1. Adım: CoreLocation çerçevesini içe aktarın:
CoreLocation'ı içe aktar
Adım 2: Konum yöneticisi, konumla ilgili olayları uygulamanıza bildirmek için temsilcisinin yöntemlerini arayacak. Bu protokolü uygulamaya özel bir nesnede uygulayın ve uygulamanızı güncellemek için yöntemleri kullanın.
3. Adım: Şimdi kullanıcının izniyle, enlem ve boylam koordinatlarıyla, iphone'un kullanıcının ve yakındaki mağazaların konumunu izlemesine yardımcı olun.
Böylece dükkanları göstermek için aşağıdaki izni görüyorsunuz.
Sonuç : Fintech endüstrisinin kapsamı her geçen gün genişledikçe, artan taleple birlikte fintech uygulama geliştirme de genişlemeye devam edecektir.
Daha ilginç içerikler için beğenin, paylaşın ve takip edin...!!
İyi Kodlamalar…!!