Apps nativas vs Web apps: Quais devo escolher?
Web apps ou apps nativas? Qual a melhor abordagem? Que argumentos favorecem cada uma? Haverá uma tendência? São complementares ou concorrentes? A pergunta faz sentido? E se só houver orçamento para uma?
Este é um tópico muito discutido por empreendedores, gestores, marketeers e equipas de software. Tentemos colocar alguma luz na questão.
Uma web app é uma aplicação desenvolvida inteiramente para a web, isto é, para correr num browser, ao passo que uma app nativa é instalável, tendo sido desenvolvida com uma plataforma/S.O. de destino (ex. Android, iOS, Windows). Ambas podem ter versões mobile e desktop, mas centremos a nossa análise no mobile. O Gmail e o Facebook são bons exemplos de uma abordagem plural, tendo web apps e apps nativas.
Devemos começar por analisar pragmaticamente as diferenças entre as duas realidades, sob o ponto de vista de diversos fatores. Tais fatores são amplamente conhecidos e alguns até óbvios, mas é importante refletir e ter uma opinião abrangente aquando de uma decisão deste género.
Em resumo:
- web apps são mais ubíquas, têm mais developers, mas têm menos integração no dispositivo
- apps nativas têm uma maior identidade, melhor UX mas eventuais alterações são menos ágeis.
Em desktop muitas apps migraram (algumas quase de vez) para a web (email, chat, editor de texto, até IDEs...); irá acontecer o mesmo em mobile? Parece não haver um padrão entre os dois mundos. A quantidade (na ordem das centenas de milhar) de apps nas respetivas lojas é um sinal do seu valor. Por outro lado, desenvolver uma só web app e ela estar disponível tendo apenas um browser tem um peso elevado na balança. Muitas vezes, o ideal é ter ambas as versões mas nem sempre isso é possível, ou pode nem fazer sentido.
Apps nativas ou web apps? Em conclusão, depende do caso. O ideal é ter ambas (complementares ou similares), mas se só puder apostar numa, deve analisar os fatores enumerados e concluir qual caso lhe trará mais valor no final. Para tal, pese as vantagens de cada caso e pense como podem potenciar o seu produto; analise as desvantagens e veja se o podem impedir de existir.
Parece haver mais desafios técnicos do lado web, embora a tendência seja isso se esbater. Feitas as contas, a pergunta parece ser: prefere suportar uma só plataforma muito bem ou muitas plataformas não tão bem (assumindo um esforço de desenvolvimento semelhante)?
Os recursos disponíveis são importantes, mas no “fim do dia”, quem “manda” é o utilizador e as necessidades do negócio. Uma coisa é certa: não há uma abordagem universal e definitiva e provavelmente não haverá tão cedo. Mesmo que houvesse uma tendência, seria muito improvável um dos tipos deixar de fazer sentido.
Nota: não estamos a falar de abordagens do tipo PhoneGap ou Xamarin (será deixado para outro artigo). Por outro lado, também não estamos a falar de websites (nesse caso a dúvida é se o site deve ser responsive ou haver um site alternativo, mas isso é outra discussão); estamos sim, a falar de web apps, também conhecidas por RIA (ex. o Google Docs, o Google Maps, o Trello). Uma RIA é uma aplicação que corre no browser, oferecendo capacidades gráficas ricas, semelhantes às de desktop. Apps para o browser que usem HTML, CSS e JavaScript também se enquadram (ex. apps para o Google Chrome).
Tem argumentos aqui não considerados? O que diz a sua experiência? O que prefere como utilizador?
Este artigo tem mais de um ano
Hibridas
exacto por enquanto hibridas são o melhor xD, tipo office, e dentro do office por exemplo onenote..
mas a questão é que as webapps e as “apps nativas” não são concorrentes, as web apps são a evolução das “apps nativas”
o problema é que as web apps são ou continuam a ser nativas de alguma plataforma..
e agora?
nas web apps, tirando os problemas de suporte cross-browser o sistema é um browser.. que está por todo o lado.
talvez possam vir a ser a evolução.. mas como ainda têm algumas desvantagens… continuam a ser concorrentes/complementares.
as apps híbridas merecem uma análise à parte. a verdade é que é importante discutir 1º os conceitos basilares e só depois os conceitos alternativos.
artigo muito bom, sem dúvida!
excelente trabalho.
App nativa – “A curto prazo, é pior, pois é preciso ir à loja, instalar (por vezes, colocar a palavra-chave) e esperar.” , a partir do iOS7 já não é assim, se puseres updates automaticos já não tens de ir a AppStore
Isso é muito bonito mas nem sempre funciona. Já tive várias vezes de abrir a AppStore para ver que tenho várias actualizações para fazer porque não foram feitas de forma automática.
No entanto, para uma actualização ou download do aplicativo que já tivesse sido instalado, não irá pedir password.
Essa situação não é incomum e tem a ver com as permissões que as apps usam e QUE TODOS DEVIAM LER e não lêm. Ou seja. quando uma app previamente autorizada muda nem que seja uma permissão, o utilizador deve dar o seu consentimento. O motivo é simples de entender e não deve requerer explicação certo?
Curiosamente fiquei a conhecer o pplware através da loja de aplicações do Windows, logo uma vantagem das apps será também um maior potencial de divulgação junto do público que uma aplicação web não tem, digo eu.
Esta analise não esta completa e tem pouca profundidade,
Por exemplo existem várias plataformas de desenvolvimento para apps nativas que permitem que um só Programador possa fazer uma só app e compilar a mesma para várias plataformas, por exemplo Marmalade,Unity, Coco2dx, Corona etc…
Segundo que eu saiba fazer um save e um f5 numa app web também é um deploy para um servidor web, certo?
desde quando é que o facto de : “Há menos programadores de apps nativas que para a web em geral. Pior: é preciso diferentes programadores por cada sistema que se queira abranger.” é um contra? para nós programadores até é melhor, menos concorrência!
“São destinados a um só sistema; se se quiser abranger mais, há que fazer um projeto quase do zero.” –> mais uma vez, errado..
Olá zezito,
obrigado pelo comentário. A análise foi pouco abrangente pois é um artigo introdutório.
Tentando responder: “permitem que um só Programador possa fazer uma só app e compilar a mesma…”
Deixei uma nota no fim a afirmar que esse tópico merece uma análise à parte. Não é assim tão linear e isso não é solução para tudo… não há soluções universais e tudo o que são frameworks e camadas trazem mais peso, mais aprendizagem, etc.
“Segundo que eu saiba fazer um save e um f5 numa app web também é um deploy para um servidor web, certo?”
certo. mas no caso das web apps os utilizadores não se apercebem disso. no caso das nativas, se não fizerem update não têm a última versão.
“é um contra? para nós programadores até é melhor, menos concorrência!”
concordo. podia ter explicado que isso é sob o ponto de vista dos gestores! 🙂
“São destinados a um só sistema; se se quiser abranger mais, há que fazer um projeto quase do zero.”
não é errado; apenas deixa essa análise para um artigo posterior.
Olá Luís,
Continuo a dizer que de hoje em dia com a framework certa consegues fazer aplicações nativas seguindo o leme “write once run everywhere”, na minha empresa utilizamos embarcadero Xe7, o mesmo código, mesmos UI correm tanto em iOs, android, osx, Windows e na próxima versão já terá suporte a winRT e Windos Phone. É uma exelente ferramenta de desenvolvimento e as compilações são nativas.
Uma framework ainda mais poderosa é o marmelade, que gera código nativo para todos as plataformas.
De uma forma geral é escolher a plataforma adequada a cada um, e a aprendizagem será apenas para a plataforma que for escolhida.
fico a aguarda então essa analise mais detalhada.
cumps
Olá zezito,
Vê esta resposta:
https://pplware.sapo.pt/internet/apps-nativas-vs-web-apps-quais-devo-escolher/comment-page-1/#comment-1157693
as frameworks que falaste são mais para jogos não? o que o artigo quer é comparar os conceitos de base; ninguém deve usar frameworks/bibliotecas/toolkits sem conhecer os conceitos subjacentes. Tal como ninguém deve ir para jQuery sem ser bom em JavaScript.
Quanto ao artigo sobre essas frameworks, não posso falar muito… não tenho a tua experiência nas mesmas. Poderias escrever algo a aprensentá-las? 🙂
Olá Luís,
Poder até podia mas apenas daquelas que já utilizei e que são
corona
Marmalade
Xe7
Unity
Não que não tenha brincado com as outras, phonegap com sencha, coco2dx etc.. mas trabalho practicos realizados foram com as 4 que referi.
seria interessante um artigo a comparar tudo isso:
– PhoneGap
– RAD Studio XE7
– Marmalade
– Xamarin
– Unity
– Coco2dx
– Corona
– (outros)
mas é necessário um conhecimento profundo em todas elas para fazer a merecida comparação.
– Qt
– IBM Worklight
Olá zezito,
Compilar uma aplicação para várias plataformas resulta em aplicações híbridas (não nativas), que não são o tema deste artigo.
Fanã,
O seu raciocínio não está totalmente correto, uma aplicação hibrida é uma aplicação Web que é compilada utilizando por exemplo phonegap e que depois pode ser submetida nas respectivas stores, ou seja é uma App web que pode ser instalada no dispositivo através de download das stores, mas a limitação de acesso ás funcionalidades do hardware mantem-se.
Um aplicação Nativa é aquela que é compilada utilizando os linkers nativos de cada plataforma, mesmo que seja desenvolvida numa framework que não a “oficial”, devido a essa compilação nativa não existe diferenças de velocidade na performance nem do acesso a funcionalidades de hardware.
veja por exemplo em
https://www.madewithmarmalade.com/products/marmalade-sdk
depende do compilador…posso criar uma linguagem mais simples para maioria do povo usar e depois usar uma plataforma intermedia (framework) que pegue nesse codigo simples e converta para codigo de mais baixo nivel para as diferentes plataformas. nao e’ facil mas existem.
é certo que maioria das frameworks existentes vao pelo caminho mais facil e geram código html5 que sao tudo menos apps nativas…mas nao concordo em nada com a tua afirmacao.
Para bens pelo artigo. Muito bom.
Eu pessoalmente entendo que as Webapp são o futuro, quanto mais não seja pelos baixos requisitos de hardware. (Qualquer dia a Ram tem tanto Mb como o disco)
Sou fã delas e onde exerço o meu domínio é essas apps que implemento.
+1
Então em dispositivos de baixa performance (e baixo custo) quanto menos nativas melhor e quanto mais webapps melhor. Basta o browser – e aí há muita escolha para bom desempenho sem grande peso no sistema – para se ter acesso ao fundamental.
tipo tem uma logica do caraças o teu argumento…baixo requisito de hardware???? cada vez mais sao mais potentes…baixos requisitos de hardware nunca foi problema para a evolucao do software. o windows é um exemplo..cada vez mais a exigir maquinas mais potentes ou jogos como é obvio e ninguem se queixa ou diz que o futuro dos jogos é voltar a fazer jogos como o “tetris” (que adorei..vai la o tempo) que ocupam menos recursos de hardware e que funcionam em qualquer aparelho…por essa logica ainda andávamos todos a programar em C ou assembler que sao linguagens muito mais rapidas do que a “caca” que se usa agora…é claro que o povo as cria as defende..mas daí a ser verdade que são melhores vai uma grande diferença.
Muito informativo. Gostei bastante. Parabéns
Parabéns Luís Soares, sou seguidor do pplware e acho que fazia falta um artigo deste género. Eu trabalho com apps nativas e como tal defendo o seu desenvolvimento. Vou aguardar por novos artigos.
Bom artigo!
Bom artigo, venha o seguimento…
o problema é a forma como alguns gestores e marketeers olham para as apps: como se fosse mais ou menos o mesmo que um site, mas com um mercado diferente que é preciso explorar e capitalizar. assim desenvolve-se a app com premissas erradas, sem visão, e o resultado não traduz nem 10% do potencial das apps nativas. faltava-lhes ler este artigo, mas também outros mais básicos, tipo ‘o que é uma app’, ‘o que é um site’, ‘o que é uma batata’, etc.
concordo a 100% maior parte dos gestores e responsáveis de marketing ainda não fazem ideia do verdadeiro potencial das apps nativas.
se conseguirem convencer alguém a fazer o download de uma app sua, ou seja um “simples” icon no dispositivo móvel…esse icon que pode permanecer no aparelho durante semanas ou anos que vai ser visto todos os dias…publicidade subliminar no seu melhor. isto sem ter que abrir a app…depois temos os “push ups” que podem lembrar de tempos a tempo os clientes das apps para alguma coisa que interesse…..aproveitar todos os sensores e potencialidades dos processadores que cada vez sao mais rapidos, optimizar as apps para os tablets, smartphones ou ambos, dependendo do publico alvo que se quer atingir.
das empresas que vejo a apostar nas webapps…maior parte vai por essa vertente simplemente pelo factor economico que é mais facil criar uma webapp do que aplicacoes nativas que existem mais plataformas que exigem mais know-how e normalmente mais mao de obra.
futuro? ambos existiram por mais algum tempo…mas que prefiro uma boa aplicacao nativa do que uma boa webapp prefiro…todos os dias e todas as horas….quando vou de ferias lá para fora, so uso aplicacoes nativas e que suportem modo offline (quase todas). no dia a dia…apps nativas de informacao cada vez estao melhores e sao muito superiores as suas versoes web e sao mais rapidas de aceder..clicar no icon e ja ta..nao preciso de abrir o browser…ir aos favoritos..ou se nao tao nos favoritos meter o endereco esperar que carregue…..zzzz…
discussão muito interessante; acho que havia aqui material para explorar mais um artigo 😀
claramente, e para não variar, quem gere não faz ideia o que anda a gerir… e acabam por fazer atrocidades.
não falar de Xamarin quando se faz esta comparação… é estranho… pois é algo que nasce para suprimir debilidades de cada uma…
Olá Tiago,
eu falei, dizendo que não iria falar no contexto de artigo. Além de ser pago, não o conheço assim tão bem. Mas sendo código gerado, não terá as desvantagens intrínsecas? e.g.: geração de código em excesso, a framework ter de “correr atrás do comboio” para suportar novidades na plataforma, dependência de uma nova entidade (neste caso, a MS), produtos menos “streamlined” para as plataformas finais, etc.
por acaso o Xamarin é muito bom, mas para muitos tem um preço proibitivo, porra que caro….
Não entendo muito bem a parte da comparação entre as apps nativas e as web apps. Um dos pontos mencionados no artigo por exemplo no que toca ao acesso ao hardware é que é mais limitado nas web apps. Tenho alguma experiência com a framework Sencha touch e o acesso ao hardware é facilmente conseguido com uso ao Phonegap.
O mesmo com o ponto da monetização. Uma web app é facilmente convertida com o phonegap e passa a ser reconhecida na playstore como uma app nativa.
Na minha opinião o único ponto negativo pode ser eventualmente a questão da performance. De resto tudo igual.
consegues ter acesso aos sensores dos dispositivos a partir da web app ou tens que a converter para ter acesso a eles?
Fiz um projecto recentemente sobre a vila de monsaraz na qual foi desenhada uma versão webapp para mobile. Podem experimentar em http://monsaraz360.pt .
Foi um projecto pensado para diferentes escalas, não de forma responsiva como tendência, mas desenhado para diferentes dispositivos.
Se acederem via ios podem colocar o icon no home screen
sinceramente, muito mal conseguido na minha modesta opinião. abrir o site num telemóvel é desastroso com o menu por cima do texto quando se faz scroll que ficam os dois imperceptíveis, com algumas das imagens de fundo (céu azul claro com letras brancas) a dificultar ainda mais a leitura. este ultimo ponto também negativo corrido num ipad embora menos evidente. consegui fazer mais coisas e mais facilmente no ipad do que no telemóvel. se foi um projecto pensado para os diferentes dispositivos devia ter o mesmo nível facilidade e utilidade em todos eles. este género de “web app” que de app vi pouco, é uma das razões porque prefiro apps nativas.
Parabéns Nuno,
A versão desktop esta Top.
Mas no entanto a versão mobile em android no meu s3 não passa do menu de seleção de linguagem.
Olá João, obrigado pelo review, entretanto nao entendo porque vês um menu e scroll na versão app. A versão webApp e mais limitada resumindo-se ao essencial com a possibilidade do visitante ver as informações em cada local. Fica retido o teu ponto negativo para em futuros projectos melhorar ou num próximo update de monsaraz.
Obrigado zezito, estranho, deverá ir para a página correspondente a língua selecionada.
Dentro do feedback que tenho tido, os visitantes teem utilizado a webapp de forma divertida no local e tem tido uma experiência positiva..
Pode falar do Qt também que sempre foi e vem a cada dia se tornando uma alternativa cada vez melhor!!!
Sim é muito porreiro, ainda não esta bem bem lá, mas já faltou mais…
Sem duvida que são as Apps Nativas.
Só desenvolve web Apps quem não sabe desenvolver Apps nativas.
As web apps têm vários problemas em relação as Apps nativas:
Vejam este link:
http://pt.slideshare.net/hperticarati/contexto-e-familiaridade-porque-apps-de-android-no-devem-ser-iguais-aos-de-iphone
Olá César..
nestas coisas evito ser extremista. Não há uma solução “killer”. Cada caso é um caso.
Vi a apresentação e é muito boa mesmo. vou usar para responder nos comentários acima. obrigado!
Olá Luis, boa tarde,
Não, eu não sou extremista. Sou objectivo e frontal, digo o que tenho a dizer sem contemplações.
Sim, a apresentação é excelente e mostra o quanto é absurdo criar web apps por isso disse que só cria web apps quem não sabe desenvolver aplicações nativas.
Cumprimentos
César Oliveira
César,
ainda bem que é assim (eu estava a falar de mim).
está então a afirmar que toda a tecnologia HTML5+Javascript+CSS3 não faz sentido para o fim de criar aplicações (as tais RIA)? Está a dizer que não vê nenhuma vantagem em ter uma web app?