NW.js, Brackets-Shell ve Electron arasındaki fonksiyonel farklılıklar nelerdir?


151

Artık TideSDK etkili bir şekilde öldü, HTML / CSS / JS uygulamalarını tek başına masaüstü uygulamaları olarak çalıştırmak için alternatif 'sarmalayıcılar' arıyordum. Şimdiye kadar karşılaştığım üç uygulanabilir seçenek NW.js (eski düğüm-webkit), parantez-kabuk ve Elektron (eski atom-kabuk).

Sorun, özellik seti, uyumluluk, vb açısından üçü arasında yeterince tam bir karşılaştırma olmadığı görülüyor. Bunu, arasındaki (objektif) farklılıklar üzerinde daha fazla veya daha az kanonik bir iş parçacığına dönüştürmeyi umuyorum üçü, özellikle:

  • Platform desteği ; işletim sistemleri, bağımlılıklar vb.
  • HTML5, CSS3 ve JavaScript ile ilgili olarak dil özelliği desteği . Gibi şeyler düşün "ve evet eğer ne codec mevcut HTML5 video çalışması var mıdır?"
  • Tepsi simgeleri, açılır pencere bildirimleri ve OS tarafından oluşturulan menü çubukları gibi standart dışı ek özellikler .
  • Genişletilebilirlik ; Örneğin. yerel kodu 'ekleyebilme', Node.js ile konuşabilme vb.
  • Mimarlık ; özellikle bir geliştirici olarak günlük kullanımı etkileyen mimari farklılıklar.
  • Hata ayıklama ; geliştirme araçları, yaygın olarak kullanılan araçlarla uyumluluk node-inspectorvb.
  • ... ve bunun gibi.

Uygulama geliştiricisi olarak aralarında seçim yaparken önemli, teknik farklılıklar nelerdir?


Bu arada farklılıklara bakmakta hiç şansın oldu mu? Bu hafta sonu kazma yapabilir
stefan

@stefan Henüz değil, hayır: / Düğüm-webkit ile pratik anlamda biraz deney yaptım, ancak henüz bunun ötesine geçmedim. Farkların resmi belgelerini aramak için
uğraşmadım

3
Peki, burada düğüm-webkit ve atom-kabuk takımı tarafından özetlenen atom-kabuk arasındaki temel farklar, github.com/atom/atom-shell/blob/master/docs/development/… .
sepulchered

2
Odadaki Fil: Hata Ayıklama. Ben nw.js kullanıyorum ve geliştirmek için linux platformu kullanırken hata ayıklama oldukça eksik bulundu. Büyük uygulamalar geliştirmek için hata ayıklama, IMO'nun kritik bir özelliğidir. Konuşmak istediğiniz özellikler listesine hata ayıklama ekleyebilir miyiz?
Timothy C. Quinn

@JavaScriptDude Teşekkürler, bunu listeye ekledim.
Sven Slootweg

Yanıtlar:


42

Yaklaşık iki ay önce benzer bir araştırma yaptım ve sonunda düğüm-webkit ile gittim. Düğüm-webkit'in en büyük tersi node.js ve npm'dir. Npm paket yönetimi gerçekten güzel ve düğüm iyi dosya sistemi erişimi vardır.

Köşeli parantez kabuğu ilginç görünüyordu, ama güzel bir IDE dışında bunu gerçekten iyi ya da diğerlerinden daha iyi yapan şey alamadım. "Köşeli parantez kabuğunun sadece Köşeli parantezler projesi tarafından kullanılmak üzere korunduğu" çok açıktır, çığlıklar bana kaçar.

https://github.com/adobe/brackets-shell#overview

Atom-shell son zamanlarda aktif gibi görünüyor, ancak gerçekten bir webkit çalışma zamanına eklenmiş olan gerçekten yazma ve editör / IDE gibi parantez gibi görünüyor. Ayrıca node.js üzerinde inşa edilmiştir. Bu ortaokul kimya hatırlattı olmadan çevrimiçi şeyler aramak zor olmanın dezavantajı vardır.

Gerçekten yeni bir editör istemiyorum ve çoğu programcının zaten favorileri var. Gerçek uygulama geliştirme için, hepsi webkit kullandığından, hemen hemen aynı şekilde çalışırlar ve gerekir. Temel olarak% 90-95'i bir web sitesi gibi yazıyorsunuz ve daha sonra yerel parçalar ve bazı yapılandırmalarla ilgileniyorsunuz.

Bunlar, platformların üçü için de geçerlidir - Windows, Mac ve Linux dil desteğinde çalışır - HTML5, CSS3 ve Javascript: javascript çalıştırdıkları için istediğiniz herhangi bir kütüphaneyi / çerçeveyi indirip çalıştırabilirsiniz.

Webkit'teki büyük uyarı codec desteğidir. Genellikle dll / so onları desteklemek için yeniden oluşturmak sürece, özgür olmayan video codec bileşenleri ile sorunlarınız olacaktır. Örneğin, gönderilen düğüm-webkit mp4 videosunu oynatmaz.


Parantez-kabuk ve atom-kabukta MP4 oynatma ile ilgili herhangi bir fark olup olmadığı hakkında ayrıntılı bilgi verebilir misiniz? Bunun çoğu WebKit dağıtımında mı yoksa sadece düğüm-webkitinde mi tuhaf olduğu cevabınızdan anlaşılamıyor.
Sven Slootweg

MP4 oynatmanın sorun olması bir webkit sorunudur. Web kitinin gerçekten krom olduğunu hatırlamak zorundasınız ve AV teknolojisi açık ve özgür olmadığı sürece kutunun dışında desteklemiyorlar. Standart cevap ffmpegsumo yerine / yeniden inşa etmektir. Mevcut Chrome kurulumunuzdan biriyle değiştirmek oldukça iyi çalışıyor gibi görünüyor.
John W. Clark

1
Brackets'ın bracket-shellve Atom'un da yerleşik olduğu atom-shell, ancak onlarla kod oluşturmak için istediğiniz herhangi bir düzenleyiciyi veya IDE'yi kullanabilirsiniz. Bence OP 3 arasındaki teknik farklar daha fazla istiyor. 3 çalışma zamanı benzeri ortamlarda TodoMVC gibi bir şey görmek tatlı olurdu.
Ehtesh Choudhury

@SvenSlootweg codec bileşeni desteği, kullandığınız web kitiyle kullanılan kitaplıklar hakkındadır. Her üçü de Webkit tabanı olarak Chromium kullanıyor, bu nedenle hepsinin aynı kodek sorunları var ve aynı şekilde çözülebilirler.
John W. Clark


40

Atom-Shell ile son birkaç gündür oynuyorum ve şimdiye kadar çok seviyorum.

Bununla ilgili en iyi bölüm GitHub tarafından destekleniyor olması, özellikle uzun bir süre sonra platforma uzun süre yerleşmenize izin vermesi. Ayrıca , önemli bir Node.js katılımcısı olan StrongLoop ile yapılan bir sözleşmenin izniyle doğrudan Node.js iyileştirmeleriyle de mümkün oldu (diğer herhangi bir şirketten, hatta Joyent'ten daha fazla Node.js çekirdek geliştiricisi çalıştırdığını iddia ediyorlar).

Başlamak için oldukça rahat buldum. Yapıyı öğrenmek ve ilk konsept koşulu kanıtımı almak bir günümü aldı. Çok havalı.


Mermi Noktaları:

  • Platform desteği: Windows, Linux, Mac OSX ( Daha Fazla Bilgi Burada )
  • Dil özelliği desteği: HTML5, CSS3, Chromium üzerinden JS - şimdiye kadar sıfır sorun, ancak özellikle video test etmedim.
  • Yerel Özellikler: Yerel Uygulama Menüleri, Görev Tepsisi Desteği, Global Kısayol Tuşları, Protokol İşleyici Desteği (şimdiye kadar gördüğüm)
  • Genişletilebilirlik: Mükemmel Node.js entegrasyonu, hem istemci hem de sunucu Node.js modüllerini ve yerel dosyalarını "gerektirebilir". Ayrıca başarıyla Bower kütüphaneleri (dahil jQuery) test ettim .
  • Mimari: Diğer noktalarda kaplıdır, ancak genel olarak çok pürüzsüzdür.

Güncelleme (25/11/14): Atom-Shell için henüz hiçbir resmi kapasitede kullanım durumu bulamadım, ancak kendi kullanımım için birkaç küçük uygulama oluşturmak için kullandım, en karmaşık olanı çeken bir uygulama Zamanım PM yazılımımdan günlüğe kaydeder ve Paypal faturaları oluşturur.

Platform hakkındaki fikrim olumlu. Oldukça harika.

Zaman faturalandırma uygulamamda , hafifçe karmaşık bir uygulama oluşturmak için Bootstrap 3'ün Dashboard Örnek Şablonu'nu ve birkaç düğüm modülünü (mavi kuş, Paypal SDK, Ekip Çalışması PM İstemcisi) başarıyla getirdim . Birkaç gün sürdü ve işini iyi yapıyor.

Atom-Shell hakkında sağlam, istikrarlı, hızlı ve kodlaması kolay bir şey söyleyemiyorum. Umarım bu birine yardımcı olur.


Özellikle düğüm-webkit ile arasındaki farkları açıklayabilir misiniz? Anlayabildiğim kadarıyla, bu noktaların hepsi (en çok?) Düğüm-webkit tarafından da sunuluyor, ancak eksik olduğum bir şey olup olmadığından emin değilim.
Sven Slootweg

merhaba luke kendini atom-kabuk uygulamasını güncellemek mümkün mü ...?
Munish Kapoor

@SvenSlootweg Üzgünüm Yorumunuzu birkaç ay önce kaçırdım; Ne yazık ki, düğüm-webkit ile iyi bilgili değilim ve ikisini etkili bir şekilde karşılaştıramadım. Ama en azından Atom-Shell'in yeni bir çığır açtığını gösteren bu StrongLoop makalesini okudum . : \
Luke Chavers,

@MunishKapoor Geliştirme için mi? En son sürümü indirebilirsiniz .. Az çok eski atom dizinini yeniden adlandırıyorum ve yenisiyle değiştiriyorum. Onlar "npm güncelleme" gibi bazı şık süreç olabilir - ama ben araştırmadım. App + atom kabuğunuzu istemcide güncellemek için, doğrudan (hiç) bunu ele aldıklarını düşünmüyorum ve muhtemelen bunun için bir yükleyici veya başka bir dış platform kullanacağınızı beklemiyorum. Yine de bu makaleyi dokümanlarında ilginç buldum .
Luke Chavers

1
@ Moonwalker Evet, paketleme için " Asar " adlı bir uygulama kullanıyor . (bkz. "Uygulama Ambalajı" ). Bu Node-Webkit / Atom-Shell karşılaştırmasını da buldum .
Luke Chavers

22

Web standartlarını tam olarak desteklemenin yanı sıra, NW.js yerel uygulama geliştirme için aşağıdakiler dahil standart dışı özelliklerin bir listesini destekler:

Wiki'de Menü, Tepsi vb. Dahil olmak üzere görülecek daha çok şey var.


3
Kiosk modunda Roger +1. Gelecekte kullanacağım bir özellik olduğunu görebiliyorum. Umarım hata ayıklama yetenekleri gelişir, bu yüzden nw.js'de kalabilirim, ancak şu anda ciddi bir şekilde suları test etmek için bir süre Atom Electron'a geçmeyi düşünüyorum. Hata ayıklama nw.js biraz isteyen buldum.
Timothy C. Quinn

Orada "JS kaynağını korumak" dahil edilmesi konusunda biraz endişeliyim - bu DRM ile aynı sınıfta, yani çalışmıyor. Başlamak için sadece "korumanız" gerekmeyenlerden "korur". Bana bir özellik olarak ilan edilmesi gereken bir şey gibi görünmüyor.
Sven Slootweg

1
Web için DRM gibi değil - JS programcıları, yerel uygulamaları geliştirirken kaynak kodunu makine koduna derleme de dahil olmak üzere C ++ programcılarının yapabileceği her şeyi yapabilmelidir.
Roger Wang

@JavaScriptDude şeytanları mı kastediyorsun? Bir sonraki sürümde (0.13) deneyim, Chrome tarayıcısında neredeyse aynı olacak.
Roger Wang

@Roger. Geciken yanıt için özür dileriz. Evet, devtools. Aşağıdaki sınırlamaların orada olduğunu gördüm, bunların bazıları devtools'un kendisinde olabilir: 1) Yeni pencerelerde hata ayıklama yapılmadı. 2) Uzaktan hata ayıklama hiç işe yaramadı. 3) Kesme noktalarını, izleme değişkenlerini ve açılan kaynakları hatırlayamama (her uygulama yeniden başlatıldığında, tüm ayarlar temizlenir)
Timothy C. Quinn

10

Bir süredir parantez kabuğu ile çalışıyorum, işte bulgularımdan bazıları:

  • parantez-kabuk öncelikle parantez IDE projesi altında bir kabuk olarak geliştirilmiştir, ancak proje herhangi bir web uygulamasını çalıştırabilir. Sadece kendi html sayfanıza yönlendirmeniz gerekir. Clint Berry sadece bunu yapmak için mükemmel bir öğretici yazdı: http://clintberry.com/2013/html5-desktop-apps-with-brackets-shell/
  • Proje Adobe tarafından destekleniyor ve çok fazla etkinliği var
  • Belgeler daha iyi olabilir

  • platform desteği Windows, Mac ve Linux'u desteklerler. Bir yükleyici paketi de oluşturulabilir. Sadece Win ve Mac'te test ettim, harika çalışıyor.

  • özellik desteği html5, css3, js. Html5 video kutunun dışında çalışmaz, ancak etkinleştirmek çok kolaydır (varsayılan olarak ffmpegsumo.dll yükleyiciye kopyalanmaz, kopyalamak için komut dosyasını değiştirirseniz çalışır).
  • yerel özellikler menü çubuğu, 'dosyayı aç', dosya sistemine erişim. Bunların hiçbirini kullanmıyorum, çünkü tek ihtiyacım olan düğüm süreci ile iletişim.
  • bir nodejs yerleşik genişletilebilirlik ve web uygulamanızdan düğüm ile iletişim kurabilirsiniz. Bu şekilde, dosya sistemine vb. Erişmek için düğümü kullanabilirsiniz.
  • mimari Proje, kabuk projesi ile içinde çalışan kendi web uygulamanız arasında hoş bir ayrım bırakarak iyi kurulmuş. Kendi uygulamanızda, parantez işlevselliğine (dosya sistemi erişimi, düğüm işlemi ile iletişim, ...) erişmenizi sağlayan genel bir appshell nesnesi kullanılabilir.

6
Beni Brackes kabuğundan uzak tutmamı sağlayan şey kendi genel bakışlarıydı. github.com/adobe/brackets-shell "Not: Köşeli ayraç kabuğu yalnızca Köşeli Ayraçlar projesi tarafından kullanılmak üzere korunur. Bazı insanlar kesinlikle diğer projeler için bir uygulama kabuğu olarak kullanma konusunda başarılı olmuş olsa da, herhangi bir resmi sağlamıyoruz. bunun için destek sağladık ve uygulama kabuğunu kolayca yeniden kullanılabilir hale getirmek için bir ton çalışma yapmadık. Çoğu kişi, tasarımla daha genel olan düğüm-webkit gibi bir projeyi kullanmayı daha kolay bulacaktır. "
John W. Clark

5

Dikkat edilmesi gereken bir şey (eğer önemsiyorsanız), Electron'un resmi olarak Windows Vista'yı desteklemediğidir. Vista'nın pazar payı OSX 10.9 ve 10.10'un yarısı kadar (her ikisi de Electron tarafından tamamen destekleniyor). Vista, 2017 yılına kadar Microsoft tarafından da destekleniyor.

NW.js, Vista ve OSX 10.9+ sürümlerinde sorunsuz çalışır. NW.js, Ubuntu, Debian, Zorin, Manjaro, Arch ve diğer Debian tabanlı Linux işletim sistemlerinde çalışır. Electron, ilgili platformlarda Ubuntu'ya özgü hataları düzeltmeyi PR'ları reddetti.

NW.js, XP'de de çalışır. Şu anda pazarın% 18'i hala XP'de. Dolayısıyla, masaüstü uygulamanız daha genel bir amaçsa veya hala XP'deki geç benimseyenlere erişmek istiyorsanız, Electron yalnızca Win 7 ve sonraki sürümleri desteklediği için muhtemelen NW.js (0.14.7) ile daha iyi durumdasınız.

NW.js 0.12.3 kullanıyorsanız, Debian tabanlı Linux işletim sistemlerinin Ubuntu ve Win XP + gibi OSX 10.6+ ve çok eski sürümlerini de destekleyebilirsiniz. Yine de bu eski sistemler için özel yapılar yapmanız ve daha yeni işletim sistemleri için NW.js'nin daha yeni sürümlerini kullanmanız önerilir.


1
Chrome, MS bunu yaptıktan sonra desteği durdurmadı - destek 2015'in sonuna kadar uzatıldı - chrome.blogspot.com/2015/04/…
Karol Klepacki

elektron (atom kabuğu) RHEL 6.6 ve altı sürümlerde çalışmaz ve kaynak kodu bu dağıtımlarda derlenemez.
Michael Kruglos


MAS sürümlerini oluşturmak için nw-builder kullanabilirsiniz . NW.js için de kol yapıları var .
Jaredcheeda
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.