14 puan yazan velopert 2021-12-22 | 11 yorum | WhatsApp'ta paylaş

Ridibooks’un yerel uygulamadan React Native’a geçiş sürecinde yaşadığı deneyimlerin hikayesi

  1. 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

  1. 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

  1. 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)
  1. 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

  1. 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ı

  1. 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

 
ugotme 2021-12-24

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.

 
kernel0 2021-12-23

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.

 
lux1024 2021-12-23

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.

 
functor 2021-12-23

Mobil uygulamalar bir yana, ne olur masaüstü uygulamalarla da biraz ilgilenseniz.. hıçkırık hıçkırık

 
lifthrasiir 2021-12-23

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ü)

 
kernel0 2021-12-23

Çevremde masaüstü uygulamaların sorunlarıyla ilgili çok fazla serzeniş duydum..

 
nicewook 2021-12-23

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.

 
deokim 2021-12-23

Native çok büyük bir hızla gelişiyor; asıl mesele RN'in bu hıza ayak uydurup uyduramayacağı olacak.

 
nicewook 2021-12-23

Peki bu soru açısından Flutter görece nasıl olurdu?

 
deokim 2021-12-23

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.

 
ruinnel 2021-12-22

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..

  • AirBnb vazgeçip geri çekilirken yazdığı yazıyı görünce (+ 3. parti kütüphanelerin üretim hattının bir ayağı da ortadan kalkmış sayılırdı..)

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.