{"id":3014,"date":"2020-05-26T09:03:10","date_gmt":"2020-05-26T07:03:10","guid":{"rendered":"https:\/\/inlab.fib.upc.edu\/?p=3014"},"modified":"2020-05-26T09:03:10","modified_gmt":"2020-05-26T07:03:10","slug":"que-es-el-lenguaje-de-programacion-dart","status":"publish","type":"post","link":"https:\/\/inlab.fib.upc.edu\/es\/uncategorized-ca\/que-es-el-lenguaje-de-programacion-dart","title":{"rendered":"\u00bfQu\u00e9 es el lenguaje de programaci\u00f3n Dart?"},"content":{"rendered":"<p>Dart es un lenguaje&nbsp;<em>open source<\/em>&nbsp;desarrollado en Google con el objetivo de permitir a los desarrolladores utilizar un lenguaje orientado a objetos y con an\u00e1lisis est\u00e1tico de tipo.<\/p>\n<p><!--more--><\/p>\n<h3>\u00bfQu\u00e9 es Dart?<\/h3>\n<p>Dart es un lenguaje <em>open source<\/em> desarrollado en Google con el objetivo de permitir a los desarrolladores utilizar un lenguaje orientado a objetos y con an\u00e1lisis est\u00e1tico de tipo. Desde la primera versi\u00f3n estable en 2011, Dart ha cambiado bastante, tanto en el lenguaje en s\u00ed como en sus objetivos principales. Con la versi\u00f3n 2.0, el sistema de tipo de Dart pas\u00f3 de opcional a est\u00e1tico, y desde su llegada, Flutter (explicamos qu\u00e9 es m\u00e1s adelante) se ha convertido en el principal objetivo del lenguaje.<\/p>\n<p>&nbsp;<\/p>\n<h3>\u00bfQu\u00e9 hace a Dart especial?<\/h3>\n<p>A diferencia de muchos lenguajes, Dart se dise\u00f1\u00f3 con el objetivo de hacer el proceso de desarrollo lo m\u00e1s c\u00f3modo y r\u00e1pido posible para los desarrolladores. Por eso, viene con un conjunto bastante extenso de herramientas integrado, como su propio gestor de paquetes, varios compiladores\/transpiladores, un analizador y formateador. Adem\u00e1s, la m\u00e1quina virtual de Dart y la compilaci\u00f3n <em>Just-in-Time<\/em> hacen que los cambios realizados en el c\u00f3digo se puedan ejecutar inmediatamente.<br \/>\nUna vez en producci\u00f3n, el c\u00f3digo se puede compilar en lenguaje nativo, por lo que no es necesario un entorno especial para ejecutar. En caso de que se haga desarrollo web, Dart se transpila a JavaScript.<\/p>\n<p>En cuanto a la sintaxis, la de Dart es muy similar a lenguajes como JavaScript, Java y C ++, por lo que aprender Dart sabiendo uno de estos lenguajes es cuesti\u00f3n de horas.<br \/>\nAdem\u00e1s, Dart consta de un gran apoyo para la asincron\u00eda, y trabajar con generadores y iterables es extremadamente sencillo.<\/p>\n<p>&nbsp;<\/p>\n<h3>\u00bfD\u00f3nde puedo utilizar Dart?<\/h3>\n<p>Dart es un lenguaje de prop\u00f3sito general, y lo puedes utilizar casi para cualquier cosa:<\/p>\n<ul>\n<li>En aplicaciones web, utilizando la librer\u00eda de arte: html y el transpilador para transformar el c\u00f3digo en Dart en JavaScript, o utilizando <em>frameworks <\/em>como AngularDart.<\/li>\n<li>En servidores, utilizando las librer\u00edas de arte: http y arte: io. Tambi\u00e9n hay varios frameworks que se pueden utilizar, como por ejemplo Aqueduct.<\/li>\n<li>En aplicaciones de consola.<\/li>\n<li>En aplicaciones m\u00f3viles gracies a Flutter.<br \/>\n\t&nbsp;<\/li>\n<\/ul>\n<h3>Flutter<\/h3>\n<p>Flutter es un <em>framework <\/em>de Dart para crear aplicaciones multiplataforma con un \u00fanico c\u00f3digo. A diferencia de otros <em>frameworks <\/em>multiplataforma como por ejemplo Ionic, el c\u00f3digo de una aplicaci\u00f3n de Flutter se compila a c\u00f3digo nativo, por lo que el rendimiento alcanzado es superior a aplicaciones basadas en<em> web-view<\/em>s. Adem\u00e1s, a diferencia de React Native, Flutter no utiliza componentes nativos, sino que viene con sus propios componentes, llamados <em>widgets<\/em>, por lo que la misma aplicaci\u00f3n se ver\u00e1 igual en cualquier dispositivo, independientemente de su sistema operativo o la versi\u00f3n. Gracias a ello, el desarrollador no tiene que preocuparse por que el dise\u00f1o de su aplicaci\u00f3n se vea mal en dispositivos antiguos.<\/p>\n<p>Adem\u00e1s de aplicaciones m\u00f3viles, con Flutter tambi\u00e9n se pueden hacer p\u00e1ginas web y aplicaciones de escritorio, aunque el soporte para p\u00e1ginas web est\u00e1 en beta, y por aplicaciones de escritorio en technical preview, por lo que quien los quiera usar habr\u00e1 que esperar un tiempo m\u00e1s a que sea estable.<br \/>\nA continuaci\u00f3n, tiene varios ejemplos de aplicaciones desarrolladas con Flutter:<\/p>\n<ul>\n<li><a href=\"https:\/\/play.google.com\/store\/apps\/details?id=com.google.android.apps.adwords\" target=\"_blank\" rel=\"noopener\">Google Ads<\/a><\/li>\n<li><a href=\"https:\/\/play.google.com\/store\/apps\/details?id=com.apptreesoftware.revolution.enterpriseedition\" target=\"_blank\" rel=\"noopener\">AppTree<\/a><\/li>\n<li><a href=\"https:\/\/reflectly.app\/\" target=\"_blank\" rel=\"noopener\">Reflectly<\/a><\/li>\n<li><a href=\"https:\/\/play.google.com\/store\/apps\/details?id=com.diviloper.inlapp_coffee\" target=\"_blank\" rel=\"noopener\">inLapp Coffee<\/a><\/li>\n<li><a href=\"https:\/\/play.google.com\/store\/apps\/details?id=com.diviloper.ssh_buttons\" target=\"_blank\" rel=\"noopener\">SSHButtons<\/a><\/li>\n<\/ul>\n<p>Para aquellos interesados\/as en aprender m\u00e1s sobre Dart y Flutter, despu\u00e9s hay una lista con varios recursos que pueden ser \u00fatiles:<\/p>\n<ul>\n<li><a href=\"https:\/\/dart.dev\/\" target=\"_blank\" rel=\"noopener\">P\u00e1gina web de Dart<\/a>, donde podr\u00e1 encontrar toda la documentaci\u00f3n del lenguaje y varios tutoriales. En particular, el <a href=\"https:\/\/dart.dev\/guides\/language\/language-tour\" target=\"_blank\" rel=\"noopener\">Language Tour<\/a> es muy \u00fatil para ver una breve introducci\u00f3n a la sintaxis del lenguaje.<\/li>\n<li><a href=\"https:\/\/dartpad.dev\/\" target=\"_blank\" rel=\"noopener\">Dartpad<\/a>,que le permite experimentar con el lenguaje desde el navegador sin necesidad de instalar nada (tambi\u00e9n se puede escribir aplicaciones de Flutter).<\/li>\n<li><a href=\"https:\/\/pub.dev\/\" target=\"_blank\" rel=\"noopener\">P\u00e1gina web del repositorio de paquetes,<\/a> donde podr\u00e1 encontrar todos los paquetes de la comunidad.<\/li>\n<li>P\u00e1gines de Medium de <a href=\"https:\/\/medium.com\/dartlang\" target=\"_blank\" rel=\"noopener\">Dart<\/a>&nbsp;y&nbsp;<a href=\"https:\/\/medium.com\/flutter\" target=\"_blank\" rel=\"noopener\">Flutter<\/a>, con muchos art\u00edculos que pueden ser de ayuda.<\/li>\n<li><a href=\"https:\/\/flutter.dev\/\" target=\"_blank\" rel=\"noopener\">P\u00e1gina web de Flutter<\/a>, donde se encuentra la documentaci\u00f3n del framework, y c\u00f3mo empezar a usarlo.<\/li>\n<li><a href=\"https:\/\/www.youtube.com\/channel\/UCwXdFgeE9KYzlDdR7TG9cMw\/playlists\" target=\"_blank\" rel=\"noopener\">Canal de YouTube de Flutter<\/a>, con una gran cantidad de v\u00eddeos que pueden ser \u00fatiles. En particular, la serie de videos de <a href=\"https:\/\/www.youtube.com\/channel\/UCwXdFgeE9KYzlDdR7TG9cMw\/playlists\" target=\"_blank\" rel=\"noopener\">Widget of the Week<\/a>,una serie de breves v\u00eddeos de un par de minutos cada uno explicando un widget, bastante \u00fatil si est\u00e1s empezando y no tienes muy claro qu\u00e9 widgets existen y como los puedes usar, y la serie <a href=\"https:\/\/www.youtube.com\/playlist?list=PLjxrf2q8roU2HdJQDjJzOeO6J3FoFLWr2\" target=\"_blank\" rel=\"noopener\">Flutter in Focus<\/a>, con videos m\u00e1s extensos explicando conceptos clave tanto de Dart como de Flutter.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Dart es un lenguaje&nbsp;open source&nbsp;desarrollado en Google con el objetivo de permitir a los desarrolladores utilizar un lenguaje orientado a objetos y con an\u00e1lisis est\u00e1tico de tipo.<\/p>\n","protected":false},"author":594,"featured_media":3010,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[],"experteses":[27],"class_list":["post-3014","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized-ca","experteses-knowledgeyserviceengineering-es"],"acf":[],"_links":{"self":[{"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/posts\/3014","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/users\/594"}],"replies":[{"embeddable":true,"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/comments?post=3014"}],"version-history":[{"count":0,"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/posts\/3014\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/media\/3010"}],"wp:attachment":[{"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/media?parent=3014"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/categories?post=3014"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/tags?post=3014"},{"taxonomy":"experteses","embeddable":true,"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/experteses?post=3014"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}