<rss version="2.0"
     xmlns:atom="http://www.w3.org/2005/Atom"
     xmlns:dc="http://purl.org/dc/elements/1.1/">
        <channel>
        <title>Programación Android - Xataka Android</title>
        <link>https://www.xatakandroid.com</link>
        <description>Programación Android: Diez años después, se rompe el muro entre iOS y Android. El lenguaje de Apple por fin es oficial en el sistema de Google....</description>
        <pubDate>Tue, 09 Jun 2026 06:59:07 +0000</pubDate>
        <generator>https://www.xatakandroid.com</generator>
        <atom:link href="https://www.xatakandroid.com/categoria/programacion-android/rss2.xml" rel="self" type="application/rss+xml" />
                                        <item>
                <title><![CDATA[Diez años después, se rompe el muro entre iOS y Android. El lenguaje de Apple por fin es oficial en el sistema de Google]]></title>
                <link>https://www.xatakandroid.com/programacion-android/tiempos-han-cambiado-decada-despues-apple-permitira-crear-apps-android-su-propio-lenguaje-programacion</link>
                <guid>https://www.xatakandroid.com/programacion-android/tiempos-han-cambiado-decada-despues-apple-permitira-crear-apps-android-su-propio-lenguaje-programacion</guid>
                <pubDate>Mon, 27 Oct 2025 12:00:00 +0000</pubDate>
                                         <dc:creator>Pepu Ricca</dc:creator>
                                       <description>
                    <![CDATA[
                              <p>
      <img src="https://i.blogs.es/d4146c/swift-apple-en-android/1024_2000.jpeg" alt="Diez&#x20;a&#x00F1;os&#x20;despu&#x00E9;s,&#x20;se&#x20;rompe&#x20;el&#x20;muro&#x20;entre&#x20;iOS&#x20;y&#x20;Android.&#x20;El&#x20;lenguaje&#x20;de&#x20;Apple&#x20;por&#x20;fin&#x20;es&#x20;oficial&#x20;en&#x20;el&#x20;sistema&#x20;de&#x20;Google">
    </p>
    <p>El mundo del <strong>desarrollo de aplicaciones móviles</strong> siempre ha estado dividido por una frontera clara. Por un lado, en el ecosistema de Apple donde <a class="text-outboundlink" href="https://www.applesfera.com/aplicaciones-ipados/alto-directivo-apple-recomienda-estudiar-este-lenguaje-asi-puedes-aprenderlo-cero-experiencia-previa" data-vars-post-title="Un alto directivo de Apple recomienda estudiar este lenguaje. Así puedes aprenderlo desde cero y sin experiencia previa  " data-vars-post-url="https://www.applesfera.com/aplicaciones-ipados/alto-directivo-apple-recomienda-estudiar-este-lenguaje-asi-puedes-aprenderlo-cero-experiencia-previa" >Swift es el lenguaje predilecto</a>, diseñado por la firma para crear software nativo para el iPhone. Por otro lado, en Android, dominado históricamente por Java y más recientemente <a class="text-outboundlink" href="https://www.xatakandroid.com/programacion-android/no-hara-falta-aprender-java-para-programar-android-kotlin-pasa-a-ser-preferido-google" data-vars-post-title="Ni Java ni C++, Kotlin pasa a ser el lenguaje preferido por Google para desarrollar apps en Android" data-vars-post-url="https://www.xatakandroid.com/programacion-android/no-hara-falta-aprender-java-para-programar-android-kotlin-pasa-a-ser-preferido-google" >por Kotlin</a>. Aunque existen herramientas multiplataforma como React Native o <a class="text-outboundlink" href="https://www.xatakandroid.com/programacion-android/flutter-sdk-google-para-crear-apps-rapidamente-llega-a-version-2-0-soporte-para-windows-mac-web-plegables" data-vars-post-title="Flutter, el SDK de Google para crear apps rápidamente, llega a la versión 2.0 con soporte para Windows, Mac, web y plegables" data-vars-post-url="https://www.xatakandroid.com/programacion-android/flutter-sdk-google-para-crear-apps-rapidamente-llega-a-version-2-0-soporte-para-windows-mac-web-plegables" >Flutter de Google</a>, el desarrollo nativo implicó caminos separados. Ahora, esa frontera se ha vuelto más difusa que nunca.</p>
<!-- BREAK 1 --><div class="article-asset-image article-asset-normal article-asset-center">
 <div class="asset-content">
                   <img class="centro_sinmarco" height=562 width=1064 loading="lazy" decoding="async" sizes="100vw" fetchpriority="high" srcset="https://i.blogs.es/62ad9b/original/450_1000.jpeg 450w, https://i.blogs.es/62ad9b/original/650_1200.jpeg 681w,https://i.blogs.es/62ad9b/original/1024_2000.jpeg 1024w, https://i.blogs.es/62ad9b/original/1366_2000.jpeg 1366w" src="https://i.blogs.es/62ad9b/original/450_1000.jpeg" alt="Swift Apple">
   <img alt="Swift Apple" class="centro_sinmarco" src="https://i.blogs.es/62ad9b/original/450_1000.jpeg">
   
      </div>
</div>
<p><strong>Qué ha cambiado</strong>. Swift, el lenguaje de programación que Apple creó en 2014, ha cruzado al otro lado. El proyecto de código abierto <a rel="noopener, noreferrer" href="https://www.swift.org/blog/nightly-swift-sdk-for-android/" >ha anunciado oficialmente</a> el lanzamiento de las primeras versiones del SDK para Android. Esto significa que, por primera vez, los desarrolladores tienen herramientas oficiales para crear apps de Android <a rel="noopener, noreferrer" href="https://www.macrumors.com/2025/10/26/developers-can-make-android-apps-with-swift/" >usando el lenguaje de Apple</a>. Hasta ahora, usar Swift en Android era un terreno experimental, pero la creación de un grupo de trabajo dedicado a Android dentro del proyecto proporciona herramientas estable y una hoja de ruta clara.</p>
<!-- BREAK 2 --><p><strong>Cómo funciona</strong>. El objetivo no es que las apps de Android se vean y se sientan como las del iPhone. El SDK de Swift no trae consigo SwiftUI, el sistema con el que se diseña la interfaz de iOS. Los derroteros van por otro lado: los desarrolladores escribirán la "lógica de negocio" de la app (el núcleo que gestiona datos y funciones) una sola vez en Swift.</p>
<div class="article-asset article-asset-normal article-asset-center">
 <div class="desvio-container">
  <div class="desvio">
   <div class="desvio-figure js-desvio-figure">
    <a href="https://www.xatakandroid.com/sistema-operativo/google-quiere-controlar-que-apks-instalas-comunidad-android-ha-encontrado-forma-saltarse-sus-restricciones" class="pivot-outboundlink" data-vars-post-title="Google quiere controlar qué APKs instalas, pero la comunidad de Android ya ha encontrado la forma de saltarse sus restricciones ">
     <img alt="Google&#x20;quiere&#x20;controlar&#x20;qu&#x00E9;&#x20;APKs&#x20;instalas,&#x20;pero&#x20;la&#x20;comunidad&#x20;de&#x20;Android&#x20;ya&#x20;ha&#x20;encontrado&#x20;la&#x20;forma&#x20;de&#x20;saltarse&#x20;sus&#x20;restricciones&#x20;" width="375" height="142" src="https://i.blogs.es/563aff/anyapk-instalar-apps/375_142.jpeg">
    </a>
   </div>
   <div class="desvio-summary">
    <div class="desvio-taxonomy js-desvio-taxonomy">
     <a href="https://www.xatakandroid.com/sistema-operativo/google-quiere-controlar-que-apks-instalas-comunidad-android-ha-encontrado-forma-saltarse-sus-restricciones" class="desvio-taxonomy-anchor pivot-outboundlink" data-vars-post-title="Google quiere controlar qué APKs instalas, pero la comunidad de Android ya ha encontrado la forma de saltarse sus restricciones ">En Xataka Android</a>
    </div>
    <a href="https://www.xatakandroid.com/sistema-operativo/google-quiere-controlar-que-apks-instalas-comunidad-android-ha-encontrado-forma-saltarse-sus-restricciones" class="desvio-title js-desvio-title pivot-outboundlink" data-vars-post-title="Google quiere controlar qué APKs instalas, pero la comunidad de Android ya ha encontrado la forma de saltarse sus restricciones ">Google quiere controlar qué APKs instalas, pero la comunidad de Android ya ha encontrado la forma de saltarse sus restricciones </a>
   </div>
  </div>
 </div>
</div>
<p>Ese código se podrá usar <a rel="noopener, noreferrer" href="https://medium.com/@himalimarasinghe/swift-on-android-how-the-new-swift-sdk-unlocks-real-cross-platform-mobile-development-0b4b79d476aa" >tanto en la app de iOS como en la de Android</a>. Sin embargo, la interfaz de usuario se seguirá construyendo con las herramientas nativas de Android como Jetpack Compose en Kotlin. Por lo tanto, una app desarrollada en Swift para Android no debería lucir como la original para el iPhone.</p>
<!-- BREAK 3 --><p><strong>Por qué es importante</strong>. Este enfoque permite a los equipos de desarrollo reutilizar la mayor parte del código, que a su vez acelera los lanzamientos y asegura que las funciones se comporten igual en ambos sistemas. Un desarrollador lo resume así: "reduce el cambio de lenguaje, permite lanzamientos más rápidos y unifica el stack de desarrollo".</p>
<p>La conexión entre el código Swift y el código nativo de Android se realiza a través de un proyecto llamado <em>swift-java</em> que genera "puentes" de forma automática para que ambos lenguajes puedan comunicarse sin problemas.</p>
<!-- BREAK 4 --><div class="article-asset-video article-asset-normal">
 <div class="asset-content">
  <div class="base-asset-video">
   <div class="js-dailymotion">
    <script type="application/json">
                          {"videoId":"x8k1wav","autoplay":false,"title":"ENTREVISTA MIDUDEV - TODO sobre la PROGRAMACIÓN INFORMÁTICA | XTK: El programa de Xataka", "tag":"", "duration":"521"}
                  </script>
   </div>
  </div>
 </div>
</div>
<p><strong>Debate de la comunidad</strong>. El anuncio ha generado un intenso debate entre los desarrolladores en foros como <a rel="noopener, noreferrer" href="https://news.ycombinator.com/item?id=45698570" >YCombinator</a>, y la acogida ha sido mayoritariamente positiva. Muchos expertos ven con buenos ojos que el enfoque sea compartir la lógica y no la interfaz.</p>
<!-- BREAK 5 --><p>Como se comenta, "compartir la interfaz en apps complejas acaba siendo una pesadilla". Al mantener la interfaz nativa de cada plataforma, la app se sentirá integrada en el sistema operativo, evitando el extraño efecto que a veces producen otras tecnologías que intentan imitar los botones o menús nativos.</p>
<p>Imagen de portada | Pepu Ricca para Xataka (con edición)</p>
<p>En Xataka Android | <a class="text-outboundlink" href="https://www.xatakandroid.com/tutoriales/ajustes-ocultos-tu-tele-asi-se-activan-opciones-desarrollador-tv-google-tv" data-vars-post-title="Los ajustes 'ocultos' de tu tele: así se activan las opciones de desarrollador en Android TV y Google TV" data-vars-post-url="https://www.xatakandroid.com/tutoriales/ajustes-ocultos-tu-tele-asi-se-activan-opciones-desarrollador-tv-google-tv">Los ajustes 'ocultos' de tu tele: así se activan las opciones de desarrollador en Android TV y Google TV</a></p>
<script>
 (function() {
  window._JS_MODULES = window._JS_MODULES || {};
  var headElement = document.getElementsByTagName('head')[0];
  if (_JS_MODULES.instagram) {
   var instagramScript = document.createElement('script');
   instagramScript.src = 'https://platform.instagram.com/en_US/embeds.js';
   instagramScript.async = true;
   instagramScript.defer = true;
   headElement.appendChild(instagramScript);
  }
 })();
</script>

                    ]]>
                </description>
            </item>
                                <item>
                <title><![CDATA[Tengo cero idea de programar y me puse a crear una aplicación. Ni cinco minutos tardé con Google Firebase]]></title>
                <link>https://www.xatakandroid.com/google/tengo-cero-idea-programar-me-puse-a-crear-aplicacion-cinco-minutos-tarde-google-firebase</link>
                <guid>https://www.xatakandroid.com/google/tengo-cero-idea-programar-me-puse-a-crear-aplicacion-cinco-minutos-tarde-google-firebase</guid>
                <pubDate>Thu, 10 Apr 2025 16:11:00 +0000</pubDate>
                                         <dc:creator>Iván Linares</dc:creator>
                                       <description>
                    <![CDATA[
                              <p>
      <img src="https://i.blogs.es/c1c584/firebase-studio-portada/1024_2000.jpeg" alt="Tengo&#x20;cero&#x20;idea&#x20;de&#x20;programar&#x20;y&#x20;me&#x20;puse&#x20;a&#x20;crear&#x20;una&#x20;aplicaci&#x00F3;n.&#x20;Ni&#x20;cinco&#x20;minutos&#x20;tard&#x00E9;&#x20;con&#x20;Google&#x20;Firebase">
    </p>
    <p>Desarrollar una aplicación no es una tarea apta para cualquiera. O al menos no lo era hasta la aparición de la IA: Google ha desarrollado una herramienta basada en <a class="text-outboundlink" href="https://www.xatakandroid.com/tutoriales/he-probado-nueva-generacion-gemini-mi-android-puedo-decirle-adios-definitivo-a-google-assistant" data-vars-post-title="He probado la nueva generación de Gemini en mi Android. Puedo decirle adiós definitivo a Google Assistant" data-vars-post-url="https://www.xatakandroid.com/tutoriales/he-probado-nueva-generacion-gemini-mi-android-puedo-decirle-adios-definitivo-a-google-assistant">Gemini</a> que habilita el desarrollo de apps sin conocer ningún lenguaje de programación. Se llama <strong>Google Firebase Studio</strong> y está disponible gratis.</p>
<!-- BREAK 1 --><p>La IA es capaz de escribir texto, de hacer una foto con una orden basada en palabras, puede <a class="text-outboundlink" href="https://www.xatakandroid.com/aplicaciones-android/motivo-para-pagar-chatgpt-su-modo-avanzado-voz-ahora-gratis-para-todos" data-vars-post-title="El modo avanzado de voz de ChatGPT ahora es gratis para todos: así puedes probar el gran rival del Asistente de Google" data-vars-post-url="https://www.xatakandroid.com/aplicaciones-android/motivo-para-pagar-chatgpt-su-modo-avanzado-voz-ahora-gratis-para-todos">hablar casi como una persona</a>... Y claro, también puede <a class="text-outboundlink" href="https://www.xatakandroid.com/aplicaciones-android/si-tambien-sonaste-con-una-app-que-te-hiciera-aplicaciones-llego-el-momento-de-probarla-solo-necesitas-tu-movil" data-vars-post-title="Replit es un antes y un después en la programación móvil: ya podemos crear una app en segundos desde otra app" data-vars-post-url="https://www.xatakandroid.com/aplicaciones-android/si-tambien-sonaste-con-una-app-que-te-hiciera-aplicaciones-llego-el-momento-de-probarla-solo-necesitas-tu-movil">crear aplicaciones</a>. Con la ventaja de que quien las piensa <strong>no necesita saber código</strong>: basta con dar unas instrucciones básicas e ir puliendo los resultados hasta saltar a producción. Google Firebase lo hace gratis.</p>
<h2>Google Firebase Studio, la IA que crea aplicaciones por ti</h2><div class="article-asset-image article-asset-normal article-asset-center">
 <div class="asset-content">
     <div class="caption-img ">
                   <img class="centro_sinmarco" height=844 width=1500 loading="lazy" decoding="async" sizes="100vw" fetchpriority="high" srcset="https://i.blogs.es/20b714/firebase-studio-1/450_1000.jpeg 450w, https://i.blogs.es/20b714/firebase-studio-1/650_1200.jpeg 681w,https://i.blogs.es/20b714/firebase-studio-1/1024_2000.jpeg 1024w, https://i.blogs.es/20b714/firebase-studio-1/1366_2000.jpeg 1366w" src="https://i.blogs.es/20b714/firebase-studio-1/450_1000.jpeg" alt="Firebase Studio no se diferencia en exceso de un chatbot como ChatGPT o Gemini">
   <img alt="Firebase Studio no se diferencia en exceso de un chatbot como ChatGPT o Gemini" class="centro_sinmarco" src="https://i.blogs.es/20b714/firebase-studio-1/450_1000.jpeg">
   
        <span>Firebase Studio no se diferencia en exceso de un chatbot como ChatGPT o Gemini</span>
   </div>
   </div>
</div>
<p>Google Firebase es una plataforma de desarrollo que cubre una buena parte de las necesidades que puede tener cualquier desarrollador. Permite almacenar el software, provee de notificaciones push a las apps, dispone de servicios de autenticación, de análisis... Y ahora también incluye una IA capaz de crear aplicaciones <strong>desde la idea primigenia hasta producción</strong>. Sin escribir una sola línea de código.</p>
<!-- BREAK 2 --><div class="article-asset article-asset-normal article-asset-center">
 <div class="desvio-container">
  <div class="desvio">
   <div class="desvio-figure js-desvio-figure">
    <a href="https://www.xatakandroid.com/aplicaciones-android/gemini-chatgpt-tienen-competencia-google-play-grok-fin-estrena-su-app-android" class="pivot-outboundlink" data-vars-post-title="La app de Grok por fin está en Android. La hemos probado: es una gran alternativa a ChatGPT y Gemini">
     <img alt="La&#x20;app&#x20;de&#x20;Grok&#x20;por&#x20;fin&#x20;est&#x00E1;&#x20;en&#x20;Android.&#x20;La&#x20;hemos&#x20;probado&#x3A;&#x20;es&#x20;una&#x20;gran&#x20;alternativa&#x20;a&#x20;ChatGPT&#x20;y&#x20;Gemini" width="375" height="142" src="https://i.blogs.es/b0278b/grok-movil-portada/375_142.jpeg">
    </a>
   </div>
   <div class="desvio-summary">
    <div class="desvio-taxonomy js-desvio-taxonomy">
     <a href="https://www.xatakandroid.com/aplicaciones-android/gemini-chatgpt-tienen-competencia-google-play-grok-fin-estrena-su-app-android" class="desvio-taxonomy-anchor pivot-outboundlink" data-vars-post-title="La app de Grok por fin está en Android. La hemos probado: es una gran alternativa a ChatGPT y Gemini">En Xataka Android</a>
    </div>
    <a href="https://www.xatakandroid.com/aplicaciones-android/gemini-chatgpt-tienen-competencia-google-play-grok-fin-estrena-su-app-android" class="desvio-title js-desvio-title pivot-outboundlink" data-vars-post-title="La app de Grok por fin está en Android. La hemos probado: es una gran alternativa a ChatGPT y Gemini">La app de Grok por fin está en Android. La hemos probado: es una gran alternativa a ChatGPT y Gemini</a>
   </div>
  </div>
 </div>
</div>
<p>Tal y como <a rel="noopener, noreferrer" href="https://x.com/Firebase/status/1910001005565284761">anunció Google</a>, Firebase Studio está ya disponible en su fase experimental y abierta a cualquier usuario, sea desarrollador o no. Solo hace falta una cuenta de Google y entrar en la <a rel="noopener, noreferrer" href="https://studio.firebase.google.com/">página de la herramienta</a>. Todo gratis, por cierto, aunque con ciertos inconvenientes; como unas lógicas limitaciones de uso y un estado experimental. Google no miente en ese punto.</p>
<!-- BREAK 3 --><div class="article-asset-image article-asset-large article-asset-center">
 <div class="asset-content">
     <div class="caption-img ">
                   <img class="" height=805 width=1500 loading="lazy" decoding="async" sizes="100vw" fetchpriority="high" srcset="https://i.blogs.es/0d654d/firebase-studio-2/450_1000.jpeg 450w, https://i.blogs.es/0d654d/firebase-studio-2/650_1200.jpeg 681w,https://i.blogs.es/0d654d/firebase-studio-2/1024_2000.jpeg 1024w, https://i.blogs.es/0d654d/firebase-studio-2/1366_2000.jpeg 1366w" src="https://i.blogs.es/0d654d/firebase-studio-2/450_1000.jpeg" alt="Interfaz de Firebase Studio en escritorio con la app ejecutándose a la izquierda y timeline a la derecha">
   <img alt="Interfaz de Firebase Studio en escritorio con la app ejecutándose a la izquierda y timeline a la derecha" class="" src="https://i.blogs.es/0d654d/firebase-studio-2/450_1000.jpeg">
   
        <span>Interfaz de Firebase Studio en escritorio con la app ejecutándose a la izquierda y timeline a la derecha</span>
   </div>
   </div>
</div>
<p>Una vez dentro, el aspecto que saluda al usuario es el de un chatbot al uso. Vamos, como si fuera <a class="text-outboundlink" href="https://www.xatakandroid.com/productividad-herramientas/google-le-pone-ojos-a-gemini-capaz-describir-que-ve-me-parece-mejor-novedad-anos" data-vars-post-title="Gemini Live ya está aquí y es capaz de describir lo que ve. Me parece la mejor novedad en años" data-vars-post-url="https://www.xatakandroid.com/productividad-herramientas/google-le-pone-ojos-a-gemini-capaz-describir-que-ve-me-parece-mejor-novedad-anos">Gemini</a>: un simple cuadro de texto al que explicarle <strong>lo que queremos hacer con la app</strong>, cómo debe ser, sus funciones y cualquier otra cosa que se nos ocurra. Firebase Studio, que está basado en <a class="text-outboundlink" href="https://www.xatakandroid.com/productividad-herramientas/gemini-2-0-realidad-nueva-inteligencia-artificial-google-puede-hacer-casi-cualquier-cosa" data-vars-post-title="Gemini 2.0 ya es una realidad, y la nueva inteligencia artificial de Google puede hacer casi cualquier cosa" data-vars-post-url="https://www.xatakandroid.com/productividad-herramientas/gemini-2-0-realidad-nueva-inteligencia-artificial-google-puede-hacer-casi-cualquier-cosa">Gemini 2.0 Flash</a>, creará un plan de actuación a lo deep research e irá yendo paso por paso en la creación de la app; desde la generación de código al testeo. Podemos ver el proceso en tiempo real. Y funciona en el móvil; por más que sea mucho más cómodo en un ordenador.</p>
<!-- BREAK 4 --><div class="article-asset-summary article-asset-normal article-asset-center">
 <div class="asset-content">
     <div class="sumario">Google Firebase Studio habla en inglés, pero podemos comunicarnos con la IA en español: entiende perfectamente el idioma y traslada la petición al código</div>
   </div>
</div>
<p>Hemos estado probando la herramienta y nos parece fascinante. Muy rápida, precisa, perfecta para adelantar proyectos, para corregir y, sobre todo, es ideal para que quienes no sabemos código <strong>podamos tener nuestra propia aplicación en minutos</strong>. Todo a base de texto y con creaciones que abarcan el propio código, bases de datos, contenido gráfico... Y con la opción de publicar directamente la app dándole al botón de «Publish».</p>
<!-- BREAK 5 --><p>¿Y qué ha hecho de ejemplo? Creó de cero un programa de adivinar números, como el que dejamos a continuación. Este está hecho con Gemini 2.5 Pro para adaptarlo a las necesidades de nuestra página, pero es exactamente igual al creado por Firebase Studio: utilizamos idéntico prompt.</p>
<div class="article-asset-rich-content article-asset-large">
  <div class="asset-content">
    <style>
    /* Estilos para el Juego Adivina Rápido */
    .game-container-ag { /* Usamos un nombre de clase ligeramente único para minimizar conflictos */
        font-family: sans-serif;
        background-color: #fff;
        padding: 30px;
        border-radius: 8px;
        box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
        text-align: center;
        max-width: 400px;
        width: 90%;
        margin: 20px auto; /* Centra el contenedor */
        box-sizing: border-box; /* Asegura que padding/border no afecten el tamaño total */
    }

    .game-container-ag * { /* Aplicar box-sizing a todos los elementos internos */
       box-sizing: inherit;
    }


    .game-container-ag h1 {
        color: #007bff;
        margin-top: 0; /* Quitar margen superior por defecto */
        margin-bottom: 10px;
        font-size: 1.8em; /* Tamaño ajustado */
    }

    .game-container-ag p {
        color: #555;
        margin-bottom: 20px;
    }

    .game-container-ag .input-group-ag {
        margin-bottom: 15px;
    }

    .game-container-ag input[type="number"] {
        width: 100%; /* Ocupa todo el ancho disponible */
        padding: 10px;
        border: 1px solid #ccc;
        border-radius: 4px;
        font-size: 1rem;
         /* box-sizing: border-box; ya heredado */
    }
    /* Esconde las flechas del input number */
    .game-container-ag input[type=number]::-webkit-inner-spin-button,
    .game-container-ag input[type=number]::-webkit-outer-spin-button {
      -webkit-appearance: none;
      margin: 0;
    }
    .game-container-ag input[type=number] {
      -moz-appearance: textfield; /* Firefox */
    }

    .game-container-ag button {
        width: 100%;
        padding: 12px;
        border: none;
        border-radius: 4px;
        font-size: 1rem;
        cursor: pointer;
        transition: background-color 0.2s ease;
        margin-top: 10px;
         /* box-sizing: border-box; ya heredado */
    }

    .game-container-ag .guess-button-ag {
        background-color: #007bff;
        color: white;
    }

    .game-container-ag .guess-button-ag:hover:not(:disabled) {
        background-color: #0056b3;
    }

    .game-container-ag .reset-button-ag {
        background-color: #28a745;
        color: white;
    }

    .game-container-ag .reset-button-ag:hover {
        background-color: #218838;
    }

    .game-container-ag button:disabled {
        background-color: #cccccc;
        cursor: not-allowed;
    }

    .game-container-ag .message-area-ag {
        margin-top: 20px;
        min-height: 2.5em;
        font-weight: bold;
        color: #dc3545; /* Rojo por defecto */
    }

    .game-container-ag .message-area-ag.success-ag {
         color: #28a745; /* Verde para éxito */
    }

    .game-container-ag .attempts-info-ag {
        margin-top: 15px;
        color: #6c757d; /* Gris */
    }
     /* Fin de Estilos para el Juego */
</style>

<div id="adivinaRapidoGameInstance" class="game-container-ag"> <h1>Adivina Rápido</h1>
    <p>Adivina el número secreto entre 1 y 100.</p>

    <div class="input-group-ag">
        <input aria-label="Introduce tu número" max="100" min="1" placeholder="Introduce tu número" class="guessInput-ag" type="number">
    </div>

    <button class="guess-button-ag">Probar número</button>
    <button class="reset-button-ag">Reiniciar</button>

    <div class="message-area-ag"></div>
    <div class="attempts-info-ag"></div>
</div>

<script>
    (function() {
        // Busca el contenedor específico de esta instancia del juego
        const gameInstance = document.getElementById('adivinaRapidoGameInstance');
        if (!gameInstance) {
            console.error("Contenedor del juego 'adivinaRapidoGameInstance' no encontrado.");
            return; // Salir si el contenedor no está
        }

        // Selecciona elementos DENTRO de este contenedor específico
        const guessInput = gameInstance.querySelector('.guessInput-ag');
        const guessButton = gameInstance.querySelector('.guess-button-ag');
        const resetButton = gameInstance.querySelector('.reset-button-ag');
        const messageArea = gameInstance.querySelector('.message-area-ag');
        const attemptsInfo = gameInstance.querySelector('.attempts-info-ag');

        // Verifica si todos los elementos necesarios fueron encontrados
        if (!guessInput || !guessButton || !resetButton || !messageArea || !attemptsInfo) {
            console.error("Error: No se encontraron todos los elementos necesarios dentro de 'adivinaRapidoGameInstance'.");
            return;
        }

        let secretNumber;
        let attemptsLeft;
        const maxAttempts = 10;

        function initGame() {
            secretNumber = Math.floor(Math.random() * 100) + 1;
            attemptsLeft = maxAttempts;
            setMessage(''); // Limpia mensaje
            messageArea.classList.remove('success-ag'); // Quita clase de éxito si estaba
            attemptsInfo.textContent = `Intentos restantes: ${attemptsLeft}`;
            guessInput.value = '';
            guessInput.disabled = false;
            guessButton.disabled = false;
            guessInput.focus();
            // console.log(`Número secreto (para depuración): ${secretNumber}`);
        }

        function checkGuess() {
            const userGuess = parseInt(guessInput.value);

            if (isNaN(userGuess) || userGuess < 1 || userGuess > 100) {
                setMessage('Por favor, introduce un número válido entre 1 y 100.');
                return;
            }

            attemptsLeft--;
            attemptsInfo.textContent = `Intentos restantes: ${attemptsLeft}`;

            if (userGuess === secretNumber) {
                setMessage(`¡Felicidades! Has adivinado el número ${secretNumber}.`, true);
                endGame();
            } else if (attemptsLeft <= 0) {
                setMessage(`¡Has perdido! El número secreto era ${secretNumber}.`);
                endGame();
            } else {
                const hint = userGuess < secretNumber ? 'Demasiado bajo.' : 'Demasiado alto.';
                setMessage(`${hint} Inténtalo de nuevo.`);
                guessInput.value = '';
                guessInput.focus();
            }
        }

        function setMessage(msg, isSuccess = false) {
            messageArea.textContent = msg;
            if (isSuccess) {
                messageArea.classList.add('success-ag');
            } else {
                messageArea.classList.remove('success-ag');
            }
        }

        function endGame() {
            guessInput.disabled = true;
            guessButton.disabled = true;
        }

        // --- Event Listeners ---
        guessButton.addEventListener('click', checkGuess);
        guessInput.addEventListener('keydown', (event) => {
            if (event.key === 'Enter' && !guessButton.disabled) {
                checkGuess();
            }
        });
        resetButton.addEventListener('click', initGame);

        // --- Inicializar el juego ---
        // Verifica si el script ya se ejecutó para este contenedor (útil si el CMS recarga scripts)
        if (!gameInstance.dataset.initialized) {
             initGame();
             gameInstance.dataset.initialized = 'true'; // Marca como inicializado
        }

    })(); // Ejecuta la función anónima inmediatamente
</script>
  </div>
</div>
<h2>Si siempre quisiste crear apps, Firebase Studio lo hace fácil</h2>
<p>La herramienta de Google no es ni la primera ni la única IA que crea apps desde cero y sin saber código, pero nos ha parecido muy sencilla de utilizar, muy potente y con un detalle importante a destacar: Firebase Studio es gratuito para <a rel="noopener, noreferrer" href="https://firebase.google.com/docs/studio?hl=es-419#pricing">tres workspaces</a>, más que suficiente para tener unas apps propias. Que se pueden usar desde ahí o publicar, una función que aún no va demasiado bien.</p>
<!-- BREAK 6 --><p>Imagen de portada | Google Firebase editada</p>
<p>En Xataka Android | <a class="text-outboundlink" href="https://www.xatakandroid.com/mercado/inteligencia-artificial-solo-principio-proxima-ambicion-meta-robots-humanoides" data-vars-post-title="La inteligencia artificial es solo el principio. Meta y Apple ya saben qué vendrá después" data-vars-post-url="https://www.xatakandroid.com/mercado/inteligencia-artificial-solo-principio-proxima-ambicion-meta-robots-humanoides">La inteligencia artificial es solo el principio. Meta y Apple ya saben qué vendrá después</a></p>
<script>
 (function() {
  window._JS_MODULES = window._JS_MODULES || {};
  var headElement = document.getElementsByTagName('head')[0];
  if (_JS_MODULES.instagram) {
   var instagramScript = document.createElement('script');
   instagramScript.src = 'https://platform.instagram.com/en_US/embeds.js';
   instagramScript.async = true;
   instagramScript.defer = true;
   headElement.appendChild(instagramScript);
  }
 })();
</script>

                    ]]>
                </description>
            </item>
                                <item>
                <title><![CDATA[Google facilita que las aplicaciones te den la lata para que las actualices cada vez que las abres]]></title>
                <link>https://www.xatakandroid.com/play-store/google-facilita-que-aplicaciones-nos-den-lata-actualicemos-cada-vez-que-abrimos</link>
                <guid>https://www.xatakandroid.com/play-store/google-facilita-que-aplicaciones-nos-den-lata-actualicemos-cada-vez-que-abrimos</guid>
                <pubDate>Tue, 30 Jan 2024 07:00:00 +0000</pubDate>
                                         <dc:creator>Iván Ramírez</dc:creator>
                                       <description>
                    <![CDATA[
                              <p>
      <img src="https://i.blogs.es/7a5137/update/1024_2000.jpeg" alt="Google&#x20;facilita&#x20;que&#x20;las&#x20;aplicaciones&#x20;te&#x20;den&#x20;la&#x20;lata&#x20;para&#x20;que&#x20;las&#x20;actualices&#x20;cada&#x20;vez&#x20;que&#x20;las&#x20;abres">
    </p>
    <p>Hay dos tipos de personas, las que actualizan todas sus aplicaciones al por mayor y quienes sólo actualizan aplicaciones cuando es estrictamente necesario. Este último grupo va a tener cada vez más complicado mantener este modo de vida, por las nuevas<strong> peticiones de actualización</strong> lanzadas por Google.</p>
<!-- BREAK 1 --><p>Intentas abrir una aplicación y lo que te encuentras en su lugar es <strong>una pantalla que indica que hay una actualización disponible</strong>, sus cambios y el botón de actualizar. Si no quieres actualizar, hay un botón X para cerrar el aviso, aunque te va a volver a aparecer cada vez que abras la aplicación de nuevo.</p>
<h2>Que actualices, leñe</h2>
<p>Google ha anunciado una nueva herramienta para desarrolladores integrada en <a class="text-outboundlink" href="https://www.xatakandroid.com/play-store/tripas-consola-google-play-asi-herramienta-fundamental-para-publicar-administrar-aplicaciones-android" data-vars-post-title="Las tripas de la consola de Google Play, así es la herramienta fundamental para publicar y administrar aplicaciones en Android" data-vars-post-url="https://www.xatakandroid.com/play-store/tripas-consola-google-play-asi-herramienta-fundamental-para-publicar-administrar-aplicaciones-android">la Consola de Google Play</a>, la plataforma en la que se gestionan las aplicaciones subidas a su tienda. La novedad permite a los desarrolladores<strong> incluir una invitación a actualizar la aplicación</strong> a aquellos usuarios que siguen usando una versión antigua.</p>
<!-- BREAK 2 --><div class="article-asset article-asset-normal article-asset-center">
 <div class="desvio-container">
  <div class="desvio">
   <div class="desvio-figure js-desvio-figure">
    <a href="https://www.xatakandroid.com/tutoriales/problemas-para-descargar-actualizar-apps-google-play-causas-soluciones" class="pivot-outboundlink" data-vars-post-title="Problemas para descargar o actualizar apps en Google Play: causas y soluciones">
     <img alt="Problemas&#x20;para&#x20;descargar&#x20;o&#x20;actualizar&#x20;apps&#x20;en&#x20;Google&#x20;Play&#x3A;&#x20;causas&#x20;y&#x20;soluciones" width="375" height="142" src="https://i.blogs.es/2b8041/apps-pendientes-descarga-google-play/375_142.jpg">
    </a>
   </div>
   <div class="desvio-summary">
    <div class="desvio-taxonomy js-desvio-taxonomy">
     <a href="https://www.xatakandroid.com/tutoriales/problemas-para-descargar-actualizar-apps-google-play-causas-soluciones" class="desvio-taxonomy-anchor pivot-outboundlink" data-vars-post-title="Problemas para descargar o actualizar apps en Google Play: causas y soluciones">En Xataka Android</a>
    </div>
    <a href="https://www.xatakandroid.com/tutoriales/problemas-para-descargar-actualizar-apps-google-play-causas-soluciones" class="desvio-title js-desvio-title pivot-outboundlink" data-vars-post-title="Problemas para descargar o actualizar apps en Google Play: causas y soluciones">Problemas para descargar o actualizar apps en Google Play: causas y soluciones</a>
   </div>
  </div>
 </div>
</div>
<p>Esto puede ser útil cuando <strong>una versión antigua de la aplicación ha dejado de funcionar</strong> o tiene algún fallo de seguridad que ha sido corregido recientamente, de modo que incita a los usuarios a actualizar inmediatamente, sin esperar a la próxima vez que se haga de forma pasiva. El aviso se mostrará a pantalla completa y nos dará la opción de actualizar directamente, ver más información o cerrarlo y seguir como estábamos.</p>
<!-- BREAK 3 --><div class="article-asset-image article-asset-normal article-asset-center">
 <div class="asset-content">
                   <img class="centro_sinmarco" height=916 width=904 loading="lazy" decoding="async" sizes="100vw" fetchpriority="high" srcset="https://i.blogs.es/2c76a2/actualizar/450_1000.jpeg 450w, https://i.blogs.es/2c76a2/actualizar/650_1200.jpeg 681w,https://i.blogs.es/2c76a2/actualizar/1024_2000.jpeg 1024w, https://i.blogs.es/2c76a2/actualizar/1366_2000.jpeg 1366w" src="https://i.blogs.es/2c76a2/actualizar/450_1000.jpeg" alt="Actualizar">
   <img alt="Actualizar" class="centro_sinmarco" src="https://i.blogs.es/2c76a2/actualizar/450_1000.jpeg">
   
      </div>
</div>
<p>Los desarrolladores pueden usar esta herramienta para mostrar estos avisos <strong>segmentados por versión de la aplicación, país y versión de Android</strong>. El principal requisito para hacerlo es que dichas versiones se lanzaran usando el sistema de <a class="text-outboundlink" href="https://www.xatakandroid.com/programacion-android/app-bundles-android-que-que-se-diferencian-apk" data-vars-post-title="App Bundles de Android: qué son y en qué se diferencian de los APK" data-vars-post-url="https://www.xatakandroid.com/programacion-android/app-bundles-android-que-que-se-diferencian-apk">app bundles de Google</a> y no con un APK.</p>
<!-- BREAK 4 --><p>Los usuarios pueden cerrar el aviso pulsando el botón de la X, pero <strong>volverá a aparecer la próxima vez que se abra la aplicación desde cero</strong>, lo cual sin duda va a ser molesto para quienes quieran mantener la versión antigua por el motivo que sea.</p>
<div class="article-asset-video article-asset-normal">
 <div class="asset-content">
  <div class="base-asset-video">
   <div class="js-dailymotion">
    <script type="application/json">
                          {"videoId":"x8mx3ju","autoplay":true,"title":"ANDROID 14: 8 FUNCIONES por las que ACTUALIZAR el DÍA 1", "tag":""}
                  </script>
   </div>
  </div>
 </div>
</div>
<p>Como herramienta es bastante útil para los desarrolladores y en casos concretos, aunque tendremos que esperar a que la implementen más desarrolladores en sus aplicaciones para ver si se hace más <strong>un uso o un abuso </strong>de sus posibilidades</p>
<!-- BREAK 5 --><p>Más información | <a rel="noopener, noreferrer" href="https://android-developers.googleblog.com/2024/01/prompt-users-to-update-to-your-latest-app-version-google-play.html">Android Developers</a></p>
<p>En Xataka Android | <a class="text-outboundlink" href="https://www.xatakandroid.com/tutoriales/como-actualizar-aplicaciones-android" data-vars-post-title="Cómo actualizar aplicaciones en Android" data-vars-post-url="https://www.xatakandroid.com/tutoriales/como-actualizar-aplicaciones-android">Cómo actualizar aplicaciones en Android</a></p>
<script>
 (function() {
  window._JS_MODULES = window._JS_MODULES || {};
  var headElement = document.getElementsByTagName('head')[0];
  if (_JS_MODULES.instagram) {
   var instagramScript = document.createElement('script');
   instagramScript.src = 'https://platform.instagram.com/en_US/embeds.js';
   instagramScript.async = true;
   instagramScript.defer = true;
   headElement.appendChild(instagramScript);
  }
 })();
</script>

                    ]]>
                </description>
            </item>
                                <item>
                <title><![CDATA[Así son las nuevas barras de progreso y deslizadores de Material You: gruesos y con huecos]]></title>
                <link>https://www.xatakandroid.com/aplicaciones-android/asi-nuevas-barras-progreso-deslizadores-material-you-gruesos-huecos</link>
                <guid>https://www.xatakandroid.com/aplicaciones-android/asi-nuevas-barras-progreso-deslizadores-material-you-gruesos-huecos</guid>
                <pubDate>Fri, 19 Jan 2024 08:00:00 +0000</pubDate>
                                         <dc:creator>Iván Ramírez</dc:creator>
                                       <description>
                    <![CDATA[
                              <p>
      <img src="https://i.blogs.es/ce3c29/materialyou/1024_2000.jpeg" alt="As&#x00ED;&#x20;son&#x20;las&#x20;nuevas&#x20;barras&#x20;de&#x20;progreso&#x20;y&#x20;deslizadores&#x20;de&#x20;Material&#x20;You&#x3A;&#x20;gruesos&#x20;y&#x20;con&#x20;huecos">
    </p>
    <p>Material You es la última versión del lenguaje visual que Google aplica en Android y sus aplicaciones. Llegó de la mano de <a class="text-outboundlink" href="https://www.xatakandroid.com/nuevo/nuevo-android-12-informacion" data-vars-post-title="Android 12: fecha de lanzamiento, modelos compatibles y todo lo que sabemos del sistema operativo de Google para móviles" data-vars-post-url="https://www.xatakandroid.com/nuevo/nuevo-android-12-informacion">Android 12</a>, aunque desde entonces ha seguido evolucionando con novedades, como los dos últimos cambios que <strong>reinventan las barras de progreso y deslizadores</strong>.</p>
<!-- BREAK 1 --><p>Prepárate para ver <strong>huecos o espacios en las barras de progreso</strong> y deslizadores visiblemente más gruesos, pues la ultimísima documentación de Material You, de diciembre de 2023, los adapta para darles una ligera vuelta de tuerca.</p>
<h2>Nuevos deslizadores</h2>
<p>Los deslizadores son los controles con los cuales podemos ajustar un valor haciendo justamente eso, <strong>deslizando el control</strong>. &nbsp;En Android llevan desde tiempos inmemoriales y probablemente el diseño más conocido de ellos sea el de una simple línea con un círculo para ajustar el valor.</p>
<!-- BREAK 2 --><div class="article-asset article-asset-normal article-asset-center">
 <div class="desvio-container">
  <div class="desvio">
   <div class="desvio-figure js-desvio-figure">
    <a href="https://www.xatakandroid.com/sistema-operativo/que-material-you-que-se-diferencia-material-design" class="pivot-outboundlink" data-vars-post-title="Qué es Material You y en qué se diferencia de Material Design">
     <img alt="Qu&#x00E9;&#x20;es&#x20;Material&#x20;You&#x20;y&#x20;en&#x20;qu&#x00E9;&#x20;se&#x20;diferencia&#x20;de&#x20;Material&#x20;Design" width="375" height="142" src="https://i.blogs.es/36f184/materialdesign/375_142.jpg">
    </a>
   </div>
   <div class="desvio-summary">
    <div class="desvio-taxonomy js-desvio-taxonomy">
     <a href="https://www.xatakandroid.com/sistema-operativo/que-material-you-que-se-diferencia-material-design" class="desvio-taxonomy-anchor pivot-outboundlink" data-vars-post-title="Qué es Material You y en qué se diferencia de Material Design">En Xataka Android</a>
    </div>
    <a href="https://www.xatakandroid.com/sistema-operativo/que-material-you-que-se-diferencia-material-design" class="desvio-title js-desvio-title pivot-outboundlink" data-vars-post-title="Qué es Material You y en qué se diferencia de Material Design">Qué es Material You y en qué se diferencia de Material Design</a>
   </div>
  </div>
 </div>
</div>
<p>La última versión de Material You <strong>hace a los deslizadores más gruesos</strong> y llegan en cuatro estilos: continuo, discreto, centrado y selección de rango. La gran novedad, además del grosor de la barra, es que la barra se corta para incluir el control deslizante, que no es un círculo sino una línea.</p>
<!-- BREAK 3 --><div class="article-asset-embed-giphy article-asset-normal article-asset-center">
 <div class="article-asset-video">
  <div class="asset-content">
   <div id="_giphy_TFXOyzU4DiVXxSJujp" class="base-asset-video">
     <iframe src="https://giphy.com/embed/TFXOyzU4DiVXxSJujp" style="position:absolute" class="giphy-embed" allowFullScreen></iframe>
   </div>
  </div>
 </div>
</div>
<p>Mientras ajustamos el valor, vemos el número que corresponde mientras lo arrastramos y en caso de tener valores fijos predefinidos, estos se marcan en la línea con puntos.</p>
<!-- BREAK 4 --><div class="article-asset-image article-asset-normal article-asset-center">
 <div class="asset-content">
     <div class="caption-img ">
                   <img class="centro_sinmarco" height=649 width=1088 loading="lazy" decoding="async" sizes="100vw" fetchpriority="high" srcset="https://i.blogs.es/4e21f0/valores/450_1000.jpeg 450w, https://i.blogs.es/4e21f0/valores/650_1200.jpeg 681w,https://i.blogs.es/4e21f0/valores/1024_2000.jpeg 1024w, https://i.blogs.es/4e21f0/valores/1366_2000.jpeg 1366w" src="https://i.blogs.es/4e21f0/valores/450_1000.jpeg" alt="Valores">
   <img alt="Valores" class="centro_sinmarco" src="https://i.blogs.es/4e21f0/valores/450_1000.jpeg">
   
        <span>Deslizadores con estilo continuo (1), discreto (2), centrado (3) y selección de rango (4).</span>
   </div>
   </div>
</div>
<h2>Barras de progreso con indicador de fin</h2>
<p>Algo parecido sucede con las barras de progreso, que se mantienen bastante parecidas salvo por dos detalles: que incluyen una brecha en su diseño, es decir, no es una barra continua. Puedes ver qué es esto exactamente en la siguiente animación:</p>
<!-- BREAK 5 --><div class="article-asset-embed-giphy article-asset-normal article-asset-center">
 <div class="article-asset-video">
  <div class="asset-content">
   <div id="_giphy_kGYNMIRMT6zDSjyGiM" class="base-asset-video">
     <iframe src="https://giphy.com/embed/kGYNMIRMT6zDSjyGiM" style="position:absolute" class="giphy-embed" allowFullScreen></iframe>
   </div>
  </div>
 </div>
</div>
<p>Además, se añade <strong>un indicador para mostrar el fin de la barra</strong> cuando se está mostrando un progreso determinado, es decir, que tiene un final en contraste con las barras indeterminadas que se llenan una y otra vez.</p>
<!-- BREAK 6 --><div class="article-asset-video article-asset-normal">
 <div class="asset-content">
  <div class="base-asset-video">
   <div class="js-dailymotion">
    <script type="application/json">
                          {"videoId":"x7zv8ug","autoplay":true,"title":"10 APLICACIONES de GOOGLE que PODRÍAN HABER TRIUNFADO", "tag":""}
                  </script>
   </div>
  </div>
 </div>
</div>
<p>Estos dos cambios, tanto el indicador del final como el espacio en blanco en la barra están disponibles <strong>tanto para la barra de progreso linear como circular </strong>y ahora que forman parte de las especificaciones de Material You, tendremos que acostumbrarnos a ellas nos gusten a no, pues empezarán a llegar a las aplicaciones de Google y de terceros.</p>
<!-- BREAK 7 --><p>Vía | <a rel="noopener, noreferrer" href="https://9to5google.com/2024/01/18/material-you-sliders/">9to5Google</a></p>
<p>En Xataka Android | <a class="text-outboundlink" href="https://www.xatakandroid.com/listas/11-aplicaciones-actualizadas-material-you-que-google-estaria-orgullosa" data-vars-post-title="11 aplicaciones actualizadas con Material You de las que Google estaría orgullosa" data-vars-post-url="https://www.xatakandroid.com/listas/11-aplicaciones-actualizadas-material-you-que-google-estaria-orgullosa">11 aplicaciones actualizadas con Material You de las que Google estaría orgullosa</a></p>
<script>
 (function() {
  window._JS_MODULES = window._JS_MODULES || {};
  var headElement = document.getElementsByTagName('head')[0];
  if (_JS_MODULES.instagram) {
   var instagramScript = document.createElement('script');
   instagramScript.src = 'https://platform.instagram.com/en_US/embeds.js';
   instagramScript.async = true;
   instagramScript.defer = true;
   headElement.appendChild(instagramScript);
  }
 })();
</script>

                    ]]>
                </description>
            </item>
                                <item>
                <title><![CDATA[Android Studio Hedgehog ya está aquí: todas las novedades y cómo descargarlo ]]></title>
                <link>https://www.xatakandroid.com/programacion-android/android-studio-hedgehog-esta-aqui-todas-novedades-como-descargarlo</link>
                <guid>https://www.xatakandroid.com/programacion-android/android-studio-hedgehog-esta-aqui-todas-novedades-como-descargarlo</guid>
                <pubDate>Mon, 04 Dec 2023 07:01:36 +0000</pubDate>
                                         <dc:creator>Iván Ramírez</dc:creator>
                                       <description>
                    <![CDATA[
                              <p>
      <img src="https://i.blogs.es/531907/androidstudio/1024_2000.jpeg" alt="Android&#x20;Studio&#x20;Hedgehog&#x20;ya&#x20;est&#x00E1;&#x20;aqu&#x00ED;&#x3A;&#x20;todas&#x20;las&#x20;novedades&#x20;y&#x20;c&#x00F3;mo&#x20;descargarlo&#x20;">
    </p>
    <p>Los nombres de las versiones de Android se basan en postres con nombres que empiezan por las letras del abecedario y desde hace unos años lo mismo pasa con Android Studio, pero con nombres de animales. Así, después de <a class="text-outboundlink" href="https://www.xatakandroid.com/programacion-android/android-studio-flamingo-esta-aqui-todas-novedades-como-descargarlo" data-vars-post-title="Android Studio Flamingo ya está aquí: todas las novedades y cómo descargarlo " data-vars-post-url="https://www.xatakandroid.com/programacion-android/android-studio-flamingo-esta-aqui-todas-novedades-como-descargarlo">Android Studio Flamingo</a> y <a class="text-outboundlink" href="https://www.xatakandroid.com/programacion-android/android-studio-giraffe-2022-3-1-disponible-nuevo-diseno-live-edit-explorador-dispositivos" data-vars-post-title="Android Studio Giraffe 2022.3.1 ya disponible con un nuevo diseño, Live Edit, explorador de dispositivos y más" data-vars-post-url="https://www.xatakandroid.com/programacion-android/android-studio-giraffe-2022-3-1-disponible-nuevo-diseno-live-edit-explorador-dispositivos">Giraffe</a>, le llega el turno a <strong>Android Studio Hedgehog</strong>, la versión del erizo.</p>
<!-- BREAK 1 --><p>Los desarrolladores de aplicaciones Android ya pueden actualizar el IDE oficial a Android Studio Hedgehog, donde van a obtener una buena tanda de novedades entre las que se encuentran mejoras de productividad, de Compose y, en general, <strong>facilidades para adaptar las aplicaciones a Android 14</strong>.</p>
<h2>Rendimiento</h2><div class="article-asset-image article-asset-normal article-asset-center">
 <div class="asset-content">
                   <img class="centro_sinmarco" height=966 width=1600 loading="lazy" decoding="async" sizes="100vw" fetchpriority="high" srcset="https://i.blogs.es/131adc/ands/450_1000.jpeg 450w, https://i.blogs.es/131adc/ands/650_1200.jpeg 681w,https://i.blogs.es/131adc/ands/1024_2000.jpeg 1024w, https://i.blogs.es/131adc/ands/1366_2000.jpeg 1366w" src="https://i.blogs.es/131adc/ands/450_1000.jpeg" alt="Ands">
   <img alt="Ands" class="centro_sinmarco" src="https://i.blogs.es/131adc/ands/450_1000.jpeg">
   
      </div>
</div>
<ul>
  <li><strong>Android Vitals dentro de App Quality Insights: </strong>Además de ayudarte a investigar informes de errores para aplicaciones con Firebase Crashlytics SDK, App Quality Insights ahora también incluye datos de Android Vitals de Google Play Console.</li>
  <li><strong>Perfilador de energía: </strong>El nuevo Power Profiler muestra el consumo de energía en los dispositivos, segmentando la información del consumo de energía por subsistemas denominados "Power Rails". De este modo, puedes ver la correlación entre la energía consumida y las acciones que ocurren en su aplicación.</li>
</ul>
<h2>Productividad</h2><div class="article-asset-image article-asset-normal article-asset-center">
 <div class="asset-content">
                   <img class="centro_sinmarco" height=1396 width=1452 loading="lazy" decoding="async" sizes="100vw" fetchpriority="high" srcset="https://i.blogs.es/da3ffb/apis/450_1000.jpeg 450w, https://i.blogs.es/da3ffb/apis/650_1200.jpeg 681w,https://i.blogs.es/da3ffb/apis/1024_2000.jpeg 1024w, https://i.blogs.es/da3ffb/apis/1366_2000.jpeg 1366w" src="https://i.blogs.es/da3ffb/apis/450_1000.jpeg" alt="Apis">
   <img alt="Apis" class="centro_sinmarco" src="https://i.blogs.es/da3ffb/apis/450_1000.jpeg">
   
      </div>
</div>
<ul>
  <li><strong>Asistente de actualización del SDK de Android a Android 14: </strong>El asistente de actualización del SDK de Android Studio Hedgehog proporciona soporte para actualizar proyectos a la API 34 (Android 14).</li>
  <li><strong>Actualizaciones de la interfaz de usuario: </strong>Con <a class="text-outboundlink" href="https://www.xatakandroid.com/programacion-android/android-studio-giraffe-2022-3-1-disponible-nuevo-diseno-live-edit-explorador-dispositivos" data-vars-post-title="Android Studio Giraffe 2022.3.1 ya disponible con un nuevo diseño, Live Edit, explorador de dispositivos y más" data-vars-post-url="https://www.xatakandroid.com/programacion-android/android-studio-giraffe-2022-3-1-disponible-nuevo-diseno-live-edit-explorador-dispositivos">Android Studio Giraffe</a> llegó una nueva interfaz de usuario que ahora recibe algunos cambios sugeridos por los usuarios como el modo compacto, la división vertical y horizontal o las pestañas de proyecto para Mac OS. La nueva interfaz sigue siendo opcional.</li>
</ul><div class="article-asset article-asset-normal article-asset-center">
 <div class="desvio-container">
  <div class="desvio">
   <div class="desvio-figure js-desvio-figure">
    <a href="https://www.xatakandroid.com/listas/23-recursos-para-aprender-a-crear-aplicaciones-android-1" class="pivot-outboundlink" data-vars-post-title="23 recursos para aprender a crear aplicaciones Android">
     <img alt="23&#x20;recursos&#x20;para&#x20;aprender&#x20;a&#x20;crear&#x20;aplicaciones&#x20;Android" width="375" height="142" src="https://i.blogs.es/9a09eb/apps/375_142.jpg">
    </a>
   </div>
   <div class="desvio-summary">
    <div class="desvio-taxonomy js-desvio-taxonomy">
     <a href="https://www.xatakandroid.com/listas/23-recursos-para-aprender-a-crear-aplicaciones-android-1" class="desvio-taxonomy-anchor pivot-outboundlink" data-vars-post-title="23 recursos para aprender a crear aplicaciones Android">En Xataka Android</a>
    </div>
    <a href="https://www.xatakandroid.com/listas/23-recursos-para-aprender-a-crear-aplicaciones-android-1" class="desvio-title js-desvio-title pivot-outboundlink" data-vars-post-title="23 recursos para aprender a crear aplicaciones Android">23 recursos para aprender a crear aplicaciones Android</a>
   </div>
  </div>
 </div>
</div>
<ul>
  <li><strong>Tu móvil físico, como si fuera virtual: </strong>Con esta actualización de Android Studio es ahora posible proyectar la pantalla de tu móvil a Android Studio como si fuera un dispositivo emulado y controlarlo con los botones para rotar, modificar el volumen y demás.</li>
  <li><strong>Layout inspector incrustado: </strong>Es ahora posible ejecutar el Inspector de diseño directamente en la ventana de herramientas <em>Dispositivos en ejecución</em> mientras se ejecuta una aplicación en un dispositivo virtual integrado o en un dispositivo físico reflejado.</li>
  <li><strong>Actualizado el atajo del modo manual de Live Edit: </strong>Live Edit tiene un nuevo acceso directo predeterminado para el modo manual: Control+\ (Comando+\ para macOS).</li>
</ul>
<h2>Compose</h2><div class="article-asset-image article-asset-normal article-asset-center">
 <div class="asset-content">
                   <img class="centro_sinmarco" height=1192 width=1600 loading="lazy" decoding="async" sizes="100vw" fetchpriority="high" srcset="https://i.blogs.es/49f3eb/compose/450_1000.jpeg 450w, https://i.blogs.es/49f3eb/compose/650_1200.jpeg 681w,https://i.blogs.es/49f3eb/compose/1024_2000.jpeg 1024w, https://i.blogs.es/49f3eb/compose/1366_2000.jpeg 1366w" src="https://i.blogs.es/49f3eb/compose/450_1000.jpeg" alt="Compose">
   <img alt="Compose" class="centro_sinmarco" src="https://i.blogs.es/49f3eb/compose/450_1000.jpeg">
   
      </div>
</div>
<ul>
  <li><strong>Modo de galería para Compose Preview: </strong>El modo Galería es un nuevo modo de Compose Preview con el cual puedes centrarse en una vista previa a la vez para conservar recursos de renderizado.</li>
  <li><strong>Información del estado de Compose en el depurador: </strong>Al establecer un punto de interrupción en una función componible, el depurador ahora enumera los parámetros del elemento componible y su estado, para que puedas identificar más fácilmente qué cambios podrían haber causado recomposiciones inesperadas.</li>
  <li><strong>Plantillas de vista previa múltiple para Compose: </strong>Android Studio Hedgehog incluye soporte para las últimas anotaciones agregadas por la API Compose Multipreview, lo que permite a los desarrolladores representar escenarios de diseño comunes en paralelo mientras trabajan con Compose Preview.</li>
</ul>
<h2>Otros cambios</h2><div class="article-asset-video article-asset-normal">
 <div class="asset-content">
  <div class="base-asset-video">
   <div class="js-dailymotion">
    <script type="application/json">
                          {"videoId":"x80wfph","autoplay":true,"title":"LOS 8 MEJORES EMULADORES ANDROID GRATIS para PC", "tag":"emuladores"}
                  </script>
   </div>
  </div>
 </div>
</div>
<ul>
  <li><strong>Nueva macro para especificar la ruta del JDK:</strong> la nueva macro #GRADLE_LOCAL_JAVA_HOME hace que sea más seguro y fácil especificar la ruta de inicio de Java utilizada para la ejecución del demonio Gradle (proceso en segundo plano) en un proyecto haciendo referencia a su archivo .gradle/config.properties.</li>
  <li><strong>Menos impacto de antivirus:</strong> En Windows, Build Analyzer informa a los usuarios si el antivirus de PC puede estar afectando el rendimiento de la compilación.</li>
  <li><strong>Usa dispositivos de Firebase Test Lab con Gradle Managed Devices: </strong>Los dispositivos administrados de Gradle ahora pueden apuntar a dispositivos de Firebase Test Lab y usted puede utilizarlos para ejecutar sus pruebas automatizadas a escala.</li>
</ul>
<p>Puedes <strong>actualizar a Android Studio Hedgehog</strong> desde el propio Android Studio, donde te debería aparecer un aviso de actualización si tuvieras una versión anterior. En caso contrario, siempre puedes <a rel="noopener, noreferrer" href="https://developer.android.com/studio?hl=en">descargarlo desde su web oficial</a>.</p>
<!-- BREAK 2 --><p>Más información | <a rel="noopener, noreferrer" href="https://android-developers.googleblog.com/2023/11/android-studio-hedgehog-is-stable.html">Android Developers</a></p>
<p>En Xataka Android | <a class="text-outboundlink" href="https://www.xatakandroid.com/aplicaciones-android/como-crear-publicar-app-google-play" data-vars-post-title="Cómo crear y publicar una app en Google Play" data-vars-post-url="https://www.xatakandroid.com/aplicaciones-android/como-crear-publicar-app-google-play">Cómo crear y publicar una app en Google Play</a></p>
<h2><br></h2><script>
 (function() {
  window._JS_MODULES = window._JS_MODULES || {};
  var headElement = document.getElementsByTagName('head')[0];
  if (_JS_MODULES.instagram) {
   var instagramScript = document.createElement('script');
   instagramScript.src = 'https://platform.instagram.com/en_US/embeds.js';
   instagramScript.async = true;
   instagramScript.defer = true;
   headElement.appendChild(instagramScript);
  }
 })();
</script>

                    ]]>
                </description>
            </item>
                                <item>
                <title><![CDATA[Android 14 es un chivato: así nos avisa cuando una aplicación detecta que hemos hecho una captura de pantalla ]]></title>
                <link>https://www.xatakandroid.com/sistema-operativo/android-14-chivato-asi-nos-avisa-cuando-aplicacion-detecta-que-hemos-hecho-captura-pantalla</link>
                <guid>https://www.xatakandroid.com/sistema-operativo/android-14-chivato-asi-nos-avisa-cuando-aplicacion-detecta-que-hemos-hecho-captura-pantalla</guid>
                <pubDate>Tue, 28 Nov 2023 07:01:00 +0000</pubDate>
                                         <dc:creator>Iván Ramírez</dc:creator>
                                       <description>
                    <![CDATA[
                              <p>
      <img src="https://i.blogs.es/b406b5/capturap/1024_2000.jpeg" alt="Android&#x20;14&#x20;es&#x20;un&#x20;chivato&#x3A;&#x20;as&#x00ED;&#x20;nos&#x20;avisa&#x20;cuando&#x20;una&#x20;aplicaci&#x00F3;n&#x20;detecta&#x20;que&#x20;hemos&#x20;hecho&#x20;una&#x20;captura&#x20;de&#x20;pantalla&#x20;">
    </p>
    <p>La actualización a <a class="text-outboundlink" href="https://www.xatakandroid.com/nuevo/android-14-novedades-fecha-lanzamiento-modelos-compatibles-todo-nuevo-android-14-google" data-vars-post-title="Android 14: novedades, fecha de lanzamiento, modelos compatibles y todo lo que se anticipa del Android 14 de Google" data-vars-post-url="https://www.xatakandroid.com/nuevo/android-14-novedades-fecha-lanzamiento-modelos-compatibles-todo-nuevo-android-14-google">Android 14</a> llega, como es habitual, con una buena tanda de novedades, algunas de las cuales son visibles y otras no. Una novedad que ha pasado desapercibida es una nueva API para que <strong>las aplicaciones puedan detectar que hemos hecho una captura de pantalla</strong> de forma fiable, sin tener que recurrir a trucos.</p>
<!-- BREAK 1 --><p>La <a rel="noopener, noreferrer" href="https://developer.android.com/about/versions/14/features/screenshot-detection">API de detección de capturas de pantalla</a> no es perfecta, pero proporciona un modo sencillo de detectar las capturas para desarrolladores y, como usuario, <strong>nos avisa cuando una aplicación ha detectado que hemos hecho una captura</strong> de pantalla, con el texto "App detectó esta captura de pantalla".</p>
<h2>Android 14, el chivato de las capturas</h2>
<p>Las aplicaciones quieren <strong>enterarse de que has hecho capturas de pantalla</strong> por diversos motivos. Snapchat lo hace para mostrar en el chat que la otra persona ha tomado una captura de pantalla, mientras que algunas aplicaciones de compras aprovechan para mostrarte un menú para compartir el enlace a ese producto. Como usuario no tenías hasta ahora ningún control sobre todo este proceso.</p>
<!-- BREAK 2 --><div class="article-asset article-asset-normal article-asset-center">
 <div class="desvio-container">
  <div class="desvio">
   <div class="desvio-figure js-desvio-figure">
    <a href="https://www.xatakandroid.com/tutoriales/como-hacer-capturas-de-pantalla-en-moviles-android" class="pivot-outboundlink" data-vars-post-title="Cómo hacer capturas de pantalla en móviles Android">
     <img alt="C&#x00F3;mo&#x20;hacer&#x20;capturas&#x20;de&#x20;pantalla&#x20;en&#x20;m&#x00F3;viles&#x20;Android" width="375" height="142" src="https://i.blogs.es/6abd12/captura-de-pantalla/375_142.jpg">
    </a>
   </div>
   <div class="desvio-summary">
    <div class="desvio-taxonomy js-desvio-taxonomy">
     <a href="https://www.xatakandroid.com/tutoriales/como-hacer-capturas-de-pantalla-en-moviles-android" class="desvio-taxonomy-anchor pivot-outboundlink" data-vars-post-title="Cómo hacer capturas de pantalla en móviles Android">En Xataka Android</a>
    </div>
    <a href="https://www.xatakandroid.com/tutoriales/como-hacer-capturas-de-pantalla-en-moviles-android" class="desvio-title js-desvio-title pivot-outboundlink" data-vars-post-title="Cómo hacer capturas de pantalla en móviles Android">Cómo hacer capturas de pantalla en móviles Android</a>
   </div>
  </div>
 </div>
</div>
<p>Con Android 14 llega la API de detección de capturas de pantalla, que un desarrollador puede usar para enterarse de que el usuario ha hecho una captura en su aplicación. Para ello, la aplicación debe declarar el permiso <em>DETECT_SCREEN_CAPTURE</em>, que se acepta automáticamente al instalar. Lo que no sabíamos hasta ahora es que<strong> Android 14 nos avisa cuando una aplicación ha detectado que hemos capturado la pantalla</strong>, tal y como puedes ver en la siguiente captura de pantalla.</p>
<!-- BREAK 3 --><div class="article-asset-image article-asset-normal article-asset-center">
 <div class="asset-content">
     <div class="caption-img ">
                   <img class="centro_sinmarco" height=1280 width=1152 loading="lazy" decoding="async" sizes="100vw" fetchpriority="high" srcset="https://i.blogs.es/14c48b/captura/450_1000.jpeg 450w, https://i.blogs.es/14c48b/captura/650_1200.jpeg 681w,https://i.blogs.es/14c48b/captura/1024_2000.jpeg 1024w, https://i.blogs.es/14c48b/captura/1366_2000.jpeg 1366w" src="https://i.blogs.es/14c48b/captura/450_1000.jpeg" alt="Captura">
   <img alt="Captura" class="centro_sinmarco" src="https://i.blogs.es/14c48b/captura/450_1000.jpeg">
   
        <span>A la izquierda, una aplicación que ha detectado que hemos hecho una captura de pantalla (y Android nos avisa) y a la derecha una app que lo ha hecho pero usando métodos extraoficiales, así que Android no nos avisa</span>
   </div>
   </div>
</div>
<p>Cuando una aplicación usa la nueva API para detectar cuándo se hacen capturas de pantalla, en lugar de usar métodos menos fiables e invisibles para el usuario, como mirar qué archivos cambian en el sistema, el sistema muestra un pequeño aviso debajo de la vista previa de la captura de pantalla, con el texto "<strong>App detectó esta captura de pantalla</strong>".</p>
<!-- BREAK 4 --><p>Esto nos mantendrá informados de que <strong>una aplicación está mirando qué capturamos o no</strong>, aunque las aplicaciones que quieran esconderlo siempre pueden seguir usando los métodos extraoficiales ya existentes, al menos hasta que Google los parchee para que no se puedan seguir usando.</p>
<div class="article-asset-image article-asset-normal article-asset-center">
 <div class="asset-content">
                   <img class="centro_sinmarco" height=907 width=859 loading="lazy" decoding="async" sizes="100vw" fetchpriority="high" srcset="https://i.blogs.es/109d1a/wtpa/450_1000.jpeg 450w, https://i.blogs.es/109d1a/wtpa/650_1200.jpeg 681w,https://i.blogs.es/109d1a/wtpa/1024_2000.jpeg 1024w, https://i.blogs.es/109d1a/wtpa/1366_2000.jpeg 1366w" src="https://i.blogs.es/109d1a/wtpa/450_1000.jpeg" alt="Wtpa">
   <img alt="Wtpa" class="centro_sinmarco" src="https://i.blogs.es/109d1a/wtpa/450_1000.jpeg">
   
      </div>
</div>
<p>Eso sí, la nueva API tiene limitaciones, pues según Google solo funciona para capturas de pantalla hechas pulsando botones (normalmente Encendido + Volumen Abajo, aunque en mi móvil OnePlus también me ha saltado el aviso con el gesto de hacer una captura de pantalla deslizando tres dedos con la pantalla. Cuando sí que no aparece el aviso (ni la app se entera, por tanto) es <strong>si hacemos la captura con comandos ADB</strong>.</p>
<!-- BREAK 5 --><p>Es preciso recordar que en Android <strong>una aplicación puede bloquear por completo las capturas de pantalla</strong>, siendo difícil de saltar esta protección a no ser que <a class="text-outboundlink" href="https://www.xatakandroid.com/tutoriales/como-rootear-android-cuatro-metodos-distintos-para-lograrlo" data-vars-post-title="Cómo rootear Android: cuatro métodos distintos para lograrlo" data-vars-post-url="https://www.xatakandroid.com/tutoriales/como-rootear-android-cuatro-metodos-distintos-para-lograrlo">se rootee el terminal</a>. Lo que está claro es que Android 14 es un chivato: se chiva a las aplicaciones cuando hacemos capturas de pantalla y se chiva a nosotros cuando una aplicación detecta que hemos hecho una captura de pantalla.</p>
<div class="article-asset-video article-asset-normal">
 <div class="asset-content">
  <div class="base-asset-video">
   <div class="js-dailymotion">
    <script type="application/json">
                          {"videoId":"x8mx3ju","autoplay":true,"title":"ANDROID 14: 8 FUNCIONES por las que ACTUALIZAR el DÍA 1", "tag":""}
                  </script>
   </div>
  </div>
 </div>
</div>
<p>Vía | <a rel="noopener, noreferrer" href="https://www.androidpolice.com/android-14-screenshot-detected-toast/">Android Police</a></p>
<p>En Xataka Android | <a class="text-outboundlink" href="https://www.xatakandroid.com/listas/diez-apps-para-hacer-capturas-pantalla-android-como-profesional" data-vars-post-title="Diez apps para hacer capturas de pantalla en Android como un profesional" data-vars-post-url="https://www.xatakandroid.com/listas/diez-apps-para-hacer-capturas-pantalla-android-como-profesional">Diez apps para hacer capturas de pantalla en Android como un profesional</a></p>
<script>
 (function() {
  window._JS_MODULES = window._JS_MODULES || {};
  var headElement = document.getElementsByTagName('head')[0];
  if (_JS_MODULES.instagram) {
   var instagramScript = document.createElement('script');
   instagramScript.src = 'https://platform.instagram.com/en_US/embeds.js';
   instagramScript.async = true;
   instagramScript.defer = true;
   headElement.appendChild(instagramScript);
  }
 })();
</script>

                    ]]>
                </description>
            </item>
                                <item>
                <title><![CDATA[He intentado hacer una aplicación Android con Google Bard. El resultado me sorprendió, para bien y para mal ]]></title>
                <link>https://www.xatakandroid.com/programacion-android/he-intentado-hacer-aplicacion-android-google-bard-resultado-me-sorprendio-para-bien-para-mal</link>
                <guid>https://www.xatakandroid.com/programacion-android/he-intentado-hacer-aplicacion-android-google-bard-resultado-me-sorprendio-para-bien-para-mal</guid>
                <pubDate>Thu, 12 Oct 2023 16:01:25 +0000</pubDate>
                                         <dc:creator>Iván Ramírez</dc:creator>
                                       <description>
                    <![CDATA[
                              <p>
      <img src="https://i.blogs.es/1616cd/bard/1024_2000.jpeg" alt="He&#x20;intentado&#x20;hacer&#x20;una&#x20;aplicaci&#x00F3;n&#x20;Android&#x20;con&#x20;Google&#x20;Bard.&#x20;El&#x20;resultado&#x20;me&#x20;sorprendi&#x00F3;,&#x20;para&#x20;bien&#x20;y&#x20;para&#x20;mal&#x20;">
    </p>
    <p>Temen que la inteligencia artificial vaya a <a class="text-outboundlink" href="https://www.xataka.com/robotica-e-ia/soy-programador-esto-que-creo-inteligencia-artificial-podra-quitarme-trabajo" data-vars-post-title="Soy programador y esto es lo que creo sobre si la inteligencia artificial podrá quitarme el trabajo" data-vars-post-url="https://www.xataka.com/robotica-e-ia/soy-programador-esto-que-creo-inteligencia-artificial-podra-quitarme-trabajo">acabar con varios trabajos</a>, aunque también podemos aprovecharla para hacer cosas que normalmente no dominamos, como <strong>crear aplicaciones Android</strong>. Al menos, en teoría.</p>
<!-- BREAK 1 --><p>Para ponerlo a prueba,<strong> le he pedido a Bard que me ayude a crear una aplicación Android</strong> con unas especificaciones claras. ¿Será tan fácil como pulsar un botón y luego vivir del cuento? Pues no.</p>
<h2>Todo empieza con una petición</h2>
<p>Algo que se aplica a Bard, ChatGPT y prácticamente cualquier otra cosa en la vida es que si quieres algo, debes pedirlo. Así, he abierto <a rel="noopener, noreferrer" href="https://bard.google.com/chat">Bard</a> en el navegador y le he pedido que me ayude a <strong>crear una aplicación Android sencilla en Kotlin</strong>, con el siguiente <em>prompt</em>:</p>
<!-- BREAK 2 --><blockquote>Créame una aplicación Android, en Kotlin, con diseño Material Design 3, que muestre el texto con encabezado "Aplicación de Xataka Android" y un botón que se llame "Probar suerte". Debajo debe haber un recuadro de texto que empieza vacío. Al pulsar el botón "Probar Suerte", el recuadro de texto mostrará aleatoriamente un texto a elegir entre "Hoy es mi día de suerte", "No he tenido nada de suerte", "Que Dios me ayude" y "Hecatombe nuclear"</blockquote>
<p>He querido que la aplicación fuera sencilla pues Bard no nos va a dar un código listo para descargar y usar, sino que se limita a dictarnos el código que luego debemos pegar en Android Studio, así que cuanto más compleja sea la aplicación más vamos a tener que trabajar nosotros. <strong>La primera respuesta pintaba bien</strong>: una trozo de código que en principio está listo para usar tal cual:</p>
<!-- BREAK 3 --><div class="article-asset-image article-asset-large article-asset-center">
 <div class="asset-content">
     <div class="caption-img ">
                   <img class="" height=555 width=1183 loading="lazy" decoding="async" sizes="100vw" fetchpriority="high" srcset="https://i.blogs.es/2a252a/deacuerdo/450_1000.jpeg 450w, https://i.blogs.es/2a252a/deacuerdo/650_1200.jpeg 681w,https://i.blogs.es/2a252a/deacuerdo/1024_2000.jpeg 1024w, https://i.blogs.es/2a252a/deacuerdo/1366_2000.jpeg 1366w" src="https://i.blogs.es/2a252a/deacuerdo/450_1000.jpeg" alt="Deacuerdo">
   <img alt="Deacuerdo" class="" src="https://i.blogs.es/2a252a/deacuerdo/450_1000.jpeg">
   
        <span>Fragmento del código que me ha dado Bard para mi aplicación</span>
   </div>
   </div>
</div>
<p>La ventaja de este código es que <strong>usa Jetpack Compose para describir la interfaz en el propio código</strong>, de modo que no he tenido que crear y/o modificar archivos separados para la interfaz, o <em>layouts</em>.</p>
<!-- BREAK 4 --><div class="article-asset-video article-asset-normal">
 <div class="asset-content">
  <div class="base-asset-video">
   <div class="js-dailymotion">
    <script type="application/json">
                          {"videoId":"x8komlg","autoplay":true,"title":"Chat GPT VS Google Bard VS Bing  - Comparativa | LA GUERRA DE LAS MÁQUINAS", "tag":"webedia-prod"}
                  </script>
   </div>
  </div>
 </div>
</div>
<h2>Android Studio al rescate</h2>
<p>Llega entonces el momento de <strong>pegar el código generado por Bard en Android Studio</strong>. Para ello he creado un proyecto con el nombre <em>Voy a tener suerte </em>y he usado el mismo nombre de paquete que Bard generó (com.xataka.android.suerte). Por lo demás, son las opciones predeterminadas.</p>
<!-- BREAK 5 --><div class="article-asset-image article-asset-normal article-asset-center">
 <div class="asset-content">
                   <img class="" height=680 width=926 loading="lazy" decoding="async" sizes="100vw" fetchpriority="high" srcset="https://i.blogs.es/ddf05b/vats/450_1000.jpeg 450w, https://i.blogs.es/ddf05b/vats/650_1200.jpeg 681w,https://i.blogs.es/ddf05b/vats/1024_2000.jpeg 1024w, https://i.blogs.es/ddf05b/vats/1366_2000.jpeg 1366w" src="https://i.blogs.es/ddf05b/vats/450_1000.jpeg" alt="Vats">
   <img alt="Vats" class="" src="https://i.blogs.es/ddf05b/vats/450_1000.jpeg">
   
      </div>
</div>
<p>Al pegar el código en MainActivity.kt (el archivo principal de la aplicación), <strong>comenzaron los problemas</strong>, personificados en texto rojo en el editor de código y que denotan que algo anda mal.</p>
<!-- BREAK 6 --><div class="article-asset article-asset-normal article-asset-center">
 <div class="desvio-container">
  <div class="desvio">
   <div class="desvio-figure js-desvio-figure">
    <a href="https://www.xatakandroid.com/listas/23-recursos-para-aprender-a-crear-aplicaciones-android-1" class="pivot-outboundlink" data-vars-post-title="23 recursos para aprender a crear aplicaciones Android">
     <img alt="23&#x20;recursos&#x20;para&#x20;aprender&#x20;a&#x20;crear&#x20;aplicaciones&#x20;Android" width="375" height="142" src="https://i.blogs.es/9a09eb/apps/375_142.jpg">
    </a>
   </div>
   <div class="desvio-summary">
    <div class="desvio-taxonomy js-desvio-taxonomy">
     <a href="https://www.xatakandroid.com/listas/23-recursos-para-aprender-a-crear-aplicaciones-android-1" class="desvio-taxonomy-anchor pivot-outboundlink" data-vars-post-title="23 recursos para aprender a crear aplicaciones Android">En Xataka Android</a>
    </div>
    <a href="https://www.xatakandroid.com/listas/23-recursos-para-aprender-a-crear-aplicaciones-android-1" class="desvio-title js-desvio-title pivot-outboundlink" data-vars-post-title="23 recursos para aprender a crear aplicaciones Android">23 recursos para aprender a crear aplicaciones Android</a>
   </div>
  </div>
 </div>
</div>
<p>Android Studio nos permite<strong> arreglar muchos de estos problemas de forma semiautomática</strong> mediante sugerencias. Muchos de los casos se arreglaban con una simple importación de las dependencias oportunas (algo que Android Studio también sugiere), pero aún así seguían habiendo errores que impedían que la aplicación pudiera compilarse y, por tanto, arrancar.</p>
<!-- BREAK 7 --><div class="article-asset-image article-asset-large article-asset-center">
 <div class="asset-content">
     <div class="caption-img ">
                   <img class="" height=682 width=985 loading="lazy" decoding="async" sizes="100vw" fetchpriority="high" srcset="https://i.blogs.es/0f97f1/errores/450_1000.jpeg 450w, https://i.blogs.es/0f97f1/errores/650_1200.jpeg 681w,https://i.blogs.es/0f97f1/errores/1024_2000.jpeg 1024w, https://i.blogs.es/0f97f1/errores/1366_2000.jpeg 1366w" src="https://i.blogs.es/0f97f1/errores/450_1000.jpeg" alt="Errores">
   <img alt="Errores" class="" src="https://i.blogs.es/0f97f1/errores/450_1000.jpeg">
   
        <span>El código pegado tal cual tiene bastantes "errores", resaltados en rojo</span>
   </div>
   </div>
</div>
<p>Alguien que no tenga experiencia creando aplicaciones de Android sin lugar a dudas se va a sentir<strong> desesperanzado por los errores</strong> que aparecen y no parecen tener fácil solución.</p>
<!-- BREAK 8 --><p>Lo bueno es que <strong>puedes hacerle preguntas a Bard para que te ayude </strong>a solucionar problemas y en sus respuestas se esfuerza en indicarte cuál es el problema, cómo lo puedes solucionar y proporcionarte el código para ello.</p>
<div class="article-asset-image article-asset-large article-asset-center">
 <div class="asset-content">
                   <img class="" height=176 width=1216 loading="lazy" decoding="async" sizes="100vw" fetchpriority="high" srcset="https://i.blogs.es/a5d2f0/error/450_1000.jpeg 450w, https://i.blogs.es/a5d2f0/error/650_1200.jpeg 681w,https://i.blogs.es/a5d2f0/error/1024_2000.jpeg 1024w, https://i.blogs.es/a5d2f0/error/1366_2000.jpeg 1366w" src="https://i.blogs.es/a5d2f0/error/450_1000.jpeg" alt="Error">
   <img alt="Error" class="" src="https://i.blogs.es/a5d2f0/error/450_1000.jpeg">
   
      </div>
</div>
<p>Claro, que <strong>sus soluciones no siempre funcionan </strong>y tras un constante tira y afloja de preguntas, respuestas y arreglos de errores, la aplicación dejó de mostrar errores en su código y se compiló, aunque esto no significa que vaya a funcionar.</p>
<!-- BREAK 9 --><p>De hecho, la aplicación <strong>se cerraba nada más abrirse</strong> al cargarla en el emulador oficial de Android Studio, arrojando un bonito mensaje de error <a class="text-outboundlink" href="https://www.xatakandroid.com/programacion-android/logcat-android-que-como-ver-este-registro-mensajes-sistema" data-vars-post-title="Logcat de Android: qué es y cómo ver este registro de mensajes del sistema" data-vars-post-url="https://www.xatakandroid.com/programacion-android/logcat-android-que-como-ver-este-registro-mensajes-sistema">en el LogCat</a> del sistema.</p>
<div class="article-asset-image article-asset-normal article-asset-center">
 <div class="asset-content">
     <div class="caption-img ">
                   <img class="centro_sinmarco" height=2480 width=2172 loading="lazy" decoding="async" sizes="100vw" fetchpriority="high" srcset="https://i.blogs.es/1fcd98/suerte/450_1000.jpeg 450w, https://i.blogs.es/1fcd98/suerte/650_1200.jpeg 681w,https://i.blogs.es/1fcd98/suerte/1024_2000.jpeg 1024w, https://i.blogs.es/1fcd98/suerte/1366_2000.jpeg 1366w" src="https://i.blogs.es/1fcd98/suerte/450_1000.jpeg" alt="Suerte">
   <img alt="Suerte" class="centro_sinmarco" src="https://i.blogs.es/1fcd98/suerte/450_1000.jpeg">
   
        <span>"Voy a tener suerte" no ha tenido por ahora mucha suerte</span>
   </div>
   </div>
</div>
<p>De nuevo, es posible preguntarle a Bard por el error que se muestra y la inteligencia artificial de Google <strong>intentará solucionar el problema basándose en el código que ya te ha dado</strong> con anterioridad, lo cual ayuda mucho frente a búsquedas en Google en las cuales un error genérico te arrojará todo tipo de resultados.</p>
<!-- BREAK 10 --><p>Tras pasar unos 20 minutos más arreglando el código, la aplicación finalmente se abrió pero con un problema: <strong>el diseño era un desastre</strong>. El botón era gigantesco, por lo que tapaba al resto de elementos y era imposible saber si la aplicación funcionaba según lo debido o no.</p>
<div class="article-asset-image article-asset-normal article-asset-center">
 <div class="asset-content">
     <div class="caption-img ">
                   <img class="centro_sinmarco" height=2480 width=2172 loading="lazy" decoding="async" sizes="100vw" fetchpriority="high" srcset="https://i.blogs.es/857dc7/probarsuerte2/450_1000.jpeg 450w, https://i.blogs.es/857dc7/probarsuerte2/650_1200.jpeg 681w,https://i.blogs.es/857dc7/probarsuerte2/1024_2000.jpeg 1024w, https://i.blogs.es/857dc7/probarsuerte2/1366_2000.jpeg 1366w" src="https://i.blogs.es/857dc7/probarsuerte2/450_1000.jpeg" alt="Probarsuerte2">
   <img alt="Probarsuerte2" class="centro_sinmarco" src="https://i.blogs.es/857dc7/probarsuerte2/450_1000.jpeg">
   
        <span>Al menos ya no se cierra, pero el botón es enorme</span>
   </div>
   </div>
</div>
<p>¿Y ahora qué hacemos? <strong>Preguntarle a Bard de nuevo</strong>, por supuesto. Si el botón aparece gigante, pues le preguntamos a Bard que por qué aparece el botón gigante y que lo arregle.</p>
<!-- BREAK 11 --><p>De nuevo, Bard nos intenta explicar por qué ha pasado esto y qué podemos hacer para solucionarlo, aunque este "pequeño" detalle <strong>acabó siendo el que más tiempo me ha llevado solventar</strong>, pues las soluciones que ofrecía Bard, además de no funcionar "tal cual", ni siquiera funcionaban bien tras arreglar sus errores.</p>
<div class="article-asset-image article-asset-large article-asset-center">
 <div class="asset-content">
                   <img class="" height=294 width=1227 loading="lazy" decoding="async" sizes="100vw" fetchpriority="high" srcset="https://i.blogs.es/f4dc3e/botonazo/450_1000.jpeg 450w, https://i.blogs.es/f4dc3e/botonazo/650_1200.jpeg 681w,https://i.blogs.es/f4dc3e/botonazo/1024_2000.jpeg 1024w, https://i.blogs.es/f4dc3e/botonazo/1366_2000.jpeg 1366w" src="https://i.blogs.es/f4dc3e/botonazo/450_1000.jpeg" alt="Botonazo">
   <img alt="Botonazo" class="" src="https://i.blogs.es/f4dc3e/botonazo/450_1000.jpeg">
   
      </div>
</div>
<p>Con un esfuerzo adicional, finalmente logré que el botón no ocupara toda la pantalla y que los tres elementos de la aplicación (encabezado, botón y texto) fueran visibles, <strong>aunque siguieran siendo horrendos</strong>.</p>
<!-- BREAK 12 --><p>Y aquí está la aplicación que cree con Bard, <strong>funcionando según las especificaciones que le di</strong>, aunque habría sido muy difícil para alguien sin nociones de desarrollo lograr convertir el código proporcionado por Bard en algo usable. Es un esfuerzo de equipo: 50% Bard y 50% humano.</p>
<div class="article-asset-embed-giphy article-asset-normal article-asset-center">
 <div class="article-asset-video">
  <div class="asset-content">
   <div id="_giphy_DZhtGVOGbTOhnG8ceU" class="base-asset-video">
     <iframe src="https://giphy.com/embed/DZhtGVOGbTOhnG8ceU" style="position:absolute" class="giphy-embed" allowFullScreen></iframe>
   </div>
  </div>
 </div>
</div>
<p>Sin lugar a dudas Bard mejorará en esta tarea -y en muchas otras- por lo que llegará un momento en el que crear aplicaciones con la ayuda de una IA sea relativamente fácil. Eso sí, <strong>tendremos entonces que esforzarnos mucho en describirle a la IA lo que queremos y cómo lo queremos</strong>, a no ser que no nos importe tener una interfaz tan dañina para la vista como la de mi aplicación anterior.</p>
<!-- BREAK 13 --><p>En Xataka Android | <a class="text-outboundlink" href="https://www.xatakandroid.com/aplicaciones-android/como-crear-publicar-app-google-play" data-vars-post-title="Cómo crear y publicar una app en Google Play" data-vars-post-url="https://www.xatakandroid.com/aplicaciones-android/como-crear-publicar-app-google-play">Cómo crear y publicar una app en Google Play</a></p>
<script>
 (function() {
  window._JS_MODULES = window._JS_MODULES || {};
  var headElement = document.getElementsByTagName('head')[0];
  if (_JS_MODULES.instagram) {
   var instagramScript = document.createElement('script');
   instagramScript.src = 'https://platform.instagram.com/en_US/embeds.js';
   instagramScript.async = true;
   instagramScript.defer = true;
   headElement.appendChild(instagramScript);
  }
 })();
</script>

                    ]]>
                </description>
            </item>
                                <item>
                <title><![CDATA[El SEPE ofrece cursos gratuitos de Android: así puedes apuntarte]]></title>
                <link>https://www.xatakandroid.com/programacion-android/sepe-ofrece-cursos-gratuitos-android-asi-puedes-apuntarte</link>
                <guid>https://www.xatakandroid.com/programacion-android/sepe-ofrece-cursos-gratuitos-android-asi-puedes-apuntarte</guid>
                <pubDate>Tue, 22 Aug 2023 09:15:00 +0000</pubDate>
                                         <dc:creator>Alejandro Alcolea</dc:creator>
                                       <description>
                    <![CDATA[
                              <p>
      <img src="https://i.blogs.es/940251/wp7420862/1024_2000.jpeg" alt="El&#x20;SEPE&#x20;ofrece&#x20;cursos&#x20;gratuitos&#x20;de&#x20;Android&#x3A;&#x20;as&#x00ED;&#x20;puedes&#x20;apuntarte">
    </p>
    <p>La formación es clave tanto para el enriquecimiento personal como para adquirir habilidades que nos permitan desempeñar nuevos roles. Estamos en una sociedad en la que todo avanza a un ritmo aceleradísimo y el SEPE (el Servicio Público de Empleo Estatal) lanza <strong>cursos gratuitos para actualizarnos</strong>.</p>
<!-- BREAK 1 --><p>A veces, estos cursos están enfocados a un sector concreto (jóvenes, autónomos, desempleados, mayores de 50 años, etc.), pero en esta ocasión se trata de <strong>una serie de cursos de Google </strong>que no requieren que tengamos una situación concreta. Entre ellos, hay <a class="text-outboundlink" href="https://www.xatakandroid.com/listas/siete-cursos-android-gratis-para-empezar-ano" data-vars-post-title="Siete cursos de Android gratis para empezar el año" data-vars-post-url="https://www.xatakandroid.com/listas/siete-cursos-android-gratis-para-empezar-ano">cursos gratuitos de Android</a> y desarrollo de apps para móvil, y te contamos cómo puedes apuntarte.</p>
<h2>Cursos gratuitos de Google tanto básicos como avanzados</h2><div class="article-asset-video article-asset-normal">
 <div class="asset-content">
  <div class="base-asset-video">
   <div class="js-dailymotion">
    <script type="application/json">
                          {"videoId":"x8cqxde","autoplay":true,"title":"Puedes cobrar unos 60.000€ por ser programador | HABLAMOS con Mouredev | XTK El Programa de Xataka", "tag":"webedia-prod"}
                  </script>
   </div>
  </div>
 </div>
</div>
<p>Estos cursos se engloban dentro del programa 'España Digital' para dotar a la población de habilidades relacionadas con la tecnología y están recogidos en la plataforma <a rel="noopener, noreferrer" href="https://digitalizateplus.fundae.es/digitalizate/1">DigitalizatePlus</a>. Hay muchísimos cursos por parte de empresas como Amazon, IBM, Microsoft, Samsung, CISCO o la propia Google.</p>
<!-- BREAK 2 --><p>En el caso de los cursos de Google,<strong> tenemos dos áreas: Google Actívate y Google Developers</strong>. En la primera categoría encontramos diferentes cursos enfocados a la digitalización de un negocio, pero también un curso de desarrollo de aplicaciones móviles con conceptos básicos sobre las mismas.</p>
<p>Podemos aprender historia de las apps, ver ejemplos y conocer las herramientas de desarrollo de Android o iOS. Sin embargo, dentro de la categoría de 'Developers' encontramos <strong>cursos más concretos como el de desarrollo básico o avanzado de Java para Android</strong> y el curso de principios básicos de <a class="text-outboundlink" href="https://www.xatakandroid.com/programacion-android/no-hara-falta-aprender-java-para-programar-android-kotlin-pasa-a-ser-preferido-google" data-vars-post-title="Ni Java ni C++, Kotlin pasa a ser el lenguaje preferido por Google para desarrollar apps en Android" data-vars-post-url="https://www.xatakandroid.com/programacion-android/no-hara-falta-aprender-java-para-programar-android-kotlin-pasa-a-ser-preferido-google">Kotlin para Android</a>.</p>
<!-- BREAK 3 --><div class="article-asset article-asset-normal article-asset-center">
 <div class="desvio-container">
  <div class="desvio">
   <div class="desvio-figure js-desvio-figure">
    <a href="https://www.xatakandroid.com/listas/23-recursos-para-aprender-a-crear-aplicaciones-android-1" class="pivot-outboundlink" data-vars-post-title="23 recursos para aprender a crear aplicaciones Android">
     <img alt="23&#x20;recursos&#x20;para&#x20;aprender&#x20;a&#x20;crear&#x20;aplicaciones&#x20;Android" width="375" height="142" src="https://i.blogs.es/9a09eb/apps/375_142.jpg">
    </a>
   </div>
   <div class="desvio-summary">
    <div class="desvio-taxonomy js-desvio-taxonomy">
     <a href="https://www.xatakandroid.com/listas/23-recursos-para-aprender-a-crear-aplicaciones-android-1" class="desvio-taxonomy-anchor pivot-outboundlink" data-vars-post-title="23 recursos para aprender a crear aplicaciones Android">En Xataka Android</a>
    </div>
    <a href="https://www.xatakandroid.com/listas/23-recursos-para-aprender-a-crear-aplicaciones-android-1" class="desvio-title js-desvio-title pivot-outboundlink" data-vars-post-title="23 recursos para aprender a crear aplicaciones Android">23 recursos para aprender a crear aplicaciones Android</a>
   </div>
  </div>
 </div>
</div>
<p>En este último hay que tener ciertas nociones sobre cómo se escribe, compila y ejecuta código y se recomienda tener dos años de experiencia en un lenguaje de programación como Java, C++ o Smalltalk. Como puedes ver, hay cursos tanto básicos como bastante avanzados.</p>
<!-- BREAK 4 --><p>Además, concretamente <strong>los tres cursos de desarrollo se imparten en inglés</strong>, por lo que hay que tener cierta base para poder aprovecharlos. Si quieres acceder a estos cursos, puedes hacerlo a través de <a rel="noopener, noreferrer" href="https://digitalizateplus.fundae.es/digitalizate/1/33">este enlace</a> y, al lado de cada uno de ellos, verás la duración del mismo. Y, a continuación, te dejamos la lista completa de los cursos de Google:</p>
<ul>
  <li>Fundamentos de Marketing Digital</li>
  <li>Cloud Computing</li>
  <li>Comercio Electrónico</li>
  <li>Competencias digitales para profesionales</li>
  <li>Curso de Desarrollo de Apps móviles</li>
  <li>Curso de Introducción al Desarrollo Web HTML y CSS (son dos cursos)</li>
  <li>Productividad Personal</li>
  <li>Transformación Digital para el empleo</li>
  <li>Digitaliza paso a paso tu negocio con Google My Business y YouTube</li>
  <li>Protege tu negocio: Ciberseguridad en el teletrabajo</li>
  <li>Curso intensivo de aprendizaje automático (Machine Learning)</li>
  <li>Cursos de aprendizaje Cloud</li>
  <li>Curso de Android en Java (dos cursos, básico y avanzado)</li>
  <li>Curso de principios básicos de Android Kotlin</li>
</ul><div class="article-asset-video article-asset-normal">
 <div class="asset-content">
  <div class="base-asset-video">
   <div class="js-dailymotion">
    <script type="application/json">
                          {"videoId":"x8k1wav","autoplay":false,"title":"ENTREVISTA MIDUDEV - TODO sobre la PROGRAMACIÓN INFORMÁTICA | XTK: El programa de Xataka", "tag":""}
                  </script>
   </div>
  </div>
 </div>
</div>
<p>Si te interesa alguno, lo único que debes hacer es elegirlo e iniciar sesión con tu cuenta de Google. <strong>En los más avanzados habrá una página previa con requisitos que deberías cumplir</strong> (para aprovechar el curso, más que nada), pero los básicos son de acceso mucho más general.</p>
<!-- BREAK 5 --><p>Vía | <a rel="noopener, noreferrer" href="https://www.eleconomista.es/empleo/noticias/12413183/08/23/el-sepe-anuncia-cursos-gratis-de-google-para-trabajar-en-el-sector-digital.html">El Economista</a></p>
<p>En Xataka Android | <a class="text-outboundlink" href="https://www.xatakandroid.com/tutoriales/como-compartir-la-conexion-de-datos-de-tu-android-con-otros-dispositivos" data-vars-post-title="Cómo compartir la conexión de datos de tu Android con otros dispositivos" data-vars-post-url="https://www.xatakandroid.com/tutoriales/como-compartir-la-conexion-de-datos-de-tu-android-con-otros-dispositivos">Cómo compartir la conexión de datos de tu Android con otros dispositivos</a></p>
<script>
 (function() {
  window._JS_MODULES = window._JS_MODULES || {};
  var headElement = document.getElementsByTagName('head')[0];
  if (_JS_MODULES.instagram) {
   var instagramScript = document.createElement('script');
   instagramScript.src = 'https://platform.instagram.com/en_US/embeds.js';
   instagramScript.async = true;
   instagramScript.defer = true;
   headElement.appendChild(instagramScript);
  }
 })();
</script>

                    ]]>
                </description>
            </item>
                                <item>
                <title><![CDATA[Google hace que las aplicaciones abran hasta un 30% más rápido actualizando el compilador ART de Android ]]></title>
                <link>https://www.xatakandroid.com/sistema-operativo/google-hace-que-aplicaciones-abran-30-rapido-actualizando-compilador-art-android</link>
                <guid>https://www.xatakandroid.com/sistema-operativo/google-hace-que-aplicaciones-abran-30-rapido-actualizando-compilador-art-android</guid>
                <pubDate>Tue, 22 Aug 2023 07:00:43 +0000</pubDate>
                                         <dc:creator>Iván Ramírez</dc:creator>
                                       <description>
                    <![CDATA[
                              <p>
      <img src="https://i.blogs.es/b0da07/art/1024_2000.jpeg" alt="Google&#x20;hace&#x20;que&#x20;las&#x20;aplicaciones&#x20;abran&#x20;hasta&#x20;un&#x20;30&#x25;&#x20;m&#x00E1;s&#x20;r&#x00E1;pido&#x20;actualizando&#x20;el&#x20;compilador&#x20;ART&#x20;de&#x20;Android&#x20;">
    </p>
    <p>Google lleva años <strong>haciendo que Android sea modular</strong> para que <a class="text-outboundlink" href="https://www.xatakandroid.com/sistema-operativo/android-13-llegara-a-pocos-moviles-tarde-da-igual-porque-android-no-funciona-como-ios" data-vars-post-title="Android 13 llegará a pocos móviles y tarde, pero da igual porque Android no funciona como iOS" data-vars-post-url="https://www.xatakandroid.com/sistema-operativo/android-13-llegara-a-pocos-moviles-tarde-da-igual-porque-android-no-funciona-como-ios">no sea tan importante tener la última versión de Android,</a> pudiendo todavía <a class="text-outboundlink" href="https://www.xatakandroid.com/sistema-operativo/actualizaciones-android-desastre-cada-vez-importa" data-vars-post-title="Las actualizaciones de Android son un desastre, pero cada vez importa menos" data-vars-post-url="https://www.xatakandroid.com/sistema-operativo/actualizaciones-android-desastre-cada-vez-importa">recibir mejoras por otros muchos frentes</a>, incluyendo las actualizaciones del sistema por Google Play. La última del compilador del sistema viene con premio.</p>
<!-- BREAK 1 --><p>Google ha logrado que la última versión del compilador ART reporte<strong> hasta un 30% de mejora en el tiempo de carga</strong> de las aplicaciones en algunos dispositivos, y está disponible para todos los móviles con Android 12 y versiones posteriores.</p>
<h2>Carga más rápida, sin hacer nada</h2>
<p>En una publicación en su <a rel="noopener, noreferrer" href="https://android-developers.googleblog.com/2023/08/latest-artwork-on-hundreds-of-millions-of-devices.html">blog para desarrolladores</a>, Google entra en detalle en las dificultades encontradas a la hora de modularizar el sistema operativo para poder <strong>actualizar partes del mismo por separado</strong>, en lugar de tener que esperar a una actualización entera del sistema operativo, <a class="text-outboundlink" href="https://www.xatakandroid.com/sistema-operativo/android-tiene-estigma-actualizaciones-cierto-que-google-mantiene-moviles-mucho-mejor-que-apple" data-vars-post-title="Android tiene el estigma de las actualizaciones, pero lo cierto es que Google mantiene los móviles mucho mejor que Apple " data-vars-post-url="https://www.xatakandroid.com/sistema-operativo/android-tiene-estigma-actualizaciones-cierto-que-google-mantiene-moviles-mucho-mejor-que-apple">como ocurre en iOS</a>.</p>
<!-- BREAK 2 --><p>Es una tarea titánica que lleva años en progreso y cuyo máximo exponente es el <a class="text-outboundlink" href="https://www.xatakandroid.com/sistema-operativo/project-mainline-nuevo-invento-google-para-actualizar-partes-android-google-play" data-vars-post-title="Project Mainline, el nuevo invento de Google para actualizar partes de Android desde Google Play" data-vars-post-url="https://www.xatakandroid.com/sistema-operativo/project-mainline-nuevo-invento-google-para-actualizar-partes-android-google-play">Project Mainline</a> de 2019 que ha ido expandiéndose a <strong>más y más componentes del sistema listos para ser actualizados</strong> con cada nueva versión de Android que le ha sucedido.</p>
<div class="article-asset article-asset-normal article-asset-center">
 <div class="desvio-container">
  <div class="desvio">
   <div class="desvio-figure js-desvio-figure">
    <a href="https://www.xatakandroid.com/tutoriales/partes-android-que-se-actualizan-google-play-todos-modulos-mainline-que-existen-como-saber-que-soporta-tu-movil" class="pivot-outboundlink" data-vars-post-title="Partes de Android que se actualizan por Google Play: todos los módulos de mainline que existen y cómo saber los que soporta tu móvil">
     <img alt="Partes&#x20;de&#x20;Android&#x20;que&#x20;se&#x20;actualizan&#x20;por&#x20;Google&#x20;Play&#x3A;&#x20;todos&#x20;los&#x20;m&#x00F3;dulos&#x20;de&#x20;mainline&#x20;que&#x20;existen&#x20;y&#x20;c&#x00F3;mo&#x20;saber&#x20;los&#x20;que&#x20;soporta&#x20;tu&#x20;m&#x00F3;vil" width="375" height="142" src="https://i.blogs.es/0ab38f/mainline/375_142.jpg">
    </a>
   </div>
   <div class="desvio-summary">
    <div class="desvio-taxonomy js-desvio-taxonomy">
     <a href="https://www.xatakandroid.com/tutoriales/partes-android-que-se-actualizan-google-play-todos-modulos-mainline-que-existen-como-saber-que-soporta-tu-movil" class="desvio-taxonomy-anchor pivot-outboundlink" data-vars-post-title="Partes de Android que se actualizan por Google Play: todos los módulos de mainline que existen y cómo saber los que soporta tu móvil">En Xataka Android</a>
    </div>
    <a href="https://www.xatakandroid.com/tutoriales/partes-android-que-se-actualizan-google-play-todos-modulos-mainline-que-existen-como-saber-que-soporta-tu-movil" class="desvio-title js-desvio-title pivot-outboundlink" data-vars-post-title="Partes de Android que se actualizan por Google Play: todos los módulos de mainline que existen y cómo saber los que soporta tu móvil">Partes de Android que se actualizan por Google Play: todos los módulos de mainline que existen y cómo saber los que soporta tu móvil</a>
   </div>
  </div>
 </div>
</div>
<p>En Android 12, el compilador ART (Android Runtime) se independizaba del módulo de Runtime, pudiendo así actualizarse de forma independiente. Ahora <strong>Google tiene listo ART 14</strong>, que va a suponer mejoras en el tiempo de arranque de aplicaciones, sin necesidad de que los desarrolladores hagan ningún cambio de código.</p>
<!-- BREAK 3 --><div class="article-asset-image article-asset-large article-asset-center">
 <div class="asset-content">
                   <img class="" height=512 width=1024 loading="lazy" decoding="async" sizes="100vw" fetchpriority="high" srcset="https://i.blogs.es/cc4bb1/artupdate/450_1000.jpeg 450w, https://i.blogs.es/cc4bb1/artupdate/650_1200.jpeg 681w,https://i.blogs.es/cc4bb1/artupdate/1024_2000.jpeg 1024w, https://i.blogs.es/cc4bb1/artupdate/1366_2000.jpeg 1366w" src="https://i.blogs.es/cc4bb1/artupdate/450_1000.jpeg" alt="Artupdate">
   <img alt="Artupdate" class="" src="https://i.blogs.es/cc4bb1/artupdate/450_1000.jpeg">
   
      </div>
</div>
<p>Concretamente, las pruebas de Google durante el despliegue de la versión anterior, ART 13, vieron como <strong>el tiempo de ejecución de las aplicaciones se reducía en un 30%</strong>. El despliegue de ART 14 aún no ha comenzado, así que para tener los datos de la última actualización todavía tendremos que esperar.</p>
<!-- BREAK 4 --><p>ART 14 llegará en los próximos meses a los móviles <strong>que tengan Android 12 o superior</strong>, además de venir en Android 14 y próximamente llegar a Android Go. ART es el runtime que provee de todas las API que usan las aplicaciones y el sistema, independientemente de que usen Java o Kotlin, y las mejoras del compilador se traducen en mejoras que benefician al tiempo de ejecución de todas las aplicaciones.</p>
<div class="article-asset-video article-asset-normal">
 <div class="asset-content">
  <div class="base-asset-video">
   <div class="js-dailymotion">
    <script type="application/json">
                          {"videoId":"x8mx3ju","autoplay":true,"title":"ANDROID 14: 8 FUNCIONES por las que ACTUALIZAR el DÍA 1", "tag":""}
                  </script>
   </div>
  </div>
 </div>
</div>
<p>Vía | <a rel="noopener, noreferrer" href="https://android-developers.googleblog.com/2023/08/latest-artwork-on-hundreds-of-millions-of-devices.html">Android Developers</a></p>
<p>En Xataka Android | <a class="text-outboundlink" href="https://www.xatakandroid.com/sistema-operativo/probamos-nuevo-android-14-todas-novedades-como-instalar-primera-beta" data-vars-post-title="Probamos el nuevo Android 14: todas las novedades y cómo instalar la primera beta " data-vars-post-url="https://www.xatakandroid.com/sistema-operativo/probamos-nuevo-android-14-todas-novedades-como-instalar-primera-beta">Probamos el nuevo Android 14: todas las novedades y cómo instalar la primera beta</a></p>
<script>
 (function() {
  window._JS_MODULES = window._JS_MODULES || {};
  var headElement = document.getElementsByTagName('head')[0];
  if (_JS_MODULES.instagram) {
   var instagramScript = document.createElement('script');
   instagramScript.src = 'https://platform.instagram.com/en_US/embeds.js';
   instagramScript.async = true;
   instagramScript.defer = true;
   headElement.appendChild(instagramScript);
  }
 })();
</script>

                    ]]>
                </description>
            </item>
                                <item>
                <title><![CDATA[Project IDX quiere hacernos olvidar a Android Studio: con IA y directamente desde el navegador ]]></title>
                <link>https://www.xatakandroid.com/programacion-android/project-idx-quiere-hacernos-olvidar-a-android-studio-ia-directamente-navegador</link>
                <guid>https://www.xatakandroid.com/programacion-android/project-idx-quiere-hacernos-olvidar-a-android-studio-ia-directamente-navegador</guid>
                <pubDate>Wed, 09 Aug 2023 11:00:59 +0000</pubDate>
                                         <dc:creator>Pepu Ricca</dc:creator>
                                       <description>
                    <![CDATA[
                              <p>
      <img src="https://i.blogs.es/f1a86a/project-idx-google/1024_2000.jpeg" alt="Project&#x20;IDX&#x20;quiere&#x20;hacernos&#x20;olvidar&#x20;a&#x20;Android&#x20;Studio&#x3A;&#x20;con&#x20;IA&#x20;y&#x20;directamente&#x20;desde&#x20;el&#x20;navegador&#x20;">
    </p>
    <p>Además de ser el principal protagonista en el desarrollo de Android, Google provee a su sistema operativo con las <strong>herramientas y aplicaciones más potentes</strong>, tanto para usuarios finales como para los desarrolladores que trabajan programando <em>software</em>.</p>
<!-- BREAK 1 --><p>Ahí tenemos productos bastante asentados como <a class="text-outboundlink" href="https://www.xatakandroid.com/programacion-android/flutter-sdk-google-para-crear-apps-rapidamente-llega-a-version-2-0-soporte-para-windows-mac-web-plegables" data-vars-post-title="Flutter, el SDK de Google para crear apps rápidamente, llega a la versión 2.0 con soporte para Windows, Mac, web y plegables" data-vars-post-url="https://www.xatakandroid.com/programacion-android/flutter-sdk-google-para-crear-apps-rapidamente-llega-a-version-2-0-soporte-para-windows-mac-web-plegables">Flutter</a>, el SDK para crear apps, o los lenguajes de programación Go o Dart. Sin olvidar otras herramientas como el entorno de desarrollo rey en la plataforma: <a class="text-outboundlink" href="https://www.xatakandroid.com/programacion-android/android-studio-giraffe-2022-3-1-disponible-nuevo-diseno-live-edit-explorador-dispositivos" data-vars-post-title="Android Studio Giraffe 2022.3.1 ya disponible con un nuevo diseño, Live Edit, explorador de dispositivos y más" data-vars-post-url="https://www.xatakandroid.com/programacion-android/android-studio-giraffe-2022-3-1-disponible-nuevo-diseno-live-edit-explorador-dispositivos">Android Studio</a>. No obstante, la empresa de Mountain View tiene algo más que ofrecer con lo nuevo que ya ha lanzado. <strong>Se llama Project IDX</strong> y te permitirá manejar código directamente desde tu navegador.</p>
<h2>Así es Project IDX</h2>
<p>Google, a través de una publicación oficial en su <a rel="noopener, noreferrer" href="https://developers.googleblog.com/2023/08/introducing-project-idx-experiment-to-improve-full-stack-multiplatform-app-development.html">blog para desarrolladores</a>, hace oficial la disponibilidad de este proyecto. La empresa del conocido buscador hace hincapié en la <strong>dificultad que entraña programar aplicaciones multidispositivo</strong>, con distintos procesos hasta que finalmente están listas.</p>
<!-- BREAK 2 --><div class="article-asset-image article-asset-normal article-asset-center">
 <div class="asset-content">
                   <img class="centro_sinmarco" height=645 width=1812 loading="lazy" decoding="async" sizes="100vw" fetchpriority="high" srcset="https://i.blogs.es/c299b3/captura-de-pantalla-2023-08-09-094601/450_1000.jpeg 450w, https://i.blogs.es/c299b3/captura-de-pantalla-2023-08-09-094601/650_1200.jpeg 681w,https://i.blogs.es/c299b3/captura-de-pantalla-2023-08-09-094601/1024_2000.jpeg 1024w, https://i.blogs.es/c299b3/captura-de-pantalla-2023-08-09-094601/1366_2000.jpeg 1366w" src="https://i.blogs.es/c299b3/captura-de-pantalla-2023-08-09-094601/450_1000.jpeg" alt="IDX Project Google">
   <img alt="IDX Project Google" class="centro_sinmarco" src="https://i.blogs.es/c299b3/captura-de-pantalla-2023-08-09-094601/450_1000.jpeg">
   
      </div>
</div>
<p>Por ello, además de proporcionar herramientas ya usadas como las citadas anteriormente, piensan que todavía tienen algo más que ofrecer para que el flujo de trabajo sea más fluido. Aquí es donde entra en juego Project IDX, <strong>una plataforma completa de desarrollo</strong> que se usa desde cualquier navegador, basada en Google Cloud e impulsada por un modelo de lenguaje de inteligencia artificial.</p>
<!-- BREAK 3 --><p>En un estado de desarrollo temprano, los ingenieros de Google han decidido compartir la herramienta para ir conociendo las opiniones de los desarrolladores. Quieren saber en qué sentido Project IDX puede ayudarles a trabajar más rápido. La filosofía de este entorno es <strong>trabajar desde cualquier lugar y dispositivo</strong>, pues cuenta con todas las bondades de una máquina virtual basada en Linux.</p>
<div class="article-asset article-asset-normal article-asset-center">
 <div class="desvio-container">
  <div class="desvio">
   <div class="desvio-figure js-desvio-figure">
    <a href="https://www.xatakandroid.com/tutoriales/como-activar-opciones-desarrollador-android-sirve" class="pivot-outboundlink" data-vars-post-title="Cómo activar las opciones de desarrollador en Android y para qué sirve">
     <img alt="C&#x00F3;mo&#x20;activar&#x20;las&#x20;opciones&#x20;de&#x20;desarrollador&#x20;en&#x20;Android&#x20;y&#x20;para&#x20;qu&#x00E9;&#x20;sirve" width="375" height="142" src="https://i.blogs.es/42f2da/opcionesd/375_142.jpg">
    </a>
   </div>
   <div class="desvio-summary">
    <div class="desvio-taxonomy js-desvio-taxonomy">
     <a href="https://www.xatakandroid.com/tutoriales/como-activar-opciones-desarrollador-android-sirve" class="desvio-taxonomy-anchor pivot-outboundlink" data-vars-post-title="Cómo activar las opciones de desarrollador en Android y para qué sirve">En Xataka Android</a>
    </div>
    <a href="https://www.xatakandroid.com/tutoriales/como-activar-opciones-desarrollador-android-sirve" class="desvio-title js-desvio-title pivot-outboundlink" data-vars-post-title="Cómo activar las opciones de desarrollador en Android y para qué sirve">Cómo activar las opciones de desarrollador en Android y para qué sirve</a>
   </div>
  </div>
 </div>
</div>
<p>Para facilitar la adaptación de código, el proyecto permite <strong>importar todo el código fuente desde plataformas como GitHub</strong>, además de ser compatible con lenguajes muy usados como Dart, Go, Javascript o Python. Posteriormente, para testear el código, cuenta con un completo emulador de Android, una vista previa y un simulador de iOS.</p>
<!-- BREAK 4 --><div class="article-asset-video article-asset-normal">
 <div class="asset-content">
  <div class="base-asset-video">
   <div class="js-dailymotion">
    <script type="application/json">
                          {"videoId":"x8k1wav","autoplay":false,"title":"ENTREVISTA MIDUDEV - TODO sobre la PROGRAMACIÓN INFORMÁTICA | XTK: El programa de Xataka", "tag":""}
                  </script>
   </div>
  </div>
 </div>
</div>
<p>Como no podía ser de otra forma, la relevancia de la inteligencia artificial llega hasta este rincón: <strong>los modelos Codey y PaLM 2 estarán presentes</strong> para ayudar a la generación de código de calidad. Para comenzar a usar Project IDX, tan sólo debemos apuntarnos a la lista de espera en el <a rel="noopener, noreferrer" href="https://idx.dev/">sitio web oficial</a>.</p>
<!-- BREAK 5 --><p>Más información | <a rel="noopener, noreferrer" href="https://developers.googleblog.com/2023/08/introducing-project-idx-experiment-to-improve-full-stack-multiplatform-app-development.html">Google Developers</a></p>
<p>En Xataka Android | <a class="text-outboundlink" href="https://www.xatakandroid.com/nuevo/android-14-novedades-fecha-lanzamiento-modelos-compatibles-todo-nuevo-android-14-google" data-vars-post-title="Android 14: novedades, fecha de lanzamiento, modelos compatibles y todo lo que se anticipa del Android 14 de Google" data-vars-post-url="https://www.xatakandroid.com/nuevo/android-14-novedades-fecha-lanzamiento-modelos-compatibles-todo-nuevo-android-14-google">Android 14: novedades, fecha de lanzamiento, modelos compatibles y todo lo que se anticipa del Android 14 de Google</a></p>
<script>
 (function() {
  window._JS_MODULES = window._JS_MODULES || {};
  var headElement = document.getElementsByTagName('head')[0];
  if (_JS_MODULES.instagram) {
   var instagramScript = document.createElement('script');
   instagramScript.src = 'https://platform.instagram.com/en_US/embeds.js';
   instagramScript.async = true;
   instagramScript.defer = true;
   headElement.appendChild(instagramScript);
  }
 })();
</script>

                    ]]>
                </description>
            </item>
            </channel>
</rss>
