Queremos desenvolver um aplicativo para diversas plataformas, como iOS, Windows 7 e Windows 8.
No entanto, o Windows 8 é uma plataforma realmente confusa! Como você tem:
- Aplicativos de desktop
- Desktop (aplicativos em tela cheia, como jogos)
- Aplicativos modernos
Pelo que podemos dizer, não há realmente nenhuma diferença entre um aplicativo de desktop e um aplicativo moderno além do estilo da interface do usuário... já que os aplicativos de desktop TAMBÉM funcionam em telas sensíveis ao toque!
Alguém pode esclarecer qual é a diferença real? Parece que os aplicativos modernos são apenas aplicativos executados no Windows RT e no Windows 8 e baixados da Windows Store (embora também tenhamos visto aplicativos modernos baixados apenas de sites).
Na verdade, estamos procurando usar o Adobe AIR para atingir as diferentes plataformas... mas aparentemente o AIR ainda não oferece suporte ao Windows 8 (Moderno)... mas como o AIR suporta o modo de tela cheia na área de trabalho, o que nos impede de fazer com que pareça como um aplicativo moderno?
Responder1
Os aplicativos modernos são desenvolvidos usando a API WinRT, enquanto o software de desktop é desenvolvido usando a API Win32.
A API WinRT é um conjunto reduzido de funções (ou seja, evita o acesso total ao sistema de arquivos, oferece recursos limitados de comunicação entre processos, evitando o carregamento de complementos e módulos externos, concede acesso limitado ao hardware, etc.) que pode ser executado nativamente no Windows 8/8.1 tanto no CPU ARM e x86, portanto funciona em máquinas Windows 8.x Pro e Windows 8.x RT - sim, a nomenclatura pode ser bastante confusa.
O ponto no WinRT é que o nível de acesso e personalização do Win32 (e as considerações de segurança inerentes a serem consideradas) nem sempre é necessário, ou seja, se eu programar um jogo casual, ou um wrapper do Facebook, ou uma calculadora, eu realmente não preciso/ desejo acesso completo ao sistema de arquivos e capacidade de interagir com o shell do Windows (menu de contexto, variáveis de ambiente...). Eu precisaria, por exemplo, de um gerenciador de arquivos, nem do acesso granular de baixo nível ao hardware que eu precisaria para um driver, nem da capacidade de carregar plug-ins externos de terceiros, como, por exemplo, navegadores da web.
É bastante semelhante aos Gadgets, mas com melhor segurança integrada - no entanto, uma avaliação de segurança real só pode/deve ser feita depois de ganhar popularidade no mundo: um ambiente sandbox/virtualizado pesado é certamente bom do ponto de vista da segurança, mas sem prata bullet existe para segurança, pense em todos os problemas de segurança que ocorreram nos últimos anos em Java/JVM e Flash (que foram construídos como tempos de execução em sandbox). A ideia é boa, mas de qualquer forma precisa se manter segura e atualizada como qualquer outra parte do sistema.