Teraz, gdy TideSDK jest faktycznie martwy, szukałem alternatywnych „opakowań” do uruchamiania aplikacji HTML / CSS / JS jako samodzielnych aplikacji komputerowych. Trzy możliwe opcje, z którymi się do tej pory spotkałem , to NW.js (dawniej node-webkit), nawias-powłoka i Electron (dawniej atom-powłoka).
Problem polega na tym, że nie wydaje się, aby było wystarczająco kompletne porównanie między tymi trzema pod względem zestawu funkcji, kompatybilności itp. Mam nadzieję, że zamienię to w mniej lub bardziej kanoniczny wątek dotyczący (obiektywnych) różnic między trzy, w szczególności dotyczące:
- Wsparcie platformy ; systemy operacyjne, zależności itp.
- Obsługa funkcji językowych , jeśli chodzi o HTML5, CSS3 i JavaScript. Pomyśl na przykład „Czy wideo HTML5 działa, a jeśli tak, jakie kodeki są dostępne?”
- Niestandardowe dodatkowe funkcje , takie jak ikony w zasobniku, wyskakujące powiadomienia i paski menu renderowane przez system operacyjny.
- Rozszerzalność ; na przykład. możliwość „podłączenia” kodu natywnego, rozmawiania z Node.js i tak dalej.
- Architektura ; w szczególności różnice architektoniczne, które wpływają na codzienne użytkowanie jako deweloper.
- Debugowanie ; zawiera narzędzia programistyczne, zgodność z powszechnie używanymi narzędziami, takimi jak
node-inspector
itp. - ... i tak dalej.
Jakie są obiektywne, techniczne różnice, które mają znaczenie przy dokonywaniu wyboru między nimi jako twórca aplikacji?
html
node-webkit
electron
brackets-shell
Sven Slootweg
źródło
źródło
Odpowiedzi:
Zrobiłem podobne badania około dwa miesiące temu i ostatecznie wybrałem pakiet node-webkit. Największą zaletą pakietu node-webkit są node.js i npm. Zarządzanie pakietami w npm jest naprawdę fajne, a node ma dobrze wykonany dostęp do systemu plików.
Nawiasy-powłoka wyglądały interesująco, ale poza ładnym IDE tak naprawdę nie rozumiałem, co sprawiło, że ten był tak dobry lub lepszy od pozostałych. Są bardzo jasne, że „Powłoka nawiasów jest utrzymywana tylko do użytku przez projekt Brackets”, a krzyki uciekają do mnie.
https://github.com/adobe/brackets-shell#overview
Wygląda na to, że powłoka atomowa jest ostatnio aktywna, ale wydaje się być bardzo podobna do nawiasów, ponieważ tak naprawdę są one piszą i edytorem / IDE, które akurat jest dołączone do środowiska wykonawczego webkit. Jest również zbudowany na bazie node.js. Ten ma tę wadę, że trudno jest wyszukiwać rzeczy w Internecie bez przypominania o chemii w szkole średniej.
Naprawdę nie chcę nowego edytora, a większość programistów ma już swojego ulubionego. W przypadku faktycznego tworzenia aplikacji działają one prawie tak samo i powinny, ponieważ wszystkie używają zestawu webkit. Zasadniczo piszesz 90-95% tego jak strona internetowa, a następnie zajmujesz się częściami natywnymi i niektórymi konfiguracjami.
Te rzeczy są prawdziwe dla wszystkich trzech z nich - działa na platformach Windows, Mac i Linux - HTML5, CSS3 i Javascript: ponieważ obsługują javascript, możesz pobrać i uruchomić prawie każdą bibliotekę / framework, który chcesz.
Dużym zastrzeżeniem w webkit jest obsługa kodeków. Zazwyczaj będziesz mieć problemy z niewolnymi kodekami wideo, chyba że przebudujesz dll / so, aby je obsługiwać. Na przykład dostarczony zestaw node-webkit nie odtwarza wideo mp4.
źródło
bracket-shell
Brackets, a Atom jest wbudowanyatom-shell
, ale możesz użyć dowolnego edytora lub wybranego środowiska IDE, aby stworzyć z nimi kod. Myślę, że to, czego chce OP, to bardziej techniczne różnice między 3. Byłoby miło zobaczyć coś takiego jak TodoMVC w trzech środowiskach podobnych do runtime.Gram z Atom-Shell przez ostatnie kilka dni i do tej pory to uwielbiam.
Najlepsze w tym jest to, że jest wspierany przez GitHub .. co powinno pozwolić ci osiedlić się na platformie na dłuższą metę, zwłaszcza jeśli zyskuje dużą popularność. Jest to również możliwe dzięki bezpośrednim ulepszeniom Node.js dzięki umowie z StrongLoop , który jest głównym współpracownikiem Node.js (twierdzą, że zatrudniają więcej głównych programistów Node.js niż jakakolwiek inna firma, nawet Joyent).
Uważam również, że rozpoczęcie pracy jest raczej wygodne. Zajęło mi około jednego dnia, zanim nauczyłem się struktury i uruchomiłem mój pierwszy test sprawdzający koncepcję. Bardzo fajny.
Bullet Points:
Aktualizacja (25.11.14): Nie znalazłem jeszcze przypadku użycia Atom-Shell w żadnym oficjalnym charakterze, ale użyłem go do zbudowania kilku małych aplikacji na własny użytek, z których najbardziej złożona jest aplikacja, która ściąga mój czas loguje się z mojego oprogramowania PM i tworzy faktury Paypal.
Moja opinia o platformie jest pozytywna. To jest niesamowite.
W mojej aplikacji do fakturowania czasu udało mi się wprowadzić przykładowy szablon pulpitu Bootstrap 3 oraz kilka modułów węzłów (bluebird, Paypal SDK, Teamwork PM Client), aby stworzyć lekko złożoną aplikację. Zajęło mi to kilka dni i dobrze spełnia swoje zadanie.
Naprawdę nie przychodzi mi do głowy nic negatywnego do powiedzenia na temat Atom-Shell, jego solidnego, stabilnego, szybkiego i łatwego do zakodowania kodu. Mam nadzieję, że to komuś pomoże.
źródło
Oprócz pełnej obsługi standardów internetowych, NW.js obsługuje listę niestandardowych funkcji tworzenia aplikacji natywnych, w tym:
Na wiki jest znacznie więcej do zobaczenia, w tym Menu, Tray itp.
źródło
Od jakiegoś czasu pracuję z powłoką zamków, oto niektóre z moich ustaleń:
Dokumentacja mogłaby być lepsza
wsparcie platformy Obsługują systemy Windows, Mac i Linux. Można również utworzyć pakiet instalatora. Testowałem go tylko na Win i Mac, działa świetnie.
źródło
Jedna rzecz, na którą należy zwrócić uwagę (jeśli Cię to obchodzi), to fakt, że Electron oficjalnie nie obsługuje systemu Windows Vista. Udział Visty w rynku jest mniej więcej w połowie między OSX 10.9 a 10.10 (oba są w pełni obsługiwane przez Electron). Vista jest nadal obsługiwana przez Microsoft do 2017 roku.
NW.js działa dobrze w Vista, a także OSX 10.9+. NW.js działa na systemach Ubuntu, Debian, Zorin, Manjaro, Arch i większości innych systemów operacyjnych Linux opartych na Debianie. Electron odmówił PR'owi naprawienia konkretnych błędów Ubuntu na ich platformie, co jest niepokojące.
NW.js działa również w XP. Obecnie 18% rynku jest nadal na XP. Więc jeśli jesteś aplikacją komputerową o bardziej ogólnym przeznaczeniu lub chcesz mieć dostęp do późnych użytkowników, którzy nadal korzystają z XP, prawdopodobnie lepiej będzie z NW.js (0.14.7), ponieważ Electron obsługuje tylko Win 7 i nowsze.
Jeśli używasz NW.js 0.12.3, możesz również obsługiwać OSX 10.6+ i bardzo stare wersje systemów operacyjnych Linux opartych na Debianie, takie jak Ubuntu i Win XP +. Zaleca się jednak tworzenie specjalnych kompilacji tylko dla starszych systemów i używanie nowszych wersji NW.js dla nowszych systemów operacyjnych.
źródło