Agora que o TideSDK está efetivamente morto, estive pesquisando 'wrappers' alternativos para executar aplicativos HTML / CSS / JS como aplicativos de desktop independentes. As três opções viáveis que encontrei até agora são o NW.js (anteriormente node-webkit), brackets-shell e Electron (anteriormente atom-shell).
O problema é que não parece haver uma comparação suficientemente completa entre os três em termos de conjunto de recursos, compatibilidade, etc. Espero transformar isso em uma discussão canônica mais ou menos sobre as diferenças (objetivas) entre os três, em particular no que diz respeito:
- Suporte de plataforma ; sistemas operacionais, dependências etc.
- Suporte a recursos de idiomas , no que diz respeito ao HTML5, CSS3 e JavaScript. Pense em coisas como "o vídeo HTML5 funciona e, se sim, quais codecs estão disponíveis?"
- Recursos extras não padrão , como ícones de bandeja, notificações pop-up e barras de menus renderizadas pelo sistema operacional.
- Extensibilidade ; por exemplo. capacidade de 'conectar' o código nativo, conversar com o Node.js e assim por diante.
- Arquitetura ; em particular as diferenças arquitetônicas que afetam o uso diário como desenvolvedor.
- Depuração ; ferramentas de desenvolvimento incluídas, compatibilidade com ferramentas mais usadas, como
node-inspector
etc. - ... e assim por diante.
Quais são as diferenças técnicas e objetivas que são importantes ao fazer uma escolha entre elas como desenvolvedor de aplicativos?
html
node-webkit
electron
brackets-shell
Sven Slootweg
fonte
fonte
Respostas:
Fiz pesquisas semelhantes há cerca de dois meses e, no final, fui com o node-webkit. A maior vantagem do node-webkit é o node.js e o npm. O gerenciamento de pacotes do npm é muito bom, e o nó fez um bom acesso ao sistema de arquivos.
Brackets-shell parecia interessante, mas, além de um bom IDE, eu realmente não entendi o que o tornou tão bom ou melhor que o resto. Eles são muito claros: "O brackets-shell é mantido apenas para uso pelo projeto Brackets", que grita para mim.
https://github.com/adobe/brackets-shell#overview
O Atom-shell parece estar ativo recentemente, mas parece muito com parênteses, na verdade eles estão realmente escrevendo e editando / IDE que, por acaso, estão anexados a um tempo de execução do webkit. Também é construído sobre o node.js. Este tem a desvantagem de ser difícil pesquisar coisas on-line sem ser lembrado da química do ensino médio.
Eu realmente não quero um novo editor, e a maioria dos programadores já tem o seu favorito. Para o desenvolvimento real do aplicativo, eles funcionam da mesma maneira e devem, pois todos usam o webkit. Você basicamente escreve de 90 a 95% como um site e depois lida com as partes nativas e algumas configurações.
Essas coisas são verdadeiras para todas as três plataformas - executadas no suporte à linguagem Windows, Mac e Linux - HTML5, CSS3 e Javascript: uma vez que executam javascript, você pode baixar e executar praticamente qualquer biblioteca / estrutura que desejar.
A grande ressalva no webkit é o suporte a codec. Normalmente, você terá problemas com codecs de vídeo não livres, a menos que você reconstrua a dll / so para suportá-los. Por exemplo, o node-webkit enviado não reproduz vídeo em mp4.
fonte
bracket-shell
e o Atomatom-shell
, mas você pode usar qualquer editor ou IDE de sua escolha para criar código com eles. Acho que o que o OP quer é mais sobre as diferenças técnicas entre os 3. Seria ótimo ver algo como TodoMVC nos três ambientes semelhantes ao tempo de execução.Eu tenho jogado com o Atom-Shell nos últimos dias e estou adorando até agora.
A melhor parte é que é apoiado pelo GitHub .. o que deve permitir que você se instale na plataforma a longo prazo, especialmente se obtiver muitos seguidores. Também é possível graças a melhorias diretas no Node.js., cortesia de um contrato com o StrongLoop , , que é uma das principais colaboradoras do Node.js. (eles afirmam empregar mais desenvolvedores principais do Node.js. do que qualquer outra empresa, até a Joyent).
Também achei bastante confortável começar. Levei cerca de um dia para aprender a estrutura e executar minha primeira prova de conceito. Muito legal.
Tópicos:
Atualização (25/11/14): ainda não encontrei o caso de uso do Atom-Shell em nenhuma capacidade oficial, mas usei-o para criar alguns aplicativos pequenos para meu próprio uso, sendo o mais complexo um aplicativo que puxa meu tempo registra no meu software PM e cria faturas Paypal.
Minha opinião sobre a plataforma permanece positiva. É bem legal.
No meu aplicativo de faturamento de tempo, trouxe com sucesso o Bootstrap 3 Modelo de exemplo de painel e alguns módulos de nó (bluebird, Paypal SDK, Teamwork PM Client) para criar um aplicativo levemente complexo. Demorei alguns dias e faz bem o seu trabalho.
Realmente não consigo pensar em nada negativo a dizer sobre o Atom-Shell, seu sólido, estável, rápido e fácil de codificar. Espero que isso ajude alguém.
fonte
Além de oferecer suporte completo aos padrões da Web, o NW.js. suporta uma lista de recursos não padrão para o desenvolvimento de aplicativos nativos, incluindo:
Há muito mais para ver no wiki, incluindo Menu, Bandeja, etc.
fonte
Estou trabalhando com shell-colchetes há algum tempo, aqui estão algumas das minhas descobertas:
A documentação poderia ser melhor
suporte à plataforma Eles suportam Windows, Mac e Linux. Um pacote de instalação também pode ser criado. Eu só testei no Win e Mac, funciona muito bem.
fonte
Uma coisa a observar (se você se importa), é que o Electron oficialmente não suporta o Windows Vista. A participação de mercado do Vista está aproximadamente na metade do caminho entre o OSX 10.9 e 10.10 (ambos totalmente suportados pela Electron). O Vista também ainda é suportado pela Microsoft até 2017.
O NW.js funciona bem no Vista, assim como no OSX 10.9+. O NW.js funciona no Ubuntu, Debian, Zorin, Manjaro, Arch e na maioria dos outros sistemas operacionais Linux baseados no Debian. A Electron recusou os PRs para corrigir bugs específicos do Ubuntu em sua plataforma, o que é preocupante.
O NW.js também funciona no XP. Atualmente, 18% do mercado ainda está no XP. Portanto, se seu aplicativo de desktop é de uso mais geral ou deseja ter acesso aos adotantes tardios ainda no XP, provavelmente você está melhor com o NW.js (0.14.7), pois o Electron suporta apenas o Windows 7 e superior.
Se você usa o NW.js 0.12.3, também pode suportar o OSX 10.6+ e versões muito antigas de sistemas operacionais Linux baseados no Debian como Ubuntu e Win XP +. É recomendável que você faça builds especiais apenas para esses sistemas legados e use as versões mais recentes do NW.js para sistemas operacionais mais recentes.
fonte