ademilter / vakitler

Namaz Vakitleri
https://vakitler.app
Apache License 2.0
347 stars 43 forks source link

fix(performance): Improve performance and replace global store with zustand - #56 #88

Open abdullahceylan opened 1 year ago

abdullahceylan commented 1 year ago

Ozet

56 icindeki yorumda da belirtildigi uzere, uygulama ici re-render nedeni ile ortaya cikan performans sorununun iyilestirilmesi icin gerekli degisiklikleri ve cesitli kod optimizasyonlarini icerir.

Neden?

Uygulama genelinde ihtiyac duyulan degiskenlerin/degerlerin ortak bir yerden -source of truth- yonetilmesi icin olusturulan ve dogrudan uygulamayi wrap eden CommonStoreContext, guncellenen her bir deger icin sadece ihtiyac duyulan component'ler yerine Main Layout ve wrap ettigi componentlerin de re-render olmasina neden oluyor. Bu durum da uygulama performasini etkileyecek sonuclar doguruyor.

Nasil?

Yukaridaki nedenlerden dolayi ortaya cikan sorunlarin giderilmesi icin bahsetmis oldugum:

cozumleri uygulanarak, uygulamayi bir Provider ile wrap etmeye gerek kalmadan ve transiently subscription sayesinde de ihtiyac duyulanlar disindaki component'lerde re-render'e neden olmadan islemlerin gerceklestirilmesi saglandi.

Kod optimizasyonlari

Performans sorunlarinin giderilmesi disinda, asagidaki kod optimizasyonlarini da icerir:

Sonuc

oncesi sonrasi
Screenshot 2023-04-03 at 01 28 28 Screenshot 2023-04-03 at 00 22 00
Screenshot 2023-04-03 at 01 28 43 Screenshot 2023-04-03 at 01 22 21
Screenshot 2023-04-04 at 17 05 03 Screenshot 2023-04-04 at 17 08 24

Yapilabilecekler

vercel[bot] commented 1 year ago

@abdullahceylan is attempting to deploy a commit to the Ademilter Team on Vercel.

A member of the Team first needs to authorize it.