{"id":1848,"date":"2017-08-18T17:15:10","date_gmt":"2017-08-18T20:15:10","guid":{"rendered":"http:\/\/www.milfont.org\/tech\/2017\/08\/18\/progressive-web-apps-a-palavra-chave-e-progressive-nao-app-ou-web\/"},"modified":"2017-08-18T17:15:10","modified_gmt":"2017-08-18T20:15:10","slug":"progressive-web-apps-a-palavra-chave-e-progressive-nao-app-ou-web","status":"publish","type":"post","link":"https:\/\/www.milfont.org\/tech\/2017\/08\/18\/progressive-web-apps-a-palavra-chave-e-progressive-nao-app-ou-web\/","title":{"rendered":"Progressive Web Apps: a palavra-chave \u00e9 Progressive, n\u00e3o App ou Web"},"content":{"rendered":"<p>N\u00e3o sabe o que \u00e9 PWA ainda? Ou\u00e7a um podcast que gravamos no <a href=\"http:\/\/devnaestrada.com.br\/2017\/06\/22\/pwa.html\" target=\"_blank\" rel=\"noopener noreferrer\">DevNaEstrada<\/a> sobre o tema.<\/p>\n<p>O S\u00e9rgio Lopes, ou <a href=\"https:\/\/twitter.com\/sergio_caelum\" target=\"_blank\" rel=\"noopener noreferrer\">Sergio Caelum<\/a>, um dos maiores nomes do Front-end do Brasil e qui\u00e7a do mundo escreveu um excelente artigo defendendo o ponto de vista que <a href=\"https:\/\/imasters.com.br\/desenvolvimento\/progressive-web-apps-palavra-chave-e-web-nao-app\/\" target=\"_blank\" rel=\"noopener noreferrer\">o mais importante no PWA \u00e9 o fator Web<\/a>.<\/p>\n<p>Discordo\u200a\u2014\u200ae j\u00e1 concordei\u200a\u2014\u200ae acredito que o mais fant\u00e1stico de PWA \u00e9 unificar o desenvolvimento Front-end moderno em um \u00fanico dispositivo.<\/p>\n<p>Estamos desenvolvendo e aperfei\u00e7oando o <a href=\"http:\/\/rivendel.com.br\/\" target=\"_blank\" rel=\"noopener noreferrer\"><strong>The Rivendel Way<\/strong><\/a> apostando pesadamente que no Cap\u00edtulo Front-end o PWA vai ser a solu\u00e7\u00e3o para unificar tudo.<\/p>\n<h3>Front-end \u00e9 o dispositivo que foi desenhado pra\u00a0ser.<\/h3>\n<p>A programa\u00e7\u00e3o Front-end nasceu no primeiro terminal, se \u00e9 que n\u00e3o d\u00e1 pra considerar desde o cart\u00e3o perfurado.<\/p>\n<p>No Desktop a grande facilidade encontrada foi a padroniza\u00e7\u00e3o de um Toolkit fornecido pelo pr\u00f3prio SO, voc\u00ea n\u00e3o tinha que desenhar sua tela, apenas usar a UI fornecida, os <strong>Patterns<\/strong> vem desde os anos 70\u200a\u2014\u200acomo MVC\u200a\u2014\u200ae o estado da arte j\u00e1 estava encontrado ali nos anos 90.<\/p>\n<h3>Temos que reescrever todo o c\u00f3digo Mobile a cada 2\u00a0anos<\/h3>\n<p>Todo mundo aceita, mesmo a contragosto, reescrever toda a aplica\u00e7\u00e3o a cada dois anos porque n\u00e3o tem o que fazer, os dispositivos nem existem mais e os novos provavelmente d\u00e3o algum &#8220;probleminha&#8221; de compatibilidade desde o SO a libs espec\u00edficas.<\/p>\n<p>Algu\u00e9m citou IOS? Eu que n\u00e3o.<\/p>\n<p>Qual o porqu\u00ea desse mesmo comportamento n\u00e3o ser aceito pra Front-end Web?<\/p>\n<p>Os dispositivos, conhecidos como navegadores, demoram um pouco mais e mant\u00e9m uma certa retrocompatibilidade com a sua receita de bolo na constru\u00e7\u00e3o da UI artesanal que ele n\u00e3o oferece.<\/p>\n<p>Resultado: um time Front Web, um time Front Android e um time Front Ios P-O-R P-R-O-D-U-T-O.<\/p>\n<h3>Responsivo<\/h3>\n<p>Um dos fatores mais importantes na minha opini\u00e3o \u00e9 come\u00e7ar ponto a ponto a partir do responsivo do seu produto\/site.<\/p>\n<p>Se tem um m\u00ednimo necess\u00e1rio, pra mim seria isso e acredito que todo mundo concorde com isso, sem &#8220;responsividade&#8221; n\u00e3o d\u00e1 pra nem conversar?<\/p>\n<blockquote>\n<p>Mas Milfont, pra qu\u00ea falar o \u00f3bvio em pleno 2107?<\/p>\n<\/blockquote>\n<p>Acredite, n\u00e3o \u00e9 ainda, por incr\u00edvel que pare\u00e7a. Sigamos.<\/p>\n<h3>Qual o Porqu\u00ea de n\u00e3o esquecermos do aspecto\u00a0App?<\/h3>\n<p>Voltando ao Post do Sergio, Web \u00e9 importante como plataforma, unificar esses times e ecossistema de tecnologias, al\u00e9m de fornecer a mesma experi\u00eancia para o usu\u00e1rio sem o punir com instala\u00e7\u00e3o, entre outras coisas.<\/p>\n<p>Mas s\u00f3 pensar em Web n\u00e3o faremos essa mudan\u00e7a, precisamos indexar na lista de Apps dos dispositivos m\u00f3veis, ter uma responsividade ao acessar um link em um Push Notification (*)\u00a0, compartilhar entre Apps, acessar com facilidade recursos do aparelho (ou no caso do IOS pelo menos acessar) e pequenos detalhes que s\u00f3 lembramos na hora de implementar.<\/p>\n<p>(*) (quem est\u00e1 usando o Twitter no Android j\u00e1 deve ter percebido que tem vezes que n\u00e3o abre a App quando clica na mensagem)<\/p>\n<h3>Progressivo<\/h3>\n<p>Enquanto o PWA n\u00e3o fornecer o aspecto App completo, n\u00e3o ser\u00e1 aceito.<\/p>\n<p>Precisamos <strong>progressivamente<\/strong> entregar um valor ao usu\u00e1rio mais pr\u00f3ximo do que ele j\u00e1 tem hoje, que no Mobile nativo j\u00e1 lembra muito aquele estado da arte que o Desktop entregou nos anos 90.<\/p>\n<h3>J\u00e1 estamos\u00a0prontos?<\/h3>\n<p>Semana que vem vou palestrar no <a href=\"https:\/\/braziljs.org\/conf\/\" target=\"_blank\" rel=\"noopener noreferrer\">BrazilJS<\/a> sobre as vit\u00f3rias alcan\u00e7adas do CEJS (primeiro semestre) pra c\u00e1, enquanto isso fique com as derrotas:<\/p>\n<p>Pra finalizar, se ouviu o podcast referenciado no in\u00edcio do texto, vai perceber que profetizei o PWA no IOS (que \u00e9 o que falta) at\u00e9 31 de dezembro, a Apple est\u00e1 correndo atr\u00e1s pra n\u00e3o furar o prazo.<\/p>\n<hr \/>\n<div class=\"embed-twitter\">\n<blockquote class=\"twitter-tweet\" data-width=\"450\" data-dnt=\"true\">\n<p lang=\"en\" dir=\"ltr\">This day goes to <a href=\"https:\/\/twitter.com\/hashtag\/PWA?src=hash&amp;ref_src=twsrc%5Etfw\">#PWA<\/a> history! Initial steps of <a href=\"https:\/\/twitter.com\/hashtag\/ServiceWorker?src=hash&amp;ref_src=twsrc%5Etfw\">#ServiceWorker<\/a> in <a href=\"https:\/\/twitter.com\/hashtag\/Safari?src=hash&amp;ref_src=twsrc%5Etfw\">#Safari<\/a>: <a href=\"https:\/\/t.co\/WU4Uin6ZHP\">https:\/\/t.co\/WU4Uin6ZHP<\/a>. Kudos to <a href=\"https:\/\/twitter.com\/bradeeoh?ref_src=twsrc%5Etfw\">@bradeeoh<\/a> &amp; all <a href=\"https:\/\/twitter.com\/webkit?ref_src=twsrc%5Etfw\">@webkit<\/a> team! <a href=\"https:\/\/t.co\/FFf95pDxde\">pic.twitter.com\/FFf95pDxde<\/a><\/p>\n<p>&mdash; Maxim \u00abPWAdvocate\u00bb Salnikov (@webmaxru) <a href=\"https:\/\/twitter.com\/webmaxru\/status\/893027996659060738?ref_src=twsrc%5Etfw\">August 3, 2017<\/a><\/p>\n<\/blockquote>\n<p><script async src=\"https:\/\/platform.twitter.com\/widgets.js\" charset=\"utf-8\"><\/script><\/div>\n","protected":false},"excerpt":{"rendered":"<p>N\u00e3o sabe o que \u00e9 PWA ainda? Ou\u00e7a um podcast que gravamos no DevNaEstrada sobre o tema. O S\u00e9rgio Lopes, ou Sergio Caelum, um dos maiores nomes do Front-end do Brasil e qui\u00e7a do mundo escreveu um excelente artigo defendendo o ponto de vista que o mais importante no PWA \u00e9 o fator Web. Discordo\u200a\u2014\u200ae [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[],"_links":{"self":[{"href":"https:\/\/www.milfont.org\/tech\/wp-json\/wp\/v2\/posts\/1848"}],"collection":[{"href":"https:\/\/www.milfont.org\/tech\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.milfont.org\/tech\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.milfont.org\/tech\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.milfont.org\/tech\/wp-json\/wp\/v2\/comments?post=1848"}],"version-history":[{"count":0,"href":"https:\/\/www.milfont.org\/tech\/wp-json\/wp\/v2\/posts\/1848\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.milfont.org\/tech\/wp-json\/wp\/v2\/media?parent=1848"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.milfont.org\/tech\/wp-json\/wp\/v2\/categories?post=1848"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.milfont.org\/tech\/wp-json\/wp\/v2\/tags?post=1848"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}