13 Yıllık Yerel Bir Uygulamayı React Native’a Dönüştürmek
(ridicorp.com)Ridibooks’un yerel uygulamadan React Native’a geçiş sürecinde yaşadığı deneyimlerin hikayesi
- React Native’ı seçme nedeni
-
Daha önce içerik keşfi ve ödeme web’de yapılıyor, uygulama ise görüntüleyici olarak kullanılıyordu; ancak uygulamaya da keşif ve ödeme işlevlerini ekleme kararı alındı. Hızlı değişimlere yanıt vermek ve verilen süre içinde hedefe ulaşmak için, çapraz platform geliştirmeye uygun bir teknolojinin benimsenmesine karar verildi
-
Flutter / React Native arasında değerlendirme yapılırken, React Native topluluğunun biraz daha oturmuş ve aktif olduğu düşünülerek React Native tercih edildi
- Yerel tabanlı mı, React Native tabanlı mı?
-
Yerel uygulamanın üzerine React Native mı konulmalı, yoksa tersine React Native’ın üzerine yerel bileşenler mi eklenmeli konusu değerlendirildi
-
Yerel uygulamanın üzerine React Native eklenirse ekran bazında endpoint’ler farklılaşıyor ve uygulama yaşam döngüsünü yönetmek karmaşık hale geliyor
-
React Native’ın üzerine yerel bileşenler eklenirse, mevcut yerel kodun React Native ile uyumlu olacak şekilde bir kez düzenlenmesi gerekiyor. Gelecekte ise bunların tamamen React Native ile yeniden yazılması gerekecek
-
Zaten işlevlerin çoğunun React Native’a taşınması planlandığı için, React Native’ın üzerine yerel bileşenler ekleme yönünde karar verildi
- Yerel ekranları yeniden kullanma
- Verilen süre içinde değişime hızlı yanıt verebilmek için yeni ekranların React Native ile yazılmasına, mevcut ekranların ise yerel ekran olarak korunmasına karar verildi (yerel ekranlar kademeli olarak React Native’a dönüştürülecek)
- Yerel kodu yeniden kullanma
-
Ridibooks’un 13 yıl boyunca bakımını yaparak biriktirdiği yerel geliştirme birikimi React Native’a aktarılabilir mi? Mevcut yerel uygulamada Swift ve Kotlin kullanılıyordu; bunların React Native içinde olduğu gibi kullanılabilir olup olmadığı doğrulandı
-
Bridge oluşturularak mevcut yöntemlerle kullanım mümkün oldu
- Uygulama sürecindeki zorluklar
-
Bundle boyutu ve bellek kullanımı arttı
-
Bundle boyutu beklenen seviyedeydi ancak bellek kullanımı çok kötüydü. Optimizasyona ciddi şekilde odaklanmak gerekti
-
Üçüncü taraf kütüphanelere güvenmek zor
-
Ne yerel taraf ne de frontend tarafı göz ardı edilebilir. Yerel geliştiricilerin frontend geliştirmeyi, frontend geliştiricilerin de yerel geliştirmeyi öğrenmesi gerekiyor. Taraflar arası etkileşim başarının anahtarı
- React Native’ın iyi tarafları
-
Yüksek üretkenlik
-
İş birliği için uygun bir platform
React Native sayesinde verilen süre içinde ürün yol haritasına ulaşıldı; hızlı değişime yanıt verebilen bir ortam ve üretkenlik kazanıldı. Bundan sonra yerel alanlar ciddi şekilde React Native’a dönüştürülecek. Ancak görüntüleyici tarafında 13 yıl boyunca biriken know-how bulunduğu için bu kısım korunmaya devam edecek ve en iyi kullanıcı deneyimi sunulacak.
11 yorum
Google Trends'te anahtar kelime araması yapmayı hiç denediniz mi bilmiyorum ama RN ekosistemi neredeyse ölüyor. Buna karşılık Flutter patlayıcı bir büyüme içinde. Bu arada ben bir native geliştiriciyim.
Kullanıcı açısından bakınca masaüstü uygulamasının performansı önceki sürüme göre düşmüş gibi görünüyor. Eskiden sayfalar arasında geçerken gecikme hissetmiyordum ama son zamanlarda sürekli takılıyor.
Masaüstü sürümünde biraz vurgulama olsa iyi olurdu... Bunun telif hakkı gibi bir mesele yüzünden yapılamayan bir şey olup olmadığını merak ediyorum, hmm.
Mobil uygulamalar bir yana, ne olur masaüstü uygulamalarla da biraz ilgilenseniz.. hıçkırık hıçkırık
Ridibooks masaüstü uygulamasını uzun zamandır kullanan biri olarak, bu kararın tamamen yalnızca mobil düşünülerek alınmış olması hissi bende bir hayal kırıklığı yaratıyor. Bunu sadece ben de yaşamıyorum; masaüstü uygulamasını kullandığını söyleyen herkes sürekli hatalarla boğuşuyor... (eski Qt tabanlı uygulamadan bile daha kötü)
Çevremde masaüstü uygulamaların sorunlarıyla ilgili çok fazla serzeniş duydum..
Ben de doğrudan geliştiren tarafta değilim ama içinde bulunduğum topluluklarda Flutter övgüsünü görünce şirketimizdeki uygulama geliştiricisine söyledim; o ise React’i daha çok seviyor. Bunun nedeninin tabanının ve işe alım piyasasının daha iyi olması olduğunu söyledi. Başkalarının ne düşündüğünü de duymak isterim.
Native çok büyük bir hızla gelişiyor; asıl mesele RN'in bu hıza ayak uydurup uyduramayacağı olacak.
Peki bu soru açısından Flutter görece nasıl olurdu?
Aynı şekilde Android büyük ihtimalle sorun olmaz ama iOS’a yetişebilir mi emin değilim.
Entegrasyonun getirdiği entropinin maliyetini göz ardı etmemek gerektiğini düşünüyorum.
React Native ile 2~3 yıl önce geliştirip yayına almıştım...
Kişisel olarak artılarından çok eksilerinin olduğunu düşünüyordum..
https://m.blog.naver.com/PostView.naver/…
Bu yüzden ilgimi büyük ölçüde kaybetmiştim ama... popülerliği hâlâ sürüyor.