2009-08-09 13 views
7

Ho intenzione di scrivere un client desktop per Windows e Mac. Sarà alimentato da tecniche web (HTML + JS). Pertanto deve essere eseguito su un motore WebKit sul desktop dell'utente.Framework per (HTML + JS) Client desktop

Recentemente, ho visto un approccio interessante per questo problema: Appcelerator Amo il suo concetto di base, ma non voglio dipendere dai loro servizi. Invece voglio avere il pieno controllo del programma WebKit, che carica la mia app.

Esistono framework WebKit open source decenti per la creazione di app desktop? Le funzionalità di integrazione del desktop, come il supporto e il supporto di Growl, sono apprezzate.

saluti,

Stefan


Update: io non sono alla ricerca di Adobe Air ;-)

risposta

11

Oltre ad Appcelerator, sono a conoscenza di due framework di desktop gui che dispongono di un componente browser che racchiude il webkit: GTK + e Qt. Puoi fare in modo che il componente del browser riempia la finestra dell'applicazione e scrivi la maggior parte (o tutta) dell'applicazione in HTML + CSS. Se ti piace il linguaggio Python o è una libreria standard molto significativa, puoi usare i python pyQt o pyGTK.

Un'alternativa più "robusta" a Prism, se sei disposto ad andare con il motore Gecko, è XULRunner (https://developer.mozilla.org/En/XULRunner). Mentre Prism è un insieme di collegamenti leggeri al desktop per un'applicazione web, XULRunner ti permette di creare un'app completa come Firefox stesso o Thunderbird, ecc. Mentre molte applicazioni XULRunner sono scritte con XUL, è facile scrivere l'intera app usando HTML/CSS all'interno di un singolo componente WebBrowser XUL - e il tuo javascript ha ancora tutta la potenza di un'applicazione desktop nativa.

Ho scritto un paio di applicazioni desktop utilizzando XULRunner. Quasi tutto il codice delle applicazioni è HTML/CSS/Javascript, ma ho incluso il framework Python (tramite pyXPCOM e pyXPCOMext) e ho scritto un sottile strato che espone alcune funzionalità Python al Javascript. I componenti di Mozilla forniti con XULRunner ti offrono una discreta quantità di funzionalità gratuitamente, ma se ti senti di avere bisogno di più funzionalità o di una libreria di programmazione completa, Python farà il trucco. Ci sono anche collegamenti a Java. Oppure, se si desidera utilizzare librerie C o C++, è possibile creare XULRunner da zero.

Aggiornamento: Un paio di cose sono cambiate da quando ho originariamente scritto quanto sopra nel 2009. Per uno, il progetto Prisma è stata abbandonata da Mozilla Labs e successivamente interrotto del tutto alla fine del 2011 (http://www.salsitasoft.com/2011/09/08/discontinuing-webrunner/). Un'alternativa che vale la pena guardare è https://github.com/rogerwang/node-webkit.

Dec 2014 Aggiornamento: Un'altra opzione recente è Atom Shell di GitHub.Utilizza il modulo "contenuto" di Chromium, proprio come node-webkit e Chromium Embedded Framework (e lo pubblica come lib autonomo: https://github.com/brightray/libchromiumcontent). Una delle principali differenze rispetto a node-webkit è che invece di unire il ciclo degli eventi del nodo con il ciclo degli eventi di Chromium, Atom li avvia entrambi in processi separati e utilizza una combinazione di messaggi di inter-processo sync e asincrono per comunicare tra loro.

Se sei interessato a incorporare Chromium in un'applicazione C++ o .Net, c'è anche Awesomium.

+0

Wow buona chiamata su XULRunner. Potrebbe valere la pena sottolineare che da Firefox 3 [XULRunner viene fornito con Firefox] (https://developer.mozilla.org/en/XULRunner_tips#Using_Firefox_3_to_run_XULRunner_applications)! Basta creare uno script che usi l'eseguibile di Firefox per avviare la tua app XUL: 'percorso/a/firefox -app percorso/su/application.ini'. – styfle

1

Se non si è assolutamente impegnata a WebKit, ricordo qualcosa su un progetto per consentire di fare qualcosa di simile con il motore di Firefox. Fondamentalmente una finestra minimalista attorno al renderer di gecko più Gears e il collegamento sul desktop per la tua app. Al momento, non riesco a trovare un collegamento.

+0

Stai scrivendo su http://prism.mozilla.com/? L'ho provato alcuni mesi fa, ma mi sembra troppo simile a un browser. Hm, forse dovrei costruire qualcosa di personalizzato. – Stefan

3

La piattaforma Appcelerator è open source, quindi non sei dipendente dalla società: puoi sempre modificare il codice se vuoi. Se vuoi un maggiore controllo puoi sempre solo hook directly into WebKit. L'equivalente Gecko di AIR/Appcelerator a cui Joel fa riferimento è probabilmente Mozilla Prism.

+0

Robert, grazie per i link. Molto interessante. – Stefan