Primeiro, não estou interessado em fazer isso profissionalmente. Sou desenvolvedor web, um colega de trabalho que recentemente partiu para o Spotify e disse que estará trabalhando principalmente em JavaScript para o aplicativo Spotify Desktop. Ele disse que usa o "Chrome frame" e tudo dentro é feito como um aplicativo da web (HTML / JS / CSS).
Como desenvolvedor da Web que nunca criou nada para o Desktop, essa é uma ótima notícia. Se eu puder usar as tecnologias, eu já as conheço e as implemento dentro de algum tipo de "quadro" e ainda assim consigo criar um Windows ou, melhor ainda, um aplicativo de plataforma cruzada.
Eu sei que não mencionei nada sobre o banco de dados, mas mesmo um aplicativo simples para o desktop Hello World com tecnologias da Web seria ótimo para começar.
Então, como alguém faz isso? Exatamente o que eu preciso / preciso saber?
Respostas:
Você pode começar com o Titanium for desktop dev. Além disso, você pode dar uma olhada no Chromium Embedded Framework . É basicamente um controle de navegador da Web baseado em cromo.
Ele está escrito em C ++ para que você possa fazer todo o material de baixo nível do sistema operacional desejado (Growl, ícones de bandeja, acesso a arquivos locais, portas COM etc.) no aplicativo de contêiner e, em seguida, toda a lógica e a interface do aplicativo em html / javascript. Permite interceptar qualquer solicitação http para servir recursos locais ou executar alguma ação personalizada. Por exemplo, uma solicitação para http://localapp.com/SetTrayIconState?state=active pode ser interceptada pelo contêiner e, em seguida, chamar a função C ++ para atualizar o ícone da bandeja.
Também permite criar funções que podem ser chamadas diretamente do JavaScript.
É muito difícil depurar JavaScript diretamente no CEF. Não há suporte para nada como o Firebug.
Você também pode tentar o AppJS.com (ajuda a criar aplicativos de desktop. Para Linux, Windows e Mac usando HTML, CSS e JavaScript)
Além disso, como apontado por @Clint, a equipe do brackets.io (Adobe) criou um shell incrível usando o Chromium Embedded Framework que facilita muito o início. É chamado de shell brackets: github.com/adobe/brackets-shell Saiba mais sobre isso aqui: clintberry.com/2013/html5-desktop-apps-with-brackets-shell
fonte
NW.js
(Anteriormente conhecido como node-webkit)
Eu sugeriria o NW.js se você estiver familiarizado com o Node ou com JavaScript.
Você pode encontrar o repositório NW.js. aqui e uma boa introdução ao NW.js. aqui . Se você gosta de aprender o Node.js, eu recomendaria este post com muitos bons links.
fonte
Atualizar
Minha resposta anterior está desatualizada. Hoje em dia você seria louco por não usar o Electron para isso. Muitos aplicativos populares de desktop foram desenvolvidos sobre ele.
fonte
NOTA: O AppJS foi descontinuado e não é mais recomendado.
Dê uma olhada em NW.js vez.
fonte
Parece que as soluções para aplicativos de desktop HTML / JS / CSS são escassas.
Uma solução que acabei de encontrar é o TideSDK: http://www.tidesdk.org/ , que parece muito promissor, olhando a documentação.
Você pode desenvolver com Python, PHP ou Ruby e empacotá-lo para Mac, Windows ou Linux.
fonte
Desculpe estourar sua bolha, mas o cliente de desktop Spotify é apenas um navegador baseado em Webkit . Obviamente, ele expõe funcionalidades adicionais específicas, mas só pode executar JS e renderizar HTML / CSS porque possui um mecanismo JS e um mecanismo de renderização Chromium. Isso não ajuda na codificação de um aplicativo Web do lado do cliente e na implantação em várias plataformas.
O que você procura é semelhante ao Sencha Touch - uma estrutura que permite que os aplicativos HTML5 sejam implantados nativamente em dispositivos iOS, Android e Blackberry. Ele basicamente atua como um intermediário entre determinadas chamadas de API e a funcionalidade específica do dispositivo disponível.
Não tenho experiência com appcelerator , mas parece que ele está fazendo exatamente isso - e recebe críticas muito favoráveis online. Você deve tentar (a menos que queira voltar a 1999 e rodar com o MS HTA ;)
fonte
Eu sei que há Fluid e Prism (existem outros, é o que eu costumava usar) que permitem carregar um site no que parece ser um aplicativo independente.
No Chrome, você pode criar atalhos da área de trabalho para sites. (você faz isso no Chrome, não pode / não deve empacotar isso com o aplicativo) O Chrome Frame é diferente:
Você precisaria ter algum tipo de invólucro como esse para o seu aplicativo da web e, em seguida, o resto são as tecnologias da web que você está acostumado. Você pode usar o armazenamento local HTML5 para armazenar dados enquanto o aplicativo estiver offline. Eu acho que você pode até trabalhar com SQLite.
Mas não sei como você acessaria recursos específicos do SO. O que eu descrevi acima tem as mesmas limitações que qualquer site "regular". Espero que isso lhe dê algum tipo de orientação sobre por onde começar.
fonte
Você pode criar aplicativos Javascript com o Adobe AIR… http://www.adobe.com/products/air.html
fonte
O CEF oferece muita flexibilidade e opções para personalização. Mas se a intenção é desenvolver rapidamente o node-webkit também é uma boa opção. O kit Node-Web também oferece a capacidade de chamar módulos de nó diretamente do DOM.
Se não houver módulos nativos para integrar o Node-Webkit, pode oferecer uma melhor quilometragem. Com os módulos nativos C / C ++ ou mesmo C #, é melhor com o CEF.
fonte