Yapı Market için iOS & Android Uygulaması
Web sitesi olan ama mobil kanalı olmayan bir yapı market mağazasını, mevcut ERP sistemine dokunmadan iOS ve Android'e taşıyan e-ticaret uygulaması.
- Rol
- Full-stack Developer (tek)
- Stack
- React Native · Express.js · REST API · SQLite
Yıllarca duran bir dijital boşluk
Müşterimiz, kendi bölgesinde tanınan büyük bir yapı market mağazası. Bir web siteleri vardı, fiziksel olarak yoğun ziyaret aldıkları bir noktaydılar; ama mobil cihazda alışveriş yapmak isteyen müşterilerine sunabilecekleri hiçbir şey yoktu.
Plan basitti, uygulama tarafı değil: Müşterinin yıllarca kullandığı ERP / stok yönetim sistemini değiştirmemek. O sistem işliyordu, ekip ona alışıktı, ürün/fiyat/stok verisi orada yaşıyordu. Bizden istenen, bu sistemin üzerine - onu hiç bozmadan - bir mobil katman inşa etmekti.
“Mevcut sistemi değiştirmeden, üzerine bir mobil katman inşa etmek.”
Yaklaşımımız
Projeye girerken karşımızda bir karar vardı: ya ERP'yi modernleştirmeye çalışıp ucu açık bir dönüşüme girişeceğiz, ya da mevcut sistemi olduğu gibi kabul edip üzerine bir köprü kuracağız. İkinci yolu seçtik. Müşterinin iş akışı durmadan devam etmeli, geliştirme bağımsız ilerlemeliydi.
Bu yüzden Express.js ile yazılmış bir bridge backend kurduk: ERP'den veri çeker, mobil uygulamanın anlayacağı bir formata çevirir, gerektiğinde cache'ler. Mobil uygulama ERP'yi hiç görmedi, sadece bizim API'mizi konuştu.
Teknik Kararlar
Dokümantasyonsuz bir API ile çalışmak
Müşterinin ERP sistemini yapan şirketin sunduğu API'nin hiçbir yazılı dokümantasyonu yoktu. Onlarla konuştuğumuzda kendileri bile bazı endpoint'lerin ne döndürdüğüne net cevap veremiyordu. Ne yapacağımıza karar vermek için önce sistemi tanımak gerekti: birkaç hafta boyunca her endpoint'i tek tek test ettik, response formatlarını çıkardık, hangi alanın ne anlama geldiğini deneme yanılma ile çözdük. Express.js backend'imiz, bu kaotik kaynağı mobil uygulamanın anlayacağı temiz bir REST API'ye dönüştürdü.
React Native ile tek codebase
Tek bir geliştirici, 4 ay ve iki platform (iOS + Android). Native geliştirmeye girişmek bu kapsamda mümkün değildi. React Native ile tek codebase'den her iki platforma yayın yaptık; native modüllerin gerektiği yerlerde (push notification, ödeme akışı) gerekli native köprüleri ekledik. Sonuç, geliştirme süresini ikiye katlamadan native deneyime yakın bir uygulamaydı.
Offline-first ürün kataloğu
Bir yapı market müşterisi çoğu zaman mağaza içinde, depo arkasında veya mobil internetin zayıf olduğu yerlerde uygulamayı kullanır. Kullanıcının her sayfayı her seferinde indirmek zorunda kalması iyi bir deneyim olmazdı. AsyncStorage ve SQLite kombinasyonuyla bir cache katmanı kurduk: kullanıcı katalogu bir kez gezdikten sonra çevrimdışıyken de ürünlere bakabilir, sepete ekleyebilir. Yalnızca sipariş kesinleştirme adımında bağlantı şart.
Güvenli ödeme akışı
Ödeme finansal bir hassasiyet alanı. Kart bilgilerini hiçbir zaman uygulamada veya kendi backend'imizde tutmadık - PCI uyumlu bir ödeme sağlayıcısının token sistemini kullandık. Kullanıcı kart bilgisini doğrudan sağlayıcının güvenli alanına girdi, biz sadece dönen token'la siparişi finalize ettik. Bu yaklaşım hem hukuki yükü azalttı hem de güvenlik sorumluluğunu ödeme sağlayıcısının uzmanlık alanına bıraktı.
Arayüzden
Sonuç & Etki
Uygulama 4 ayın sonunda hem App Store hem Google Play'de yayına alındı. Müşteri, yıllardır web'de bıraktığı dijital varlığını ilk kez mobil cihazlarda da kullanılabilir hale getirdi.
Mimari tarafta kazanılan şey daha kalıcı oldu: mevcut ERP'ye tek satır dokunulmadan, üzerine bir API köprüsü kuruldu. Stok ve fiyat verisi gerçek zamanlı senkron çalıştı, mağaza ekibi alışkın olduğu sistemlerden çıkmadı. Bu yaklaşım - eski ama vazgeçilmez sistemleri olduğu gibi koruyup üzerlerine yeni bir dijital katman eklemek - bizim için hâlâ bir referans noktası.
Mevcut sistemleriniz üzerine inşa edebileceğimiz bir şey mi var?
Yıllardır çalışan bir ERP, eski ama vazgeçilmez bir backend, ya da entegre etmesi zor bir API mi var? Onların üzerine yeni bir katman kurmak için konuşalım.
Teklif Alın