HTML5 and Mobile Apps – Is it the end of native apps? – Engenharia de Software



HTML5 and Mobile Apps – Is it the end of native apps? – Engenharia de Software

0 0


esof

Presentation

On Github jpdias / esof

HTML5 and Mobile Apps

Is it the end of native apps?

Engenharia de Software

João Pedro Dias - ei11137Pedro Rocha - ei11078Hugo Freixo - ei11086Maria João Araújo - ei09034

http://bit.ly/esofhtml

Tópicos

  • Aplicações:
    • HTML5
    • Nativas
    • Híbridas
  • Tendências de Mercado
  • Aplicações HTML5 vs Nativas
  • Frameworks de Desenvolvimento
  • Is it the end of native apps?

Aplicações Nativas

  • Desenvolvidas para plataformas específicas
  • Instaladas directamente no dispositivo do utilizador
  • Distribuídas através de lojas virtuais
    • Play Store, Windows Store, App Store, Blackberry App World, Firefox Marketplace, Tizen Store
As aplicações híbridas, neste caso, são iguais às aplicações nativas.

Aplicações HTML5

  • Correm em qualquer plataforma
  • Um browser moderno implementa a maioria dos standarts mais recentes do HTML5
Existem na web e são acedidas através do motor de browser do dispositivo móvel do utilizador “Write once, run anywhere”

Aplicações Híbridas

  • Desenvolvidas sobre uma base de código nativo
  • Utilizam o motor do browser do OS para correr HTML e processar JavaScript localmente, o que constitui a aplicação
As aplicações nativas são as mais complexas em termos de camadas de desenvolvimento, uma vez que tem que ter a aplicação nativa como contentor, as vistas Web, as vistas nativas e o acesso nativo ao hardware.

Tendências de mercado

  • Os utilizadores preferem aplicações nativas
    • Melhor performance, usabilidade e segurança
  • Os programadores e publishers preferem aplicações HTML5
    • Adaptação a qualquer OS e independência
As aplicações HTML5 não necessitam de aprovação nem de partilhar os lucros com as lojas distribuidoras.

Aplicações HTML5

vs Nativas

As vantagens das aplicações HTML5 com as das aplicações nativas quase que se complementam, o que faz com que as aplicações híbridas sejam, muitas vezes, o método ideal de desenvolvimento.

Experiêcia do utilizador

e desempenho

Aplicações Nativas: Mais rápidas e interactivas

Aplicações Web HTML5: Dependem de ligação à Internet e não tem o look and feel do OS

Consegue-se reparar num melhor integração da aplicação nativa com o OS: botões como geralmente tem em todas as aplicações, acesso à câmera do telemóvel, não é necessário botão de share, ou de voltar para a página anterior, uma vez que isso tudo está integrado com as opções do OS.
Aqui temos um exemplo de uma aplicação híbrida para tablet. Nota-se que apenas o conteúdo da aplicação é Web, e toda a parte da interface de botões e definições é feita em código nativo, para uma melhor performance e experiência do utilizador.

Monetização

Aplicações Nativas: Mais fáceis de rentabilizar, devido às lojas de aplicações

As Web Apps tem: - Dificuldade de descoberta por parte dos utilizadores - Limitações de suporte - Falta de modelos de anúncios - Hesitação pelos utilizadores - Inexistência de modelos de pagamento

Custo e facilidade

de desenvolvimento

Aplicações Nativas:

  • Requerem maior investimento e tempo de desenvolvimento
  • Utilizam linguagens diferentes para cada OS

Aplicações Web HTML5:

  • Menor investimento e implementação mais simples
  • Utilizam HTML5, CSS e JavaScript

As aplicações nativas tornam-se mais caras do que as HTML5, uma vez que é necessário desenvolver várias para cada plataforma, em vez de apenas uma, que funciona em todas as plataformas. Para além disso existe a questão da disponibilidade de programadores com experiência em certas linguagens. A oferta de programadores com conhecimentos de HTML5 é grande comparativamente com as linguagens das aplicações nativas. As aplicações híbridas requerem menor investimento do que as aplicações nativas, mas maior do que as HTML5.

Fragmentação

Aplicações Nativas: necessidade de suportar múltiplas versões do mesmo SO

Aplicações Web HTML5: necessitam de suportar diferentes browsers, tendo em conta as suas limitações

Existe um grande número de versões para Android, o que faz com que seja necessário ter em conta todas as limitações dessas versões ao desenvolver uma aplicação. Por exemplo, em iOS este problema não é tão pronunciado, mas continua a ser um problema. Nem todos os browsers suportam todas as funcionalidades do HTML5. Os browsers mais compatíveis actualmente são o Chrome e o Safari.

Actualizações e controlo de versões

Aplicações Nativas: a rapidez de actualização depende da loja de distribuição e do seu download

Aplicações Web HTML5: são actualizadas automaticamente

Utilização de funcionalidades do Hardware/SO

Aplicações Nativas:

  • Podem utilizar funcionalidades de hardware:
  • Acelerómetro, GPS, câmera, giroscópio...
Podem utilizar funcionalidades do SO:
  • Touch events, push notifications, integração com o ambiente do SO

Utilização de funcionalidades do Hardware/SO

Aplicações Web HTML5:

  • Muitas limitações na utilização de hardware e das funcionalidades do OS
  • Dependem da interface do browser

Segurança

Aplicações Web HTML5:

  • Facilidade de ataque
  • Cross-site scripting
  • Cookie manipulation
  • SQL injection
Dados em cache não encriptados As aplicações HTML5 não tem qualquer controlo de segurança, o que significa um maior risco em termos de segurança, diminuindo assim a confiança do utilizador, em detrimento das aplicações nativas. Cross-site scripting (XSS): é um dos tipo de vulnerabilidade mais comum das aplicações Web. Permite injectar o código do lado do cliente com páginas Web. Cookie Manipulation: uma vez que os cookies são guardados do lado do cliente, são vulneráveis a manipulações. SQL injection: é uma técnica de injecção de código, utilizada para atacar aplicações, nas quais são inseridas queries em SQL num local de entrada de dados para os executar (como por exemplo, aceder as dados de toda a base de dados da aplicação).

Segurança

Aplicações Nativas:

  • Mais difíceis de atacar
  • Mais fáceis de tornar seguras
  • Sujeitas a testes de segurança (Lojas de Applicações)
As aplicações nativas são sujeitas à aprovação nas lojas de distribuição, o que inclui testes de segurança, e promove assim a confiança do utilizador.

Frameworks de Desenvolvimento

Uma solução possivel é utilizar uma framework, onde se pograma uma vez e é gerado codigo para várias plantaformas.

Is it the end of native apps?

NO.

Pelo menos por agora.

If you want the best possible user experience and have the budget, develop multiple native applications. If you want an inexpensive cross-platform solution, develop a mobile web application.

Obrigado!