Pelo que entendi,
- HTML é uma linguagem de marcação, assim como o conteúdo de XAML, XIB e o que o Android usar e outras estruturas de desenvolvimento de UI nativas.
- JavaScript é uma linguagem de programação usada junto com ele para lidar com scripts do lado do cliente, que inclui itens como manipulação de eventos, validações do lado do cliente e tudo o mais que C #, Java, Objective-C ou C ++ fazem em várias estruturas.
- Existem padrões MVC / MVVM disponíveis em estruturas de formulário como Sencha, Angular etc.
- Temos localStorage na forma de armazenamento sqlite e key-value como outras estruturas e você tem especificação de API para quase tudo o que está faltando.
- Sempre que uma estrutura de interface do usuário nativa precisar renderizar a interface do usuário, ela precisará analisar uma marcação semelhante e renderizar a interface do usuário.
Pergunta break-down
- O que impede de fazer o mesmo no HTML e no próprio JS?
- Em vez de ter um controle da web ou navegador como uma camada intermediária, por que HTML (juntamente com CSS) e JS não podem ser executados da mesma maneira?
- Mesmo se houver uma camada, o tempo de execução .net e a JVM estão em outros casos em que C ++, C não está sendo usado.
- Vamos considerar o caso do Android, como o Dalvik, por que o Chromium não pode ser outra opção (junto com o dalvik e o NDK) em que o HTML faz a marcação do Android e o JavaScript é usado para fazer o Java?
Então a pergunta é:
Mesmo que as implementações atuais não sejam tão boas, mas teoricamente é possível fazer com que aplicativos baseados em HTML5 funcionem como outros aplicativos nativos, especialmente em dispositivos móveis?