{"id":558,"date":"2010-01-03T01:24:48","date_gmt":"2010-01-03T04:24:48","guid":{"rendered":"https:\/\/devkico.itexto.com.br\/?p=558"},"modified":"2013-09-01T10:24:53","modified_gmt":"2013-09-01T13:24:53","slug":"por-que-resolvi-largar-o-html-e-partir-pro-flash-flex-na-realidade","status":"publish","type":"post","link":"https:\/\/devkico.itexto.com.br\/?p=558","title":{"rendered":"Por que resolvi largar o HTML e partir pro Flash (Flex na realidade)"},"content":{"rendered":"<p><a href=\"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2010\/01\/adobe-flash-cs3.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-medium wp-image-559\" style=\"margin: 10px;\" title=\"adobe-flash-cs3\" alt=\"\" src=\"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2010\/01\/adobe-flash-cs3.png\" width=\"154\" height=\"154\" srcset=\"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2010\/01\/adobe-flash-cs3.png 256w, https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2010\/01\/adobe-flash-cs3-150x150.png 150w\" sizes=\"(max-width: 154px) 100vw, 154px\" \/><\/a>No decorrer de 2009 iniciei um projeto cujo principal objetivo t\u00e9cnico consistiu em levar ao extremo o que consigo fazer atualmente usando Grails na camada de controle e dom\u00ednio e a dobradinha HTML\/CSS\/Javascript na camada de visualiza\u00e7\u00e3o (atualmente, s\u00f3 de ver uma interface 100% baseada em campos textuais e caixas de sele\u00e7\u00e3o j\u00e1 come\u00e7o a bocejar).<\/p>\n<p>Na camada de visualiza\u00e7\u00e3o <strong>quis ver o qu\u00e3o pr\u00f3ximo do desktop eu conseguiria chegar<\/strong> usando HTML, CSS e Javascript (muito JQuery neste caso). Nos primeiros momentos, fiquei bastante surpreso com o que estava conseguido: muito drag and drop e uma interface bem diferente do feij\u00e3o com arroz que estava habituado a produzir. Por\u00e9m, conforme o projeto progredia, algo ficava n\u00edtido pra mim: na camada de visualiza\u00e7\u00e3o estava usando ferramentas erradas. Sendo assim, parei de me auto enganar e resolvi aceitar um fato: <strong>HTML n\u00e3o foi feito para se criar aplica\u00e7\u00f5es<\/strong> <strong>ricas<\/strong>.<\/p>\n<p>\u00c9 importante que nos lembremos das ra\u00edzes hist\u00f3ricas da web: <strong>sua estrutura foi constru\u00edda ao redor do que se intencionava ser um mecanismo de distribui\u00e7\u00e3o de documentos, e n\u00e3o para se criar aplica\u00e7\u00f5es<\/strong> (s\u00f3 pra lembrar, \u00e9 Hyper<span style=\"color: #ff0000;\"><strong>text<\/strong><\/span> Transfer Protocol). Resumindo: faz muito sentido usar HTML para se expor conte\u00fado textual, mas muito pouco para se criar aplica\u00e7\u00f5es com interfaces ricas (o que \u00e9 o meu caso).<\/p>\n<p><a href=\"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2010\/01\/12-html_tattoo.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-medium wp-image-560\" title=\"12-html_tattoo\" alt=\"\" src=\"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2010\/01\/12-html_tattoo-270x300.jpg\" width=\"270\" height=\"300\" srcset=\"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2010\/01\/12-html_tattoo-270x300.jpg 270w, https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2010\/01\/12-html_tattoo.jpg 440w\" sizes=\"(max-width: 270px) 100vw, 270px\" \/><\/a><\/p>\n<h3>O pesadelo do HTML (os tais &#8220;web standards&#8221;)<\/h3>\n<p>A verdade \u00e9: <span style=\"color: #ff0000;\"><strong>usar HTML para criar aplica\u00e7\u00f5es com interfaces ricas ainda \u00e9 (e vai continuar sendo por um bom tempo) um pesadelo<\/strong><\/span>.<\/p>\n<p>Sim, \u00e9 verdade que as coisas est\u00e3o melhorando, e temos alguns bons ind\u00edcios disto:<\/p>\n<ul>\n<li>Google t\u00e1 puxando o HTML 5 no Chrome, e o Firefox e Internet Explorer j\u00e1 est\u00e3o come\u00e7ando a oferecer algum suporte<\/li>\n<li>O maldito Internet Explorer 6 est\u00e1 come\u00e7ando a desaparecer<\/li>\n<li>Bibliotecas como jQuery conseguem minimizar a discrepancia entre as diferentes implementa\u00e7\u00f5es do JavaScript presente nos navegadores<\/li>\n<li>Aplica\u00e7\u00f5es como Google Maps exp\u00f5e que de fato \u00e9 poss\u00edvel criar aplica\u00e7\u00f5es ricas usando &#8220;apenas&#8221; HTML, CSS e muito JavaScript<\/li>\n<\/ul>\n<p>Yeap: mundo lindo n\u00e9? S\u00f3 que tem alguns &#8220;pequenos&#8221; problemas.<\/p>\n<p><strong>Microsoft Internet Explorer ainda domina<\/strong><\/p>\n<p>Ainda n\u00e3o sairam as estat\u00edsticas do quarto trimestre de 2009, mas \u00e9 fato: at\u00e9 o terceiro trimestrede 2009 quase 70% das pessoas ainda usam o maledeto IE. (fontes: <a href=\"http:\/\/marketshare.hitslink.com\/browser-market-share.aspx?qprid=0\" target=\"_blank\">NetApplications<\/a>, <a href=\"http:\/\/www.w3counter.com\/globalstats.php\" target=\"_blank\">W3Counter<\/a>, <a href=\"http:\/\/gs.statcounter.com\/\" target=\"_blank\">StatCounter<\/a>). O IE8 \u00e9 mais pr\u00f3ximo dos padr\u00f5es do W3C, \u00e9 verdade, por\u00e9m sabendo um pouco de hist\u00f3ria, fica n\u00edtido que ser\u00e1 tempor\u00e1rio, e em pouco tempo a Microsoft ir\u00e1 incluir novas &#8220;features&#8221; no seu navegador. (pior: IE6 ainda \u00e9 o browser mais usado (fonte: <a href=\"http:\/\/marketshare.hitslink.com\/report.aspx?qprid=2&amp;qptimeframe=M&amp;qpstick=1\" target=\"_blank\">NetApplications<\/a>).<\/p>\n<p><strong>Os browsers ainda n\u00e3o s\u00e3o todos 100% compat\u00edveis com os padr\u00f5es web<\/strong><\/p>\n<p>Se voc\u00ea quer criar uma aplica\u00e7\u00e3o rica usando apenas web standards, ou seja, HTML, CSS e Javascript, no m\u00ednimo os navegadores devem ser compat\u00edveis com o padr\u00e3o, certo? Atualmente apenas o Chrome 2 e o Safari 4 conseguem passar no Acid3 (<a href=\"http:\/\/acidtests.googletoad.com\/\" target=\"_blank\">fonte<\/a>). Juntos correspondem atualmente a algo em torno de no m\u00e1ximo uns 9% do mercado. (s\u00f3 pra &#8220;animar&#8221;, o IE8 conseguiu passar com nota 10\/100).<\/p>\n<p><strong>HTML 5 ainda est\u00e1 longe de se tornar realidade<\/strong><\/p>\n<p>O HTML 5 cuja especifica\u00e7\u00e3o come\u00e7ou em 2004 vai ter a sua primeira vers\u00e3o candidata publicada (talvez) em 2012 E vai ser recomendado pelo W3C a partir de 2022 (<a href=\"http:\/\/wiki.whatwg.org\/wiki\/FAQ#When_will_HTML5_be_finished.3F\" target=\"_blank\">fonte<\/a>). Ok: ent\u00e3o se o mundo n\u00e3o acabar em 2012, teremos de esperar &#8220;apenas&#8221; mais 10 anos.<\/p>\n<p>Claro, nada impede que os navegadores comecem a implementar o padr\u00e3o, certo? De novo, n\u00e3o \u00e9 l\u00e1 muito animador, basta ver o que temos hoje (<a href=\"http:\/\/en.wikipedia.org\/wiki\/Comparison_of_layout_engines_%28HTML5%29\" target=\"_blank\">fonte<\/a> (yeap: Wikip\u00e9dia mesmo, por\u00e9m as fontes indicam ser um post confi\u00e1vel)). Seu cliente topa esperar todo este tempo?<\/p>\n<h3>Nada contra os web standards (muito a favor!), desde que sejam usados no lugar certo<\/h3>\n<p>Se o seu trabalho n\u00e3o exige uma interface rica (com drag and drop, multim\u00eddia de fato e intera\u00e7\u00e3o que v\u00e1 al\u00e9m de meros campos textuais e caixa de sele\u00e7\u00e3o), e serve apenas para expor conte\u00fado, web standards \u00e9 o canal (ali\u00e1s, o \u00fanico que conhe\u00e7o), pois apresenta diversas vantagens:<\/p>\n<ul>\n<li>Maior compatibilidade entre navegadores (sempre relativa)<\/li>\n<li>Carregamento mais r\u00e1pido<\/li>\n<li>Facilidade de indexa\u00e7\u00e3o por motores de busca<\/li>\n<li>C\u00f3digo limpo<\/li>\n<\/ul>\n<p>Quer usar apenas web standards para criar aplica\u00e7\u00f5es ricas? Ok! Fa\u00e7a um jogo que valha \u00e0 pena usando apenas Javascript, HTML\/CSS compat\u00edvel com todos os navegadores e depois ma apresente. :)<\/p>\n<p><a href=\"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2010\/01\/fx.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-medium wp-image-563 alignright\" style=\"margin: 10px;\" title=\"fx\" alt=\"\" src=\"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2010\/01\/fx.png\" width=\"200\" height=\"200\" srcset=\"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2010\/01\/fx.png 200w, https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2010\/01\/fx-150x150.png 150w\" sizes=\"(max-width: 200px) 100vw, 200px\" \/><\/a><\/p>\n<h3>Como acabei optando pela <span style=\"color: #ff0000;\">plataforma<\/span> Flash<\/h3>\n<p>O caminho natural para o meu caso, que sou especializado de fato na plataforma Java seria o JavaFX. No entanto, alguns fatores pesaram muito a favor da solu\u00e7\u00e3o da Adobe:<\/p>\n<ul>\n<li>Flash \u00e9 uma tecnologia madura<\/li>\n<li>98% dos computadores possuem o Flash Player instalado (<a href=\"http:\/\/www.adobe.com\/products\/player_census\/npd\/\" target=\"_blank\">fonte<\/a>)<br \/>\n(multiplataforma e PADR\u00c3O \u00e9 ISTO)<\/li>\n<li>\u00c9 lingua franca entre designers (com os quais a cada dia que se passa, tenho tido de interar mais e mais), pois \u00e9 completamente integrado \u00e0s ferramentas gr\u00e1ficas da Adobe (que s\u00e3o as melhores)<\/li>\n<li>ActionScript \u00e9 uma linguagem que se mostrou surpreendentemente poderosa para mim, que at\u00e9 ent\u00e3o a esnobava com a maior tranquilidade (bem feito pra mim!)<\/li>\n<li>Foco na parte visual<\/li>\n<li>Flex \u00e9 agora completamente open source (se n\u00e3o o fosse, estaria usando JavaFX agora)<\/li>\n<li>Flex e Air<\/li>\n<\/ul>\n<p>O que me fez realmente me apaixonar de fato, confesso, foi o <strong>Flex<\/strong>. Conforme ia estudando a tecnologia, fiquei fascinado com a riqueza que ela me oferece. Basicamente, \u00e9 o Flash, por\u00e9m com uma roupagem mais pr\u00f3xima da que desenvolvedores de aplica\u00e7\u00f5es como eu estamos acostumados. O projeto que mencionei no in\u00edcio deste blog est\u00e1 sendo atualmente refeito em Flex: e o resultado est\u00e1 sendo maravilhoso.<\/p>\n<p>Com Flex consigo acessar via HTTP (e tamb\u00e9m por WebServices, bancos de dados, etc) de uma forma MUITO simples tudo o que preciso, ou seja, \u00e9 f\u00e1cililimo de integrar com meu c\u00f3digo legado. Existe inclusive um plugin para Grails bastante interessante (<a href=\"http:\/\/www.grails.org\/Flex+Plugin\" target=\"_blank\">fonte<\/a>). Ou seja, <strong>continuo trabalhando no backend com as mesmas ferramentas que usava antes<\/strong>: a \u00fanica diferen\u00e7a \u00e9 que agora uso Flex na camada de visualiza\u00e7\u00e3o quando preciso de algo mais elaborado.<\/p>\n<p>Al\u00e9m disto, outro fator important\u00edssimo foi o Air, que nos permite transformar a nossa aplica\u00e7\u00e3o web em uma aplica\u00e7\u00e3o desktop de uma forma incr\u00edvelmente simples.<\/p>\n<h3>Conclus\u00f5es<\/h3>\n<p>A conclus\u00e3o que chego \u00e9 a seguinte: se sua interface ser\u00e1 simples, e n\u00e3o requer nada que v\u00e1 al\u00e9m do que o HTML 4 de hoje com JavaScript e CSS podem te oferecer, fique com os padr\u00f5es web de hoje. Eles te atender\u00e3o perfeitamente. Abrace-os e defenda-os com unhas e dentes.<\/p>\n<p>No entanto, se sua aplica\u00e7\u00e3o requer uma interface rica, que v\u00e1 al\u00e9m dos controles HTML, e n\u00e3o \u00e9 algo cujo principal prop\u00f3sito seja expor informa\u00e7\u00e3o textual ou pict\u00f3rica, opte por alguma tecnologia RIA (Silverlight, JavaFX e Chrome Frame (considero o Frame uma plataforma RIA, visto que \u00e9 um plugin assim como os demais) s\u00e3o MUITO interessantes tamb\u00e9m), pois ir\u00e1 lhe poupar MUITO tempo e, querendo ou n\u00e3o, \u00e9 a ferramenta certa para este tipo de trabalho.<\/p>\n<p>Acredito em um meio termo: nada impede misturar web standards com algum framework RIA, pois no caso do projeto que mencionei, \u00e9 exatamente o que estou fazendo neste momento.<\/p>\n<p>Neste ano estou apostando no Flex. Aguardem por v\u00e1rios posts a respeito conforme me aprofundo na ferramenta e, mais importante: Feliz 2010!<\/p>\n<p>PS: agora, por caridade: n\u00e3o empolgue e fa\u00e7a seu blog ou p\u00e1gina corporativa usando apenas algum framework RIA ok? Assim voc\u00ea quebra a bicicleta! :)<\/p>\n<h2>Update setembro de 2013<\/h2>\n<p>As coisas correram bem diferente do que eu imaginava: o HTML 5 acabou se tornando muito mais adotado pelos browsers, ao ponto de que simplesmente n\u00e3o precisei mais pensar em Air\/Flash para desenvolver apllica\u00e7\u00f5es ricas.<\/p>\n<p>Ent\u00e3o pode-se dizer que nem deu tempo de\u00a0<em>abandonar<\/em> direito o HTML 5: acabei ficando nele mesmo e abandonando o Air, mas muitas das coisas que disse neste post ainda se aplicam: n\u00e3o h\u00e1 ferramentas visuais t\u00e3o boas para HTML 5 quanto h\u00e1 para Flash, e o suporte ainda n\u00e3o \u00e9 100% (prov\u00e1velmente nunca ser\u00e1), mas t\u00e1 bem l\u00e1 pelos 80, 90% chutando por alto.<\/p>\n<p>\u00c9: acabei abandonando o Air. :)\u00a0<a href=\"https:\/\/devkico.itexto.com.br\/?p=1550\">https:\/\/devkico.itexto.com.br\/?p=1550<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>No decorrer de 2009 iniciei um projeto cujo principal objetivo t\u00e9cnico consistiu em levar ao extremo o que consigo fazer atualmente usando Grails na camada de controle e dom\u00ednio e a dobradinha HTML\/CSS\/Javascript na camada de visualiza\u00e7\u00e3o (atualmente, s\u00f3 de ver uma interface 100% baseada em campos textuais e caixas de sele\u00e7\u00e3o j\u00e1 come\u00e7o a [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_coblocks_attr":"","_coblocks_dimensions":"","_coblocks_responsive_height":"","_coblocks_accordion_ie_support":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""}},"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[36,46,47,3,5,6,48,1],"tags":[],"class_list":["post-558","post","type-post","status-publish","format-standard","hentry","category-desenvolvimento-de-software","category-flash","category-flex","category-grails","category-groovy","category-java","category-ria","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v22.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Por que resolvi largar o HTML e partir pro Flash (Flex na realidade) - \/dev\/Kico<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/devkico.itexto.com.br\/?p=558\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Por que resolvi largar o HTML e partir pro Flash (Flex na realidade) - \/dev\/Kico\" \/>\n<meta property=\"og:description\" content=\"No decorrer de 2009 iniciei um projeto cujo principal objetivo t\u00e9cnico consistiu em levar ao extremo o que consigo fazer atualmente usando Grails na camada de controle e dom\u00ednio e a dobradinha HTML\/CSS\/Javascript na camada de visualiza\u00e7\u00e3o (atualmente, s\u00f3 de ver uma interface 100% baseada em campos textuais e caixas de sele\u00e7\u00e3o j\u00e1 come\u00e7o a [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/devkico.itexto.com.br\/?p=558\" \/>\n<meta property=\"og:site_name\" content=\"\/dev\/Kico\" \/>\n<meta property=\"article:published_time\" content=\"2010-01-03T04:24:48+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2013-09-01T13:24:53+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/www.itexto.net\/devkico\/wp-content\/uploads\/2010\/01\/adobe-flash-cs3.png\" \/>\n<meta name=\"author\" content=\"Kico (Henrique Lobo Weissmann)\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@loboweissmann\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Kico (Henrique Lobo Weissmann)\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. tempo de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/devkico.itexto.com.br\/?p=558\",\"url\":\"https:\/\/devkico.itexto.com.br\/?p=558\",\"name\":\"Por que resolvi largar o HTML e partir pro Flash (Flex na realidade) - \/dev\/Kico\",\"isPartOf\":{\"@id\":\"https:\/\/devkico.itexto.com.br\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/devkico.itexto.com.br\/?p=558#primaryimage\"},\"image\":{\"@id\":\"https:\/\/devkico.itexto.com.br\/?p=558#primaryimage\"},\"thumbnailUrl\":\"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2010\/01\/adobe-flash-cs3.png\",\"datePublished\":\"2010-01-03T04:24:48+00:00\",\"dateModified\":\"2013-09-01T13:24:53+00:00\",\"author\":{\"@id\":\"https:\/\/devkico.itexto.com.br\/#\/schema\/person\/502ab8892631bb005d6da2269fe5a3a7\"},\"breadcrumb\":{\"@id\":\"https:\/\/devkico.itexto.com.br\/?p=558#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/devkico.itexto.com.br\/?p=558\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/devkico.itexto.com.br\/?p=558#primaryimage\",\"url\":\"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2010\/01\/adobe-flash-cs3.png\",\"contentUrl\":\"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2010\/01\/adobe-flash-cs3.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/devkico.itexto.com.br\/?p=558#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/devkico.itexto.com.br\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Por que resolvi largar o HTML e partir pro Flash (Flex na realidade)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/devkico.itexto.com.br\/#website\",\"url\":\"https:\/\/devkico.itexto.com.br\/\",\"name\":\"\/dev\/Kico\",\"description\":\"Desenvolvendo software\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/devkico.itexto.com.br\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/devkico.itexto.com.br\/#\/schema\/person\/502ab8892631bb005d6da2269fe5a3a7\",\"name\":\"Kico (Henrique Lobo Weissmann)\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/devkico.itexto.com.br\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/dd6973d86a689bc63122b2e603f25be3?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/dd6973d86a689bc63122b2e603f25be3?s=96&d=mm&r=g\",\"caption\":\"Kico (Henrique Lobo Weissmann)\"},\"sameAs\":[\"https:\/\/x.com\/loboweissmann\"],\"url\":\"https:\/\/devkico.itexto.com.br\/?author=1\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Por que resolvi largar o HTML e partir pro Flash (Flex na realidade) - \/dev\/Kico","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/devkico.itexto.com.br\/?p=558","og_locale":"pt_BR","og_type":"article","og_title":"Por que resolvi largar o HTML e partir pro Flash (Flex na realidade) - \/dev\/Kico","og_description":"No decorrer de 2009 iniciei um projeto cujo principal objetivo t\u00e9cnico consistiu em levar ao extremo o que consigo fazer atualmente usando Grails na camada de controle e dom\u00ednio e a dobradinha HTML\/CSS\/Javascript na camada de visualiza\u00e7\u00e3o (atualmente, s\u00f3 de ver uma interface 100% baseada em campos textuais e caixas de sele\u00e7\u00e3o j\u00e1 come\u00e7o a [&hellip;]","og_url":"https:\/\/devkico.itexto.com.br\/?p=558","og_site_name":"\/dev\/Kico","article_published_time":"2010-01-03T04:24:48+00:00","article_modified_time":"2013-09-01T13:24:53+00:00","og_image":[{"url":"http:\/\/www.itexto.net\/devkico\/wp-content\/uploads\/2010\/01\/adobe-flash-cs3.png"}],"author":"Kico (Henrique Lobo Weissmann)","twitter_card":"summary_large_image","twitter_creator":"@loboweissmann","twitter_misc":{"Escrito por":"Kico (Henrique Lobo Weissmann)","Est. tempo de leitura":"7 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/devkico.itexto.com.br\/?p=558","url":"https:\/\/devkico.itexto.com.br\/?p=558","name":"Por que resolvi largar o HTML e partir pro Flash (Flex na realidade) - \/dev\/Kico","isPartOf":{"@id":"https:\/\/devkico.itexto.com.br\/#website"},"primaryImageOfPage":{"@id":"https:\/\/devkico.itexto.com.br\/?p=558#primaryimage"},"image":{"@id":"https:\/\/devkico.itexto.com.br\/?p=558#primaryimage"},"thumbnailUrl":"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2010\/01\/adobe-flash-cs3.png","datePublished":"2010-01-03T04:24:48+00:00","dateModified":"2013-09-01T13:24:53+00:00","author":{"@id":"https:\/\/devkico.itexto.com.br\/#\/schema\/person\/502ab8892631bb005d6da2269fe5a3a7"},"breadcrumb":{"@id":"https:\/\/devkico.itexto.com.br\/?p=558#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/devkico.itexto.com.br\/?p=558"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/devkico.itexto.com.br\/?p=558#primaryimage","url":"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2010\/01\/adobe-flash-cs3.png","contentUrl":"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2010\/01\/adobe-flash-cs3.png"},{"@type":"BreadcrumbList","@id":"https:\/\/devkico.itexto.com.br\/?p=558#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/devkico.itexto.com.br\/"},{"@type":"ListItem","position":2,"name":"Por que resolvi largar o HTML e partir pro Flash (Flex na realidade)"}]},{"@type":"WebSite","@id":"https:\/\/devkico.itexto.com.br\/#website","url":"https:\/\/devkico.itexto.com.br\/","name":"\/dev\/Kico","description":"Desenvolvendo software","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/devkico.itexto.com.br\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"pt-BR"},{"@type":"Person","@id":"https:\/\/devkico.itexto.com.br\/#\/schema\/person\/502ab8892631bb005d6da2269fe5a3a7","name":"Kico (Henrique Lobo Weissmann)","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/devkico.itexto.com.br\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/dd6973d86a689bc63122b2e603f25be3?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/dd6973d86a689bc63122b2e603f25be3?s=96&d=mm&r=g","caption":"Kico (Henrique Lobo Weissmann)"},"sameAs":["https:\/\/x.com\/loboweissmann"],"url":"https:\/\/devkico.itexto.com.br\/?author=1"}]}},"jetpack_featured_media_url":"","jetpack-related-posts":[],"jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=\/wp\/v2\/posts\/558"}],"collection":[{"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=558"}],"version-history":[{"count":10,"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=\/wp\/v2\/posts\/558\/revisions"}],"predecessor-version":[{"id":1554,"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=\/wp\/v2\/posts\/558\/revisions\/1554"}],"wp:attachment":[{"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=558"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=558"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=558"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}