{"id":145,"date":"2015-10-29T11:03:26","date_gmt":"2015-10-29T11:03:26","guid":{"rendered":"http:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/?p=145"},"modified":"2015-10-29T11:03:26","modified_gmt":"2015-10-29T11:03:26","slug":"xamarin-forms-compilacion-condicional-y-ejecucion-por-dispositivos","status":"publish","type":"post","link":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/xamarin-forms-compilacion-condicional-y-ejecucion-por-dispositivos\/","title":{"rendered":"Xamarin.Forms | Compilaci\u00f3n condicional y ejecuci\u00f3n por dispositivos"},"content":{"rendered":"<p><a href=\"http:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2015\/10\/xamarin-logo.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-full wp-image-134\" src=\"http:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2015\/10\/xamarin-logo.png\" alt=\"xamarin-logo\" width=\"400\" height=\"400\" srcset=\"https:\/\/encaminablogs.wpenginepowered.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2015\/10\/xamarin-logo.png 400w, https:\/\/encaminablogs.wpenginepowered.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2015\/10\/xamarin-logo-150x150.png 150w, https:\/\/encaminablogs.wpenginepowered.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2015\/10\/xamarin-logo-300x300.png 300w\" sizes=\"auto, (max-width: 400px) 100vw, 400px\" \/><\/a>Con Xamarin\u00a0y Xamarin.Forms se ha abierto la posibilidad de desarrollar para Windows Phone, iOS y\u00a0Android compartiendo el c\u00f3digo e, incluso con Xamarin.Forms tambi\u00e9n las vistas con lo que se hace necesario disponer de mecanismos que nos permitan modificar algunos detalles en caso de necesitar que el alguna plataforma o en todas, haya un comportamiento o una visualizaci\u00f3n diferente. Es aqu\u00ed donde aparecen dos estrategias diferentes para alcanzar este objetivo, la tradicional <strong>compilaci\u00f3n condicional y la ejecuci\u00f3n por dispositivos.<\/strong><\/p>\n<h2><!--more--><\/h2>\n<h2>Compilaci\u00f3n condicional<\/h2>\n<p>Los desarrolladores de .NET y en especial los que usamos C# ya conoc\u00edamos la <strong>compilaci\u00f3n condicional para establecer diferentes par\u00e1metros<\/strong> <strong>dependiendo del modo de ejecuci\u00f3n<\/strong> de la aplicaci\u00f3n\u00a0que estuvi\u00e9ramos desarrollando,\u00a0por ejemplo, cambiar par\u00e1metros en una <strong>ejecuci\u00f3n de depuraci\u00f3n (DEBUG)<\/strong> que difieran de los de producci\u00f3n.<\/p>\n<div id=\"codeSnippetWrapper\">\n<pre id=\"codeSnippet\"><span style=\"font-family: Courier New;\">#if<\/span> DEBUG\r\n    <span style=\"font-family: Courier New;\">\/\/ C\u00f3digo a ejecutar si se ejecuta en modo depuraci\u00f3n\r\n#else\r\n<\/span>    <span style=\"font-family: Courier New;\">\/\/ C\u00f3digo a ejecutar fuera del modo depuraci\u00f3n\r\n#endif<\/span><\/pre>\n<\/div>\n<p>Dado que en el <strong>desarrollo de Apps multiplataforma tenemos que poder diferenciar entre dispositivos<\/strong>, Xamarin.Forms nos aporta las siguientes s\u00edmbolos:<\/p>\n<h3>Android + iOS<\/h3>\n<div id=\"codeSnippetWrapper\">\n<div id=\"codeSnippetWrapper\">\n<pre id=\"codeSnippet\"><span style=\"font-family: Courier New;\">#if<\/span> __MOBILE__\r\n<span style=\"font-family: Courier New;\">\/\/C\u00f3digo espec\u00edfico para Android e iOS\r\n#endif<\/span><\/pre>\n<\/div>\n<\/div>\n<h3>iOS<\/h3>\n<div id=\"codeSnippetWrapper\">\n<pre id=\"codeSnippet\"><span style=\"font-family: Courier New;\">#if<\/span> __IOS__\r\n<span style=\"font-family: Courier New;\">\/\/C\u00f3digo espec\u00edfico para iOS\r\n#endif<\/span><\/pre>\n<\/div>\n<h3>Android<\/h3>\n<div id=\"codeSnippetWrapper\">\n<pre id=\"codeSnippet\"><span style=\"font-family: Courier New;\">#if<\/span> __ANDROID__\r\n<span style=\"font-family: Courier New;\">\/\/C\u00f3digo espec\u00edfico para Android\r\n#endif<\/span><\/pre>\n<\/div>\n<p>Tambi\u00e9n podemos ser m\u00e1s espec\u00edficos afinando en la versi\u00f3n de Android<\/p>\n<div id=\"codeSnippetWrapper\">\n<pre id=\"codeSnippet\"><span style=\"font-family: Courier New;\">#if<\/span> __ ANDROID _11__\r\n<span style=\"font-family: Courier New;\">\/\/C\u00f3digo espec\u00edfico para Android 3.0 Honeycomb o superior\r\n#endif<\/span><\/pre>\n<\/div>\n<h3>Windows Phone<\/h3>\n<p>Para Windows Phone se definen dos s\u00edmbolos, WINDOWS_PHONE y SILVERLIGHT<\/p>\n<div id=\"codeSnippetWrapper\">\n<pre id=\"codeSnippet\"><span style=\"font-family: Courier New;\">#if<\/span> __WINDOWS_PHONE__\r\n<span style=\"font-family: Courier New;\">\/\/C\u00f3digo espec\u00edfico para Windows Phone\r\n#endif\r\n#if<\/span> __SILVERLIGHT__\r\n<span style=\"font-family: Courier New;\">\/\/C\u00f3digo espec\u00edfico para Windows Phone\r\n#endif<\/span><\/pre>\n<\/div>\n<p>Esto nos permitir\u00e1 ejecutar nuestra aplicaci\u00f3n con diferentes c\u00f3digos por ejemplo para mostrar un Hello world personalizado.<\/p>\n<p><a href=\"http:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2015\/10\/helloworld.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-148\" src=\"http:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2015\/10\/helloworld.jpg\" alt=\"helloworld\" width=\"650\" height=\"247\" srcset=\"https:\/\/encaminablogs.wpenginepowered.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2015\/10\/helloworld.jpg 1774w, https:\/\/encaminablogs.wpenginepowered.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2015\/10\/helloworld-300x114.jpg 300w, https:\/\/encaminablogs.wpenginepowered.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2015\/10\/helloworld-1024x390.jpg 1024w\" sizes=\"auto, (max-width: 650px) 100vw, 650px\" \/><\/a><\/p>\n<p><em>NOTA: En Portable Class Libraries (PCL) no funciona la directiva #if con lo que tendremos que buscar\u00a0una alternativa como la que os muestro en el siguiente punto<\/em><\/p>\n<h2>Ejecuci\u00f3n por dispositivos<\/h2>\n<p>Adem\u00e1s de la compilaci\u00f3n condicional, en Xamarin.Forms disponemos de otra opci\u00f3n tanto para c\u00f3digo C# como para XAML donde podemos diferenciar tambi\u00e9n entre las diferentes plataformas.<\/p>\n<h3>C#<\/h3>\n<p>En C# tendremos que hacer uso de Device.OnPlatform que nos permite diferenciar entre plataformas.<\/p>\n<div id=\"codeSnippetWrapper\">\n<pre id=\"codeSnippet\" style=\"margin: 0em; padding: 0px; width: 100%; text-align: left; color: black; line-height: 12pt; overflow: visible; font-family: 'Courier New', Courier, Monospace; font-size: 8pt; direction: ltr; background-color: #f4f4f4;\">Device.OnPlatform(\r\n    Android:()=&gt; { myLabel.Text = \u201cHello World from Android\u201d },\r\n    iOS: ()  =&gt; { myLabel.Text = \u201cHello World from iOS\u201d},\r\n    WinPhone: () =&gt; {myLabel.Text = \u201cHello World from Windows Phone\u201d}\r\n);<\/pre>\n<\/div>\n<h3>XAML<\/h3>\n<p>En XAML podemos hacer lo mismo que con C# pero, evidentemente con XAML<\/p>\n<div id=\"codeSnippetWrapper\">\n<pre id=\"codeSnippet\"><span style=\"font-family: Courier New;\">&lt;Label&gt;\r\n<\/span>    <span style=\"font-family: Courier New;\">&lt;Label.Text&gt;\r\n\r\n<\/span>        <span style=\"font-family: Courier New;\">&lt;OnPlatform<\/span> <span style=\"font-family: Courier New;\">x:TypeArguments=\"Text\"\r\n<\/span>                  <span style=\"font-family: Courier New;\">iOS=\"Hello World from iOS\"\r\n<\/span>                  <span style=\"font-family: Courier New;\">Android=\"Hello World from Android\"\r\n<\/span>                  <span style=\"font-family: Courier New;\">WinPhone=\"Hello World from Windows Phone\"\/&gt;\r\n<\/span>    <span style=\"font-family: Courier New;\">&lt;\/Label.Text&gt;\r\n<\/span>Label<span style=\"font-family: Courier New;\">&gt;<\/span><\/pre>\n<\/div>\n<p>&nbsp;<\/p>\n<h2>Conclusi\u00f3n<\/h2>\n<p>Xamarin.Forms no s\u00f3lo ofrece una alta productividad a la hora de desarrollar aplicaciones multiplataforma, sino que, unida a la posibilidad de diferenciar plataformas en c\u00f3digo para realizar cosas espec\u00edficas como por ejemplo establecer diferentes separaciones con paddings, tambi\u00e9n ofrece la posibilidad de realizar tareas espec\u00edficas en funci\u00f3n de la plataforma mejorando as\u00ed la experiencia de desarrollo y, por tanto, tambi\u00e9n la experiencia de usuario.<\/p>\n<p>&nbsp;<\/p>\n<!-- AddThis Advanced Settings generic via filter on the_content --><!-- AddThis Share Buttons generic via filter on the_content --><span class=\"et_bloom_bottom_trigger\"><\/span>","protected":false},"excerpt":{"rendered":"<p>Con Xamarin\u00a0y Xamarin.Forms se ha abierto la posibilidad de desarrollar para Windows Phone, iOS y\u00a0Android compartiendo el c\u00f3digo e, incluso con Xamarin.Forms tambi\u00e9n las vistas con lo que se hace necesario disponer de mecanismos que nos permitan modificar algunos detalles &hellip; <a href=\"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/xamarin-forms-compilacion-condicional-y-ejecucion-por-dispositivos\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><!-- AddThis Advanced Settings generic via filter on get_the_excerpt --><!-- AddThis Share Buttons generic via filter on get_the_excerpt --><\/p>\n","protected":false},"author":22,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3,1,47,48],"tags":[52,49,50],"class_list":["post-145","post","type-post","status-publish","format-standard","hentry","category-movilidad","category-sin-categoria","category-xamarin","category-xamarin-forms","tag-mobile","tag-xamarin","tag-xamarin-forms"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v18.2.1 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Xamarin.Forms | Compilaci\u00f3n condicional y ejecuci\u00f3n por dispositivos<\/title>\n<meta name=\"description\" content=\"Compilaci\u00f3n condicional y c\u00f3digo por plataforma en Xamarin.Forms\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"http:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/xamarin-forms-compilacion-condicional-y-ejecucion-por-dispositivos\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Xamarin.Forms | Compilaci\u00f3n condicional y ejecuci\u00f3n por dispositivos\" \/>\n<meta property=\"og:description\" content=\"Compilaci\u00f3n condicional y c\u00f3digo por plataforma en Xamarin.Forms\" \/>\n<meta property=\"og:url\" content=\"http:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/xamarin-forms-compilacion-condicional-y-ejecucion-por-dispositivos\/\" \/>\n<meta property=\"og:site_name\" content=\"Piensa en software, desarrolla en colores\" \/>\n<meta property=\"article:published_time\" content=\"2015-10-29T11:03:26+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2015\/10\/xamarin-logo.png\" \/>\n<meta name=\"author\" content=\"Santiago Porras Rodr\u00edguez\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@saintwukong\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Santiago Porras Rodr\u00edguez\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"http:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/xamarin-forms-compilacion-condicional-y-ejecucion-por-dispositivos\\\/#article\",\"isPartOf\":{\"@id\":\"http:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/xamarin-forms-compilacion-condicional-y-ejecucion-por-dispositivos\\\/\"},\"author\":{\"name\":\"Santiago Porras Rodr\u00edguez\",\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/#\\\/schema\\\/person\\\/c84cf613b7c5b8d5e1f7625a3e4c8c27\"},\"headline\":\"Xamarin.Forms | Compilaci\u00f3n condicional y ejecuci\u00f3n por dispositivos\",\"datePublished\":\"2015-10-29T11:03:26+00:00\",\"mainEntityOfPage\":{\"@id\":\"http:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/xamarin-forms-compilacion-condicional-y-ejecucion-por-dispositivos\\\/\"},\"wordCount\":401,\"commentCount\":0,\"image\":{\"@id\":\"http:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/xamarin-forms-compilacion-condicional-y-ejecucion-por-dispositivos\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/wp-content\\\/uploads\\\/sites\\\/21\\\/2015\\\/10\\\/xamarin-logo.png\",\"keywords\":[\"Mobile\",\"Xamarin\",\"Xamarin.Forms\"],\"articleSection\":{\"0\":\"Movilidad\",\"2\":\"Xamarin\",\"3\":\"Xamarin.Forms\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"http:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/xamarin-forms-compilacion-condicional-y-ejecucion-por-dispositivos\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"http:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/xamarin-forms-compilacion-condicional-y-ejecucion-por-dispositivos\\\/\",\"url\":\"http:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/xamarin-forms-compilacion-condicional-y-ejecucion-por-dispositivos\\\/\",\"name\":\"Xamarin.Forms | Compilaci\u00f3n condicional y ejecuci\u00f3n por dispositivos\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"http:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/xamarin-forms-compilacion-condicional-y-ejecucion-por-dispositivos\\\/#primaryimage\"},\"image\":{\"@id\":\"http:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/xamarin-forms-compilacion-condicional-y-ejecucion-por-dispositivos\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/wp-content\\\/uploads\\\/sites\\\/21\\\/2015\\\/10\\\/xamarin-logo.png\",\"datePublished\":\"2015-10-29T11:03:26+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/#\\\/schema\\\/person\\\/c84cf613b7c5b8d5e1f7625a3e4c8c27\"},\"description\":\"Compilaci\u00f3n condicional y c\u00f3digo por plataforma en Xamarin.Forms\",\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"http:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/xamarin-forms-compilacion-condicional-y-ejecucion-por-dispositivos\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"http:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/xamarin-forms-compilacion-condicional-y-ejecucion-por-dispositivos\\\/#primaryimage\",\"url\":\"https:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/wp-content\\\/uploads\\\/sites\\\/21\\\/2015\\\/10\\\/xamarin-logo.png\",\"contentUrl\":\"https:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/wp-content\\\/uploads\\\/sites\\\/21\\\/2015\\\/10\\\/xamarin-logo.png\",\"width\":400,\"height\":400},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/#website\",\"url\":\"https:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/\",\"name\":\"Piensa en software, desarrolla en colores\",\"description\":\"Las ventajas que te ofrece Microsoft Azure y el mundo.NET\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/#\\\/schema\\\/person\\\/c84cf613b7c5b8d5e1f7625a3e4c8c27\",\"name\":\"Santiago Porras Rodr\u00edguez\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/626d42f63b21b55341f07a1a63002469e3b64521b19c99273621705f28165d74?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/626d42f63b21b55341f07a1a63002469e3b64521b19c99273621705f28165d74?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/626d42f63b21b55341f07a1a63002469e3b64521b19c99273621705f28165d74?s=96&d=mm&r=g\",\"caption\":\"Santiago Porras Rodr\u00edguez\"},\"description\":\"Innovation Team Leader at ENCAMINA | MVP in Developer Technologies. Apasionado por las nuevas tecnolog\u00edas. Colaboro con la comunidad de desarrolladores escribiendo art\u00edculos en mi blog personal y ocasionalmente en CompartiMOSS.com. Adem\u00e1s, soy uno de los coordinadores de TenerifeDev, grupo de usuarios de .NET de Tenerife y de otros grupos como Comunidad Office 365. Puedes encontrarme en la red microparticipando en Twitter con el usuario @saintwukong\",\"sameAs\":[\"https:\\\/\\\/x.com\\\/saintwukong\"],\"url\":\"https:\\\/\\\/blogs.encamina.com\\\/piensa-en-software-desarrolla-en-colores\\\/author\\\/en-tu-casa-o-en-la-mia\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Xamarin.Forms | Compilaci\u00f3n condicional y ejecuci\u00f3n por dispositivos","description":"Compilaci\u00f3n condicional y c\u00f3digo por plataforma en Xamarin.Forms","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":"http:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/xamarin-forms-compilacion-condicional-y-ejecucion-por-dispositivos\/","og_locale":"es_ES","og_type":"article","og_title":"Xamarin.Forms | Compilaci\u00f3n condicional y ejecuci\u00f3n por dispositivos","og_description":"Compilaci\u00f3n condicional y c\u00f3digo por plataforma en Xamarin.Forms","og_url":"http:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/xamarin-forms-compilacion-condicional-y-ejecucion-por-dispositivos\/","og_site_name":"Piensa en software, desarrolla en colores","article_published_time":"2015-10-29T11:03:26+00:00","og_image":[{"url":"http:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2015\/10\/xamarin-logo.png","type":"","width":"","height":""}],"author":"Santiago Porras Rodr\u00edguez","twitter_card":"summary_large_image","twitter_creator":"@saintwukong","twitter_misc":{"Escrito por":"Santiago Porras Rodr\u00edguez","Tiempo de lectura":"3 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"http:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/xamarin-forms-compilacion-condicional-y-ejecucion-por-dispositivos\/#article","isPartOf":{"@id":"http:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/xamarin-forms-compilacion-condicional-y-ejecucion-por-dispositivos\/"},"author":{"name":"Santiago Porras Rodr\u00edguez","@id":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/#\/schema\/person\/c84cf613b7c5b8d5e1f7625a3e4c8c27"},"headline":"Xamarin.Forms | Compilaci\u00f3n condicional y ejecuci\u00f3n por dispositivos","datePublished":"2015-10-29T11:03:26+00:00","mainEntityOfPage":{"@id":"http:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/xamarin-forms-compilacion-condicional-y-ejecucion-por-dispositivos\/"},"wordCount":401,"commentCount":0,"image":{"@id":"http:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/xamarin-forms-compilacion-condicional-y-ejecucion-por-dispositivos\/#primaryimage"},"thumbnailUrl":"http:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2015\/10\/xamarin-logo.png","keywords":["Mobile","Xamarin","Xamarin.Forms"],"articleSection":{"0":"Movilidad","2":"Xamarin","3":"Xamarin.Forms"},"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["http:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/xamarin-forms-compilacion-condicional-y-ejecucion-por-dispositivos\/#respond"]}]},{"@type":"WebPage","@id":"http:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/xamarin-forms-compilacion-condicional-y-ejecucion-por-dispositivos\/","url":"http:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/xamarin-forms-compilacion-condicional-y-ejecucion-por-dispositivos\/","name":"Xamarin.Forms | Compilaci\u00f3n condicional y ejecuci\u00f3n por dispositivos","isPartOf":{"@id":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/#website"},"primaryImageOfPage":{"@id":"http:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/xamarin-forms-compilacion-condicional-y-ejecucion-por-dispositivos\/#primaryimage"},"image":{"@id":"http:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/xamarin-forms-compilacion-condicional-y-ejecucion-por-dispositivos\/#primaryimage"},"thumbnailUrl":"http:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2015\/10\/xamarin-logo.png","datePublished":"2015-10-29T11:03:26+00:00","author":{"@id":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/#\/schema\/person\/c84cf613b7c5b8d5e1f7625a3e4c8c27"},"description":"Compilaci\u00f3n condicional y c\u00f3digo por plataforma en Xamarin.Forms","inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["http:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/xamarin-forms-compilacion-condicional-y-ejecucion-por-dispositivos\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"http:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/xamarin-forms-compilacion-condicional-y-ejecucion-por-dispositivos\/#primaryimage","url":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2015\/10\/xamarin-logo.png","contentUrl":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/wp-content\/uploads\/sites\/21\/2015\/10\/xamarin-logo.png","width":400,"height":400},{"@type":"WebSite","@id":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/#website","url":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/","name":"Piensa en software, desarrolla en colores","description":"Las ventajas que te ofrece Microsoft Azure y el mundo.NET","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Person","@id":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/#\/schema\/person\/c84cf613b7c5b8d5e1f7625a3e4c8c27","name":"Santiago Porras Rodr\u00edguez","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/secure.gravatar.com\/avatar\/626d42f63b21b55341f07a1a63002469e3b64521b19c99273621705f28165d74?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/626d42f63b21b55341f07a1a63002469e3b64521b19c99273621705f28165d74?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/626d42f63b21b55341f07a1a63002469e3b64521b19c99273621705f28165d74?s=96&d=mm&r=g","caption":"Santiago Porras Rodr\u00edguez"},"description":"Innovation Team Leader at ENCAMINA | MVP in Developer Technologies. Apasionado por las nuevas tecnolog\u00edas. Colaboro con la comunidad de desarrolladores escribiendo art\u00edculos en mi blog personal y ocasionalmente en CompartiMOSS.com. Adem\u00e1s, soy uno de los coordinadores de TenerifeDev, grupo de usuarios de .NET de Tenerife y de otros grupos como Comunidad Office 365. Puedes encontrarme en la red microparticipando en Twitter con el usuario @saintwukong","sameAs":["https:\/\/x.com\/saintwukong"],"url":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/author\/en-tu-casa-o-en-la-mia\/"}]}},"_links":{"self":[{"href":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/wp-json\/wp\/v2\/posts\/145","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/wp-json\/wp\/v2\/users\/22"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/wp-json\/wp\/v2\/comments?post=145"}],"version-history":[{"count":0,"href":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/wp-json\/wp\/v2\/posts\/145\/revisions"}],"wp:attachment":[{"href":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/wp-json\/wp\/v2\/media?parent=145"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/wp-json\/wp\/v2\/categories?post=145"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.encamina.com\/piensa-en-software-desarrolla-en-colores\/wp-json\/wp\/v2\/tags?post=145"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}