[]
JS ile web / desktop app
Önümüzdeki günlerde yeni bir projeye başlayacağım.
mobile uygulamamızın web client'ini reactjs ile yazmaya başlayacağım. önümüzde desktop app'i çıkarmak da var. desktop app, nice-to-have değil, planlarımız dahilinde olan mecburi bir eylem.
haliyle web'i yazarken, projenin iskeletini oluştururken bir yandan da electron js ile olan kullanımını düşünmeliyim.
en uygun yöntem nedir bu konuda?
web app bittikten sonra electron ile bir pencere oluşuturup webview ile içine web uygulamasını vermek istediğim bir şey değil. daha native olmalı. ayrıca uygulamada anında mesajlaşma gibi özelikler de var. arkaplanda açık olmalı, bildirimler gelmeli vs. yani web app'ten farklı bazı native özellikler de düşünüyoruz ya da düşünebiliriz.
yani, aslında sormak istediğim, bazı modifikasyonlar dışında web'de client'ında yaptığım şeyler electron'da doğrudan çalışır mı? yoksa ikisini birbirinden bağımsız iki proje gibi mi düşünmeliyim?
tek kod, farklı ortamlar gibi düşündüm hep.
mobile uygulamamızın web client'ini reactjs ile yazmaya başlayacağım. önümüzde desktop app'i çıkarmak da var. desktop app, nice-to-have değil, planlarımız dahilinde olan mecburi bir eylem.
haliyle web'i yazarken, projenin iskeletini oluştururken bir yandan da electron js ile olan kullanımını düşünmeliyim.
en uygun yöntem nedir bu konuda?
web app bittikten sonra electron ile bir pencere oluşuturup webview ile içine web uygulamasını vermek istediğim bir şey değil. daha native olmalı. ayrıca uygulamada anında mesajlaşma gibi özelikler de var. arkaplanda açık olmalı, bildirimler gelmeli vs. yani web app'ten farklı bazı native özellikler de düşünüyoruz ya da düşünebiliriz.
yani, aslında sormak istediğim, bazı modifikasyonlar dışında web'de client'ında yaptığım şeyler electron'da doğrudan çalışır mı? yoksa ikisini birbirinden bağımsız iki proje gibi mi düşünmeliyim?
tek kod, farklı ortamlar gibi düşündüm hep.
Valla ben olsam iki ayrı repo/proje yapmam. Tek proje olur, build ederken desktop flag'i verirseniz electron çıktısı verir, web derseniz normal build eder.
- Interface bugünler için var :) Misal login işiniz var diyelim, web ve desktop birbirinden farklı olabilir (CORS vs). Elinizde bir tane loginProvider interface'i olur, web için webLoginProvider'ı, desktop için desktopLoginProvider'ı kullanarak build edersiniz.
- UI componentlerinizi olabildiğince küçük ve birbirinden bağımsız yazın. Hepsi "platform" gibi ortak/temel bir component'ten extend olsun, web veya desktop'a göre farklı özellikler kazansınlar.
- Bunları typescript yazdığınızı düşünerek yazdım ama js'te daha kolay.
- Interface bugünler için var :) Misal login işiniz var diyelim, web ve desktop birbirinden farklı olabilir (CORS vs). Elinizde bir tane loginProvider interface'i olur, web için webLoginProvider'ı, desktop için desktopLoginProvider'ı kullanarak build edersiniz.
- UI componentlerinizi olabildiğince küçük ve birbirinden bağımsız yazın. Hepsi "platform" gibi ortak/temel bir component'ten extend olsun, web veya desktop'a göre farklı özellikler kazansınlar.
- Bunları typescript yazdığınızı düşünerek yazdım ama js'te daha kolay.
- plutongezegendegilmi (27.06.22 13:07:45)
biz hali hazirda electronjs icerisinde reactjs ile projemizi gelistiriyoruz. ayni componentleri hem web hem de client uzerinde kullaniyoruz. baya is kolayligi sagliyor bu sekilde. bizim sistem genelde crud calistigi icin electron tarafinda problem yasamadik. isletim seviyesinde yapilacak islemler var ise problemler ile karsilasacaginiz acik. aninda mesajlasma, bildirim gibi yapilarda problem yasamazsiniz.
- duyulmasi gerektigi kadar (27.06.22 13:11:56)
1