2009-08-09 16 views
7

Planuję napisać Desktop Client dla Windows i Mac. Będzie zasilany technikami sieciowymi (HTML + JS). Dlatego powinien działać na silniku WebKit na pulpicie użytkownika.Ramy dla klienta (HTML + JS) Desktop

Niedawno zobaczyłem interesujące podejście do tego problemu: Appcelerator Uwielbiam jego podstawową koncepcję, ale nie chcę być zależny od ich usług. Zamiast tego chcę mieć pełną kontrolę nad programem WebKit, który ładuje moją aplikację.

Czy istnieją przyzwoite struktury WebKit o otwartym kodzie źródłowym do tworzenia aplikacji komputerowych? Zaletą są funkcje integracji pulpitu, takie jak wsparcie dla Growl i inne.

Pozdrawiam,

Stefan


Aktualizacja: Nie szukam Adobe Air ;-)

Odpowiedz

11

Oprócz Appceleratora, jestem świadomy dwóch platform GUI dla komputerów stacjonarnych, które mają komponent przeglądarki, który owija webkit: GTK + i Qt. Możesz zmusić komponent przeglądarki do wypełnienia okna aplikacji i napisać większość (lub całość) aplikacji w HTML + CSS. Jeśli podoba Ci się język Python lub jego znacząca biblioteka standardowa, możesz użyć powiązań Pythona pyQt lub pyGTK.

Bardziej "mięsistą" alternatywą dla Prism, jeśli jesteś gotów pójść z silnikiem Gecko, jest XULRunner (https://developer.mozilla.org/En/XULRunner). Podczas gdy Prism to zestaw lekkich wiązań do pulpitu dla aplikacji internetowej, XULRunner pozwala na zbudowanie kompletnej aplikacji takiej jak Firefox lub Thunderbird itp. Podczas gdy wiele aplikacji XULRunner jest napisanych z XUL, łatwo jest napisać całą aplikację za pomocą HTML/CSS wewnątrz pojedynczego komponentu XUL WebBrowser - a Twój javascript wciąż ma całą moc rodzimej aplikacji komputerowej.

Napisałem kilka aplikacji komputerowych za pomocą XULRunnera. Prawie wszystkie kody aplikacji to HTML/CSS/Javascript, ale zawarłem framework Python (przez pyXPCOM i pyXPCOMext) i napisałem cienką warstwę, która eksponuje niektóre funkcje Pythona na Javascript. Komponenty Mozilli dostarczane z XULRunnerem zapewniają przyzwoitą ilość funkcji za darmo, ale jeśli potrzebujesz więcej funkcjonalności lub pełnej biblioteki programistycznej, Python zrobi wszystko. Istnieją również powiązania z Javą. Lub, jeśli chcesz korzystać z bibliotek C lub C++, możesz zbudować XULRunner od zera.

Aktualizacja: Kilka rzeczy się zmieniło od czasu, kiedy pierwotnie napisałem wyżej w roku 2009. Po pierwsze, projekt Prism został usunięty z Mozilla Labs, a następnie odstawić całkowicie pod koniec 2011 roku (http://www.salsitasoft.com/2011/09/08/discontinuing-webrunner/). Jedną z alternatyw wartych obejrzenia jest https://github.com/rogerwang/node-webkit.

Aktualizacja z grudnia 2014: Kolejną nowością jest GitHub's Atom Shell.Wykorzystuje moduł "treści" Chromium, podobnie jak węzeł-webkit i Chromium Embedded Framework (i publikuje go jako samodzielną bibliotekę: https://github.com/brightray/libchromiumcontent). Jedną z głównych różnic w stosunku do webkita węzła jest to, że zamiast scalać pętlę zdarzeń węzła z pętlą zdarzeń Chromium, Atom uruchamia je zarówno w oddzielnych procesach, jak i wykorzystuje połączenie między-procesowych komunikatów synchronizacji i asynchronicznych do komunikacji między nimi.

Jeśli interesuje Cię osadzanie Chromium w aplikacji C++ lub .Net, istnieje również Awesomium.

+0

Wow dobry telefon na XULRunner. Warto zauważyć, że od czasu Firefoksa 3 [XULRunner jest dostarczany z Firefoksem] (https://developer.mozilla.org/en/XULRunner_tips#Using_Firefox_3_to_run_XULRunner_applications)! Po prostu utwórz skrypt, który używa pliku wykonywalnego Firefox do uruchomienia aplikacji XUL: 'path/to/firefox -app path/to/application.ini'. – styfle

1

Jeśli nie jesteś całkowicie zaangażowana w WebKit, przypominam coś o projekt, który pozwoli ci zrobić coś podobnego z silnikiem przeglądarki Firefox. Zasadniczo minimalistyczne okno wokół renderera gecko plus Gears i skrót na pulpicie dla aplikacji. W tej chwili nie można znaleźć łącza.

+0

Czy piszesz o http://prism.mozilla.com/? Testowałem to kilka miesięcy temu, ale wydaje mi się to zbyt podobne do przeglądarki. Hm, może powinienem zbudować coś niestandardowego. – Stefan

3

Platforma Appcelerator to open source, więc nie jesteś zależny od firmy - zawsze możesz zhackować kod dookoła siebie, jeśli chcesz. Jeśli chcesz mieć większą kontrolę, zawsze możesz po prostu hook directly into WebKit. Odpowiednik Gecko do AIR/Appcelerator Joel odnosi się prawdopodobnie do Mozilla Prism.

+0

Robert, dziękuję za linki. Bardzo interesujące. – Stefan