Debate: HTML5 ou Aplicações nativas…quem ganhará?
É hoje comum ouvir-se dizer que se uma aplicação não for direcionada para a WEB está rendida ao fracasso. No entanto, por outro lado, assiste-se a um crescimento exponencial do numero de aplicações nas mais diversas lojas de aplicações online. É certo que muitas dessas aplicações nativas recorrem a webservices mas não é por isso que deixam de ser aplicações nativas, obrigando a que os utilizadores a procederem à sua instalação nos seus dispositivos. HTML5 ou Aplicações nativas…qual será o caminho das aplicações no futuro?
HTML5
A missão do HTML 5 é padronizar a semântica na WEB, facilitando a integração do código entre browsers diferentes, ou seja, é necessário um standard para todas as linguagens Web. A versão 5 do HTML tende a suprimir algumas necessidades e também actualizar pontos antigos do HTML 4. Esta nova versão do HyperText Markup Language foi introduzida em Janeiro de 2011 e desde então que tem vindo a mostrar o seu grande potencial na construção de uma nova geração de aplicações web, apesar de ainda estar numa fase de expansão e exploração, já mostrou grandes qualidades e grande potencial para num amanha poder substituir de vez o Flash e, ou outras linguagens de programação.
Aplicações nativas
A cada dia que passa, as lojas de aplicações online ganham cada vez mais aplicações nativas que permitem aos utilizadores fazer quase tudo a partir dos seus dispositivos móveis e não só. A Apple Store e Google Play contam já com mais de 700.000 aplicações nativas e a Windows Store conta já com cerca de 20.000 aplicações.
HTML5 vs Aplicações nativas
Alguns pontos para debate:
- Distribuição – As aplicações nativas são (actualmente) distribuídas através de lojas online enquanto as aplicações/serviços desenvolvidos em HTML5 são disponibilizados através de um simples link e sob as regras da WEB, sem qualquer restrição a nível de plataforma, equipamento, etc;
- Monetização: apps nativas têm opções de compra (funcionalidade das lojas online). Aplicações em HTML5 tenderão a ser monetizadas mais essencialmente através da publicidade online. De referir também que como as aplicações HTML5 são multiplataforma, então estas tendem a ser mais baratas do ponto de vista do desenvolvimento (funcionam em todas as plataformas);
- Funcionalidade: Actualmente as aplicações nativas conseguem ter mais funcionalidades que as aplicações desenvolvidas em HTML5.
- Plataformas e efeitos da conectividade a Internet: Se por um lado as aplicações nativas estão (em alguns casos) dependentes da plataforma, as aplicações desenvolvidas em HTML5 estão dependentes essencialmente da conectividade à Internet.
Como base nos pontos apresentados, gostaríamos de saber qual a vossa opinião relativamente ao futuro das aplicações. Será que o HTML5 será a tecnologia perfeita? Será que as aplicações móveis continuam e continuaram a permitir melhor produtividade….o melhor será mesmo uma abordagem híbrida?? A questão é muito simples:
HTML5 ou Aplicações nativas…quem ganhará?
Este artigo tem mais de um ano
Supostamente a aplicação nativa do Facebook para android é feita com HTML5… Falta aí a mistura das duas vertentes.
É o modo hibrido…está no final 🙂
Quem usa o facebook no iOS. Viu as melhorias que se obteve quando se passou de HTML5 para Objective-C.
Mas coloca-se a questão, isso é defeito da Linguagem HTML5 ou dos programadores? 😉
Experimenta fazer algo mais profissional em html5.. até te benzes..
A app do facebook para android é a uma bosta. Talvez a pior app alguma vez feita para android. Desconheço se é html5 ou nao, mas que é uma app mto mal feita lá isso é… aquilo deve ser codigo e mais codigo e mais codigo sem fim…
Para mobile é apps nativas sem duvida. Agora desktop é HTML5 mas é essa a minha opinião 😛
Prefiro as aplicações via browser somente para uso profissional em coisas específicas. São mais práticas, também não necessitam de funções extras (que podem ser usadas ou não). Assim, podem ser feitas sob medida para a necessidade e são mais fáceis de criar e manter. Para uso pessoal ou profissional genérico, com certeza, na minha opinião, as nativas adequam-se muito melhor, pois acabam por serem mais completas e entregarem uma melhor experiência.
eu prefiro apps nativas sem duvida.
Depende da solução pretendia, autonomia, integração. existem muitas variaveis. Não pode, nem deve ser assim tão rigido.
Tudo depende do objectivo das aplicações e em que situação são usadas!
Neste momento para a maioria dos casos faz mais sentido aplicações nativas.
E há várias outras razões para optar por nativo! Performance (vai além da funcionalidade) e segurança parecem-me ser bastante relevantes
As aplicações nativas serão sempre mais rápidas enquanto HTML5 tem a vantagem de rodar em qualquer sistema operativo
Para alem de serem mais rapidas consegues implementar funcionalidades numa aplicação nativa que com html5 não consegues… ou podes ate conseguir mas de uma forma muito mais complicada.
Actualizem-se por favor… já existem milhares de aplicações nativas que são feitas em “HTML5” (Javascript). Ver Phonegap ou Titanium.
Ou seja, HTML5 já ganhou. Next.
A questão é essa:
– HTML5
– APP nativas
– Hibridas (HTML5 + APPs nativas)
Não precisas de ser assim tão obtuso, um excelente exemplo de como o HTML5 ainda tem um longo caminho para percorrer foi o facto do facebook ter recuado e ter lançado a app para iOS em objective-C, e o resultado foi que ficou muito mais rapido que a versão em HTML5.
Performance não foi um dos pontos levantados por este artigo. Todos os outros estão obsoletos ou errados.
A performance tem a ver com a jovem idade dos engines dos browsers nativos e alguns entraves levantados (onde já vimos isto) por questões proprietárias. Mas essa diferença vai-se esbatendo muito depressa…
em termos de performance o HTML5/javascript nunca irá alcançar o código nativo pela própria natureza da linguagem.
Se até o JAVA com os anos que tem não consegue essa proeza como é que podes esperar uma coisa dessas duma linguagem que não foi desenhada para correr programas complexos e nem tem acesso directo ao processador?
Como nota, o tempo de compilação de uma linguagem virtual, considerando os processadores actuais, já se tornou bastante irrelevante. Se tirarmos aplicações de alto rendimento da equação, como jogos e bases de dados, não há qualquer motivo para se utilizar linguagens nativas tirando raríssimas frameworks.
Ambientes virtuais, como o .Net, já atingiram um nível de maturidade fantástico em que os ganhos a nível de dinamismo,gestão de memória, etc superam largamente o pouco ganho de desempenho que se teria com a utilização de uma linguagem de compilação específica.
Infelizmente o Java, apesar de largamente suportado pela comunidade open source, não tem atingido os parâmetros de performance que eu gostaria.
Não vais comparar o javascript com o .Net!!!!???
O javascript não foi feito para esse tipo de programas, e torna-se uma dor de cabeça criar código mais complexo dadas as suas limitações. A própria Microsoft viu-se obrigada a criar uma espécie de extensão para o Javascript para poder ter algo minimamente comparável às restantes linguagens em termos de programação.
@Eduardo
Meu caro, tu é que disseste o seguinte “Se até o JAVA com os anos que tem não consegue essa proeza…”. Eu simplesmente sublinhei que não é bem assim.
Não estou a comparar Javascript com Java nem .NET. Não imagines aquilo que não foi dito! Se não sabes interpretar um simples texto, perfeitamente bem pontuado, o problema não é meu.
Acho que fui bem claro ao indicar que dizeres que Java, uma linguagem sobre VM, não consegue a proeza de se equiparar, a nível de performance, a linguagens de mais baixo nível está errado e apenas não o consegue porque não quer têm sido efectuados os esforços necessários, uma vez que tens .NET que simplesmente consegue performances extremamente próximas de código nativo (se retirar-mos o reduzidíssimo tempo de JIT, a performance é exactamente a mesma).
Como nota, também se tomam como aplicações nativas Android, aplicações desenvolvidas em Java que, tal como no PC, executam sobre uma VM, neste caso desenvolvida pela Google.
Enfim, tenta-se ser claro e estruturar bem as frases, mas aparentemente a atenção é pouca neste mundo da Internet.
Quando tiveres a tenra idade de um dia te aventurares a programar a tua primeira aplicação para telemóvel, depois falamos.
Não confundas alhos com bugalhos.
Em Titanium, por exemplo, crias as apps em javascript mas são compiladas com código nativo e processadas sem qualquer tipo de HTML5 ou javascript no fim.
Nesses casos, as únicas limitações são as limitações que o framework permitir compilar em código nativo.
A discussão aqui é como devem as apps correr directamente nos dispositivos mobile. Em HTML5 ou nativamente.
Sem duvida apps nativas, aliás até o próprio fundador do Facebook (Mark Zuckerberg) disse que o Facebook apostar muito no HTML5 nos dispositivos móveis (http://techcrunch.com/2012/09/11/mark-zuckerberg-our-biggest-mistake-with-mobile-was-betting-too-much-on-html5/).
Enquanto as apps feitas em HTML5 podem ser mais compatíveis e faceis de programar para várias plataformas, a sua performance, versatibilidade e funcionalidade nunca pode ser comparada a apps nativas. As apps nativas são feitas especialmente para aquele sistema, desenhadas para funcionar naquele sistema e correm directamente em cima do sistema, as apps “in browser” estão em cima de 2 layers (browser e sistema), logo a sua performance vai ficar muito aquem das apps nativas e nunca conseguirão ser tão elaboradas como uma app nativa.
edit: Sem duvida apps nativas, aliás até o próprio fundador do Facebook (Mark Zuckerberg) disse que “foi um erro” o Facebook apostar muito no HTML5 nos dispositivos móveis
adicionando as apps hibridas: Mesmo sendo uma mistura das duas a sua performance é muito aquem das nativas, visto que o que têm é basicamente um iframe a redireccionar para o site.
Como developer tento estar a par disto, almost on daily basis. A melhor frase que li sobre este assunto foi: “se o seu negócio depende disso, go native”.
+1
Para quem tiver uma ideia para uma App, como deve proceder???
É preciso registar a ideia e a marca nalgum sítio, para não permitir cópias descaradas?
Qual é o melhor sitio para se procurar um programador? E como nos podemos assegurar de que não nos roubam o projecto?
Existe algum site para apoiar projectos, tipo incubadora ? (dar uma percentagem fixa dos lucros, para poder apoiar outros novos projectos…)
Acho que é um tema actual e eu tenho algumas ideias, falta é capital e capacidades de programação… Não me importava nada de brevemente ver aqui algo sobre o assunto :p
HTML 5 I guess…
Custos de desenvolvimento/manuntenção muito menores (apenas uma plataforma);
Muito mais fácil a distribuição, um simples link;
Monetização simples também, loginn pago nos sites, publicidade, freemium;
Quanto às funcionalidades, é uma questão de tempo até serem as mesmas ou quase.
Quanto à internet: qual é a app nativa que não usa internet? Só se forem funcionalidades básicas, quanto é necessário algum tipo de Business Intelligence todos os dados necessário estão sempre na net.
Vejam por favor o caso da empresa PORTUGUESA OutSystems. Com um sucesso estrondoso no estrangeiro (okay eles não usam HTML5) desenvolvem plataformas/apps para PC,Mac,Mobile,etc tudo com a mesma plataforma e tudo acedendo a um simpels link. Simples, poderoso e tremendamente eficaz.
Aliás, já faziam uma “publicidadezinha” à OutSystems não?
É uma empresa tecnológica que revolucionou o mercado, é portuguesa, está recheada de sucessos, e tem um produto simplesmente genial!
Até la tenho colocas a trabalhar. A ver se fazemos um artigo case of study 🙂
De forma resumida as apps nativas só ganham as HTML5/javascript na questão da performance.
Quanto ao artigo, dizer que as apps nativas têm mais funcionalidades que as html5 é errado. Graças à tecnologia phonegap pode-se “empacotar” a app html5 numa app nativa, conseguindo tirar partido das mesmas funcionalidades como se de uma app nativa se tratasse, como aceder à câmara, sensores, GPS, etc..
Página oficial phonegap: http://phonegap.com/
Quando refiro nativa é nativa…sem HTML5. Quando refiro hibrida aí sim: Nativa + HTML5
As apps nativas ganham em muito mais do que performance. O HTML5 ainda não conseguio atingir feature-parity com o Flash, quanto mais com apps nativas…
Apps nativas são as melhores
Era uma vez o DOS, o Win3.1 e as aplicações nativas. Depois a coisa avançou e veio a net em todos o lado, e veio o Google e as aplicações Web…
Agora veio o Symbian, depois o iOS e o Android e o WinMobile e as App na Store. Pode ser que um dia passe a haver net gratuita em todo o lado…
A história repete-se! 🙂
Resumindo apenas acho que a necessidade de Apps nativas diminui conforme aumenta a dimensão de dispositivo e/ou aumenta a disponibilidade de rede.
Continuamos a necessitar de Apps nativas sim? Assim como num PC. Mas cada vez mais queremos tudo na net, numa Cloud etc.
Acho que estás a confundir o Windows Mobile com o Windows Phone. O Windows Mobile é desses todos o mais antigo, é tão antigo que na altura nem se usava a palavra smartphone.
Penso que nenhuma ganharà, cada uma terà seu espaço, jà que na minha opiniao complementam-se. Para aplicações especificas ou com necessidades de funções do telemovel, como por exemplo, openvpn, teamviewer, etc.. nao me parece que uma pagina HTML5 possa um dia incorporar essas funcionalidades. Bem como acho ridiculo criar app’s nativa para sites noticiosos/d’informaçao por exemplo, o Publico, o expresso tem pessimas aplicaçoes daí recuso-me a usar estas embora aprecio as paginas mobiles destas. Tambem me recuso a instalar apps de redes sociais (ex. FB e Linkedin) uso somente paginas mobile destas.
Para quando a pagina mobile pplware ? Cumps.
O HTML 5 ainda está meio “verde” e em termos de performance ainda está a uma distância bastante considerável das aplicações nativas.
Enquanto houver necessidade de optimizar a performance de uma app/jogo, nunca deixará de haver aplicações nativas. Um raytracer sério por exemplo nunca será implementado em javascript.
Mais tarde ou mais cedo a especificação HTML5 também ficará “outdated” e vai ser necessário outro standard qualquer, por isso se calhar a pergunta deveria ser mencionar “web-hosted” em vez de “html5”.
A médio prazo, para jogos, tenho poucas dúvidas que quem vai ganhar são soluções baseadas em plugins do browser (Unity3D), e não o HTML5.
É preciso não esquecer que hoje em dia, aplicações em javascript/html5 já quase que podem ser tecnicamente consideradas nativas uma vez que o código é interpretado e compilado “Just-In-Time” para código nativo.
Mais cedo do que tarde a pergunta vai ser “aplicações web-hosted ou local-hosted?” juntamente com a conversa toda relacionada com a privacidade etc.
Para aplicações simples, híbridas, sem duvida… Permite abranger um numero maior de dispositivos de uma só vez, apenas criando um “wrapper” para cada dispositivo, e permite a monetização através das application stores. Para aplicações mais complexas é preferível criar aplicações nativas.
Uma vez que falamos de desenvolvimento multi-plataforma, existe soluções que geram código nativo em iOS/Android (ex: Xamarin MonoTouch e MonoAndroid).
Relativamente ao pos/con HTML5, como disse ao Rui Peres, depende do negócio.
Sei de casos em que para usar os recursos do terminal, as plataformas Phonegap & inc não tem API, ou são relativamente fracas. Nesses casos, sem dúvida native.
Esqueci-me de dizer a desvantagem do HTML5 como plataforma, que “viola” as guidelines de design de cada plataforma.
Botões de iOS num WP7 é feio 🙁
Discordo com algumas coisas: distribuição e monetização tambem se faz em apps em html5 com recurso a frameworks tipo titanium sdk ou phonegap, aliás tenho as duas (uma delas á venda) no google play e apple store.
Durante algum tempo da minha vida como mobile developer programei essencialmente em html5 e javascript usando estas duas frameworks e as vantagens sao principalmente portabilidade, um unico codigo para todas as plataformas, as desvantagens sao principalmente o desempenho e não tens acesso a algumas coisas como por exemplo criar widgets.
Recentemente aprendi Objective-C e voltei a programar em Java.
E o que faço agora é html5 para aplicaçoes que nao precise de muito desempenho, que tenha pouco tempo e que precise de multiplataforma, ou que queira apps do genero webapp.
De resto prefiro nativo
Simplificando, depende do público e dispositivos alvo.
Complicando um pouco o HTML 5 está a léguas das apps nativas, toda gente diz que é o futuro, o que é certo é que já se diz isso há anos e vai-se continuar a dizer por um bom tempo.
Quando se começar a dizer que html5 é ideal para o presente aí sim, ainda assim as apps nativas vão estar à frente mesmo num futuro distante.
Como ja foi referido tb creio que todas terao o seu espaço.
Eu de tantas dores de cabeça que tive por causa dos browsers passei para o JavaFX. Para aplicacoes empresarias pode-se dizer que temos o melhor dos dois mundos
Olá Pedro.
Gostava de partilhar algumas informações que tenho sobre este assunto.
A parte da dependência da conectividade das aplicações HTML 5, já não é verdade um dos exemplos é o Google Docs offline.
Em relação à monetização também é possível comprar webApps na Chrome Web Store e algumas delas são pagas, é só uma questão de escolha.
A maior parte das aplicações construídas para a plataforma mobile, pelo que me parece era perfeitamente possível portá-las para html5, pois a principal diferença cada vez menos é a performance, apenas aquelas que apresentam comunicação com certos sensores poderiam ter mais dificuldades, a menos que fossem hibridas ou tivessem acesso a um cliente nativo o qual acredito estar disponível também no futuro.
No caso do Android, a integração das aplicações com o sistema operativo é fantástica, graças a implementação de Intents, de qualquer forma o Google está a providenciar isso também para a web com webIntents.
Para além dessa diferença existe, a performance, mas à medida que os equipamentos começam a ser mais potentes, isso nota-se cada vez menos.
Por estas razões, acredito que o futuro sim seja HTML 5 a diferença estará, mais na escolha do ecossistema e na integração que ele permite às aplicações do que no formato das aplicações.
Deixo aqui apenas mais um apontamento a considerar, no meio de todos estes pontos enunciados faltou a aceitação pelo público. Enquanto falamos de aplicações para não profissional/empresarial a maior parte das pessoas vão continuar a olhar muito para a relação custo/benefícios.
Mas no sector empresarial além de se considerar esta relação continua a existir ainda muita desconfiança em relação às aplicações em HTML. Esta desconfiança aumenta ainda mais se o motor e/ou a base de dados estiverem alojados fora das instalações da empresa.
Trabalhei 6 anos numa empresa de software onde produzíamos um ERP, já muito bom, todo ele WEB – HTML, Javascript, CSS e nada mais. E um dos maiores entraves, apesar do cliente ficar nas suas instalações com o servidor Web/BD, era a desconfiança em relação à segurança e às capacidades de uma aplicação neste formato.
As mentalides mudam mas raramente se consegue determinar qual será o ritmo dessa mudança e a proliferação das aplicações HTML, pelo menos no sector empresarial, vai depender muito deste factor.
A desconfiança será que é porque correm no browser?
Se for, a solução pode passar por packeged Web Apps.
http://developer.chrome.com/extensions/apps.html
Tenho noção que sim, que as empresas desconfiam de apps a correr no browser, porque associam (browser, internet, informação acessível ao mundo). Enfim…
O sector empresarial está a optar imenso por aplicações Web, principalmente em redes internas. São raríssimas as empresas que não têm pelo menos uma aplicação interna assente em servidores Web.
Com a proliferação de SOA e da crescente necessidade de integrar diversos sistemas, as empresas têm aberto a porta a soluções Web, seja pela simplificação de actualizações, distribuição e sincronização de dados, seja pelas crescentes possibilidades que o HTML5/CSS3 têm vindo a oferecer.
Com excepção de aplicações de alta performance ou que requeiram funcionalidades impossíveis (ou de grande dificuldade) de implementar em aplicações Web, com infraestruturas de boa qualidade, não há motivo para não se utilizar uma aplicação Web.
Em relação à segurança, posso dizer que é rara a empresa que não utilize aplicações Web para gestão de funcionalidades criticas, por exemplo facturação, seja através de aplicações proprietárias ou à medida.
Nesta última parte, no exemplo da facturação, sou obrigado a discordar, pelo menos em relação ao mercado Português. Veja-se quais são as aplicações de facturação utilizadas em Portugal e quota de mercado, quase tudo aplicações para Windows. Muitas oferecem uma variante ou complemento Web que na maior parte das vezes nem possui todas as funcionalidades da variante Windows. E depois existem ainda muitas empresas que internamente usam apenas os módulos Windows disponibilizando os módulos Web apenas para alguns colaboradores por questões de mobilidade.
Oh, mas isso são os “coitadinhos” que tu vês nos cafés e restaurantes e etc’s, ou com softwares mais antigos (se funciona, para quê mexer?)
Para uma empresa mais exigente, a nível de software POS, gestão de stocks, etc. etc. etc., prefere tudo hoje app’s web
PS: Basta o facto de se um computador ou tablet ou smartphone avaria, basta comprar/arranjar outro, e em segundos, tem-se o sistema instalado para convencer qualquer um!
Se falarmos no futuro, não tenho dúvidas que será o HTML5+… Ainda esta semana tive de fazer um protótipo rápido para uma aplicação com o objetivo de capturar texto, uma fotografia, desenhar e eliminar caminhos, e construir uma imagem que era enviada para um servidor. Em algumas horas consegui desenvolver uma aplicação que funciona no browser com recurso ao HTML5, canvas, video, usermedia API e javascript para ligar tudo… Simplesmente fantástico! Fiquei maravilhado com que já se consegue fazer numa janela de browser e sem recorrer a qualquer plugin.
Agora estou a trabalhar no projeto com nodejs e estou a utilizar o Cloud9 (https://c9.io/). O IDE funciona inteiramente no browser e é simplesmente fantástico… Funciona exatamente como uma aplicação e demonstra bem as potencialidades da Web…
Não sei se alguém referiu, mas temos de ter em conta que as aplicações para windows 8 podem ser desenvolvidas em HTML5 Javascript e CSS3, acho então que podemos concluir que o HTML5 vai ser uma plataforma de desenvolvimento com muito futuro. Sempre acreditei na Microsoft e até agora não me tenho arrependido.
Penso que ambos vão co-existir.
Tal como hoje existe o HTML e aplicações nativas, no futuro irá existir HTML 5 e aplicações nativas. A escolha de uma ou outra tende a ver com os requisitos da própria aplicação.
Ambos têm vantagens e desvantagens.
O HTML é mais difícil de desenvolver porque normalmente cada browser tem as suas especificidades, tal como é hoje.
O HTML será sempre mais lento pois é interpretado por um browser e não pelo OS ou VM.
O HTML tem uma grande vantagem que não requer instalação no pc local e pode ser acedido de qualquer lado. A própria manutenção é mais simples.