Blog

Masaüstü mü web uygulaması mı? Doğru seçim rehberi

Özet

Kullanıcılar farklı yerlerden ve cihazlardan erişecekse, internet bağlantısı güvenilirse ve sık güncelleme gerekiyorsa web uygulaması doğru seçimdir. İnternetsiz çalışma, yazıcı veya seri port cihazları gibi donanımlara doğrudan erişim ya da yerel dosyalarla yoğun çalışma gerekiyorsa masaüstü uygulama daha uygundur. PWA ise ikisi arasında hafif bir orta yoldur.

Masaüstü uygulama mı, web uygulaması mı? Bu soru genellikle bir işletme kendi iç programını, örneğin stok takibi, raporlama veya kasa yazılımını yaptırmak istediğinde ortaya çıkar. Doğru cevabı teknoloji değil, programın nerede, kim tarafından ve hangi koşullarda kullanılacağı belirler. Ben İbrahim Aliyev (codeyev), full-stack geliştiriciyim; hem web uygulamaları hem de Electron ile masaüstü uygulamalar geliştiriyorum. Bu yazıda kararı kolaylaştıran kriterleri anlatıyorum.

Masaüstü uygulama ile web uygulaması arasındaki fark nedir?

Web uygulaması tarayıcıda çalışır ve kurulum gerektirmez; masaüstü uygulama ise bilgisayara kurulur ve işletim sisteminin kaynaklarına doğrudan erişir. Kararı belirleyen fark budur.

Web uygulamasında kod ve veriler sunucudadır. Kullanıcı bir bağlantı açar, giriş yapar ve çalışır. Masaüstü uygulamada program bilgisayarda çalışır; internete bağlı olmadan da işleyebilir, yerel dosyaları okuyup yazabilir, bilgisayara bağlı cihazlarla iletişim kurabilir. Günümüzde ikisi arasındaki sınır eskisi kadar keskin değil: aynı web teknolojileriyle yazılmış bir uygulama hem tarayıcıda hem de kurulum dosyası olarak dağıtılabiliyor.

PWA nedir, ne zaman yeterli olur?

PWA (Progressive Web App), tarayıcıdan bilgisayara veya telefona “yüklenebilen” bir web uygulamasıdır. Kendi penceresinde açılır, simgesi masaüstünde veya ana ekranda durur ve service worker sayesinde belirli ölçüde çevrimdışı çalışabilir. iPhone ve iPad’de ise tarayıcının Paylaş menüsündeki “Ana Ekrana Ekle” seçeneğiyle yüklenir.

PWA şu durumlarda genellikle yeterlidir:

  • kullanıcılar uygulamayı hem bilgisayardan hem telefondan kullanacaksa;
  • internet çoğu zaman varsa ve kısa kesintilerde temel ekranların açılması yeterliyse;
  • mağaza veya kurulum dosyasıyla uğraşmak istemiyorsanız.

Sınırları da var: PWA tarayıcının depolama ve izin kurallarına bağlıdır, donanım erişimi tarayıcıdan tarayıcıya değişir ve arka planda uzun süre çalışan işler için uygun değildir.

Hangi seçenek hangi durumda daha iyi?

Kısa cevap: her yerden erişim ve kolay güncelleme önemliyse web, çevrimdışı çalışma ve donanım önemliyse masaüstü. Aşağıdaki tablo farkları özetliyor.

KriterWeb uygulamasıPWAMasaüstü (Electron)
KurulumGerekmez, tarayıcıdan açılırTarayıcıdan tek tıkla yüklenirKurulum dosyası gerekir
İnternetsiz çalışmaGenellikle yokSınırlı, önbelleğe alınan kısımlarTam çevrimdışı, sonra senkronizasyon
Donanım ve dosya erişimiSınırlıTarayıcıya bağlıDoğrudan erişim
GüncellemeAnında, sunucudaOtomatik, bir sonraki açılıştaOtomatik güncelleme mekanizmasıyla
Çok kullanıcı, çok cihazÇok kolayKolayOrtak veri için backend gerekir
Ek dağıtım giderleriBarındırmaBarındırmaKod imzalama, güncelleme sunucusu

Bazı projelerde en doğru cevap ikisinin birleşimidir: yönetim ve raporlama ekranları web’de, kasadaki veya depodaki ekran ise çevrimdışı çalışan bir masaüstü uygulamasında. İki taraf aynı backend’i ve çoğu zaman aynı arayüz kodunu paylaşır; böylece iki ürünü sıfırdan ve ayrı ayrı geliştirmek gerekmez.

Program internetsiz çalışmalıysa ne seçilmeli?

İnternet kesildiğinde işin durmaması gerekiyorsa masaüstü uygulama seçin. Örneğin bir depoda, şantiyede veya bağlantının zayıf olduğu bir satış noktasında program tam çevrimdışı çalışmalı ve bağlantı gelince verileri sunucuyla eşitlemelidir.

Bu “çevrimdışı + senkronizasyon” modeli dikkatli tasarım ister: iki kişi aynı kaydı farklı yerlerde değiştirirse hangisinin geçerli olacağı, çakışmaların nasıl çözüleceği baştan belirlenmelidir. Bu nedenle paketlerimde çevrimdışı çalışma ve senkronizasyon Karmaşık paketin kapsamında yer alır. Bağlantı çoğu zaman varsa ve kesintiler kısaysa, iyi kurulmuş bir PWA daha az maliyetle yeterli olabilir.

Yazıcı, barkod okuyucu gibi donanımlarla hangisi daha kolay çalışır?

Donanım işin merkezindeyse masaüstü uygulama daha kolay ve güvenilirdir. Masaüstü uygulama fiş yazıcılarına, seri port üzerinden bağlanan terazi gibi cihazlara ve yerel dosya sistemine doğrudan erişebilir.

Tarayıcı tarafında WebUSB, Web Serial ve WebHID gibi arayüzler var, ama bunlar şu an ağırlıklı olarak Chrome ve Edge gibi Chromium tabanlı tarayıcılarda çalışıyor. Yani bir web uygulaması veya PWA ile donanım desteği, kullanıcının hangi tarayıcıyı kullandığına bağlı kalır. Bir istisna: USB barkod okuyucuların çoğu bilgisayara klavye gibi bağlanır ve okuduğu kodu klavyeden yazılmış gibi girer; bu tür okuyucular web uygulamalarında da sorunsuz çalışır.

Güncellemeler ve dağıtım nasıl farklılaşır?

Web uygulamasında güncelleme bir kez sunucuya yüklenir ve herkes bir sonraki açılışta yeni sürümü görür. Masaüstü uygulamada ise her bilgisayara yeni sürümün ulaşması gerekir; bunun için otomatik güncelleme mekanizması kurulur.

Masaüstü dağıtımın iki pratik detayı daha var:

  • Windows: İmzasız kurulum dosyaları SmartScreen uyarısı gösterebilir; kod imzalama sertifikası bu güven sorununu azaltır.
  • macOS: App Store dışında dağıtılan uygulamaların Developer ID ile imzalanması ve Apple tarafından noter onayından (notarization) geçmesi gerekir; aksi halde Gatekeeper uygulamayı engeller.

Sertifika ve üyelik ücretleri geliştirme ücretinden ayrı giderlerdir ve doğrudan ilgili sağlayıcılara ödenir. Kurumsal ortamlarda ayrıca programı kurmak için yönetici yetkisi gerekebilir; web uygulamasında böyle bir engel yoktur.

Maliyet ve bakım açısından hangisi daha uygun?

Çevrimdışı çalışma ve donanım erişimi gerekmiyorsa web uygulaması genellikle daha ekonomiktir; dağıtım, imzalama ve kurulum desteği gibi kalemler ortadan kalkar. Masaüstü uygulama ise bu ihtiyaçlar gerçekten varsa ek maliyetini hak eder.

Electron burada iyi bir orta yol sunuyor: Chromium ve Node.js üzerine kurulu olduğu için web teknolojileriyle yazılan bir uygulama Windows, macOS ve Linux’ta tek kod tabanıyla çalışır. VS Code, Slack ve Discord gibi yaygın uygulamalar da Electron ile geliştirilmiştir. Dürüst olmak gerekirse, Electron uygulamalarının kurulum boyutu ve bellek kullanımı platforma özel (native) uygulamalara göre daha yüksektir; çoğu işletme yazılımında bu fark sorun yaratmaz.

Fiyatlara gelince: masaüstü uygulama geliştirme paketlerimde MVP $1000, backend, hesaplar ve otomatik güncelleme içeren Standart paket ise $2000 tutarından başlıyor. Çevrimdışı senkronizasyonlu ve entegrasyonlu projeler özel teklifle fiyatlanır. Web tarafında web geliştirme paketlerim $500 ile başlıyor; kullanıcı hesabı, yönetim paneli ve veritabanı gerektiren özel web uygulamaları ise kapsama göre fiyatlanıyor. Tarayıcıda çalışan bir iç sisteme örnek olarak iron-group.kz projesine bakabilirsiniz: Astana’daki bir hadde metal tedarikçisi için Next.js ile yaptığım site, özel bir yönetim paneliyle birlikte çalışıyor.

Karar vermeden önce hangi soruları sormalısınız?

Şu beş sorunun cevabı kararın büyük kısmını verir:

  1. Program internet olmadan da çalışmak zorunda mı?
  2. Yazıcı, terazi, seri port cihazı gibi donanımlara bağlanacak mı?
  3. Kaç kişi, kaç farklı yerden ve hangi cihazlardan kullanacak?
  4. Güncellemeler ne sıklıkla yapılacak?
  5. Veriler merkezi bir sunucuda mı, yoksa bilgisayarda mı durmalı?

İlk iki soruya “evet” diyorsanız masaüstü uygulama; üçüncü ve dördüncü soruda “çok” diyorsanız web uygulaması öne çıkar. Emin değilseniz ihtiyacınızı codeyev.com’daki kısa brif formunda anlatın; 24 saat içinde dönüş yapıyorum ve hangi seçeneğin size uygun olduğunu birlikte netleştiriyoruz.

Sıkça sorulan sorular

Aynı kodla hem web hem masaüstü uygulama yapılabilir mi?

Evet. Electron, web teknolojileriyle yazılmış bir uygulamayı Windows, macOS ve Linux için kurulum dosyasına dönüştürür. Arayüz ve iş mantığının büyük kısmı ortak kalır; yalnızca dosya, donanım ve güncelleme gibi masaüstüne özgü kısımlar ayrıca yazılır.

Hangisi daha güvenli?

İkisi de doğru kurulursa güvenlidir; risk türleri farklıdır. Web uygulamasında veriler sunucuda merkezi olarak korunur ve güncellemeler anında herkese ulaşır. Masaüstü uygulamada veriler bilgisayarda kalabilir; bu yüzden şifreleme, yedekleme ve güncellemelerin düzenli dağıtımı önem kazanır.

Mevcut web sitemi masaüstü uygulamaya çevirebilir miyim?

Çoğu durumda evet, ama yalnızca siteyi bir pencereye koymak yeterli değildir. Masaüstü uygulamanın gerçek değeri çevrimdışı çalışma, yerel dosya ve donanım erişimi gibi özelliklerden gelir; bu kısımların ayrıca planlanması gerekir.

Masaüstü program yaptırmak ne kadar tutar?

MVP paketi $1000, backend, hesaplar ve otomatik güncelleme içeren Standart paket $2000 tutarından başlar. Çevrimdışı senkronizasyon ve özel entegrasyon gerektiren projeler özel teklifle fiyatlanır.

Hizmetleri keşfet
Teklif al