Cómo codificar en Android Studio desde cualquier dispositivo con JetBrains Proyector

click fraud protection

¿Quieres codificar de forma remota en Android Studio? Consulte JetBrains Proyector, la mejor manera de ejecutar IntelliJ IDE de JetBrains en cualquier dispositivo.

JetBrains es la empresa detrás de algunos de los IDE más populares, incluidos IntelliJ IDEA, PyCharm y PhpStorm. Incluso Android Studio, una especie de IDE interno de Google para el desarrollo de Android, está basado en IntelliJ.

Si bien los IDE de IntelliJ son populares por una razón (son bien), a veces pueden resultar un poco pesados. IntelliJ y Android Studio pueden consumir muchos recursos con solo estar abiertos, por ejemplo. Y si estás compilando algo, usarán aún más. Tampoco puedes (todavía) ejecutar cosas de JetBrains en dispositivos móviles, ya que JetBrains no tiene compilaciones ARM de fácil acceso.

Entonces, ¿qué pasa si no tienes una computadora potente, o ni siquiera tienes una computadora? Normalmente, aquí sería donde buscaría otros IDE que funcionen en ARM. Pero JetBrains tiene una solución y se llama JetBrains Proyector.

¿Qué es un proyector?

Probablemente hayas oído hablar antes del escritorio remoto o VNC. Le permite interactuar gráficamente con una computadora a través de una red local o incluso de Internet. JetBrains Proyector funciona un poco como un escritorio remoto, pero sin algunas de sus desventajas.

Para utilizar JetBrains Proyector, necesita una computadora en algún lugar de Internet para alojarlo. Podría ser una instancia de AWS o un servidor doméstico. Luego puede conectarse a él desde cualquier navegador compatible, incluidos Chrome y Firefox móviles.

Pero en lugar de mostrar un escritorio completo y enviar un video de él a un cliente conectado, JetBrains Proyector envía la información necesaria para que el cliente muestre un IDE como si estuviera mostrando en la zona. Esto significa que no hay compresión ni escalado de resolución, por lo que el IDE parece casi nativo.

Además, JetBrains Proyector no se limita solo a los IDE oficiales de JetBrains. Siempre que tenga un IDE que esté basado estrechamente en uno de JetBrains, puede usarlo con JetBrains Proyector. Eso incluye Android Studio.

¿Por qué un proyector?

La razón más importante por la que quizás quieras hacer desarrollo remoto es de lo que hablé en la introducción: ¿Qué pasa si no tienes una computadora potente basada en x86? Podrías comprar uno semipotente específicamente para trabajos de desarrollo, o podrías activar un servidor en la nube y usar JetBrains Proyector.

También puede resultar útil si sólo desea descargar los requisitos de recursos. Por ejemplo, tengo una computadora portátil para juegos bastante potente con un i7-9750H y 32 GB de RAM. Eso es suficiente incluso para los grandes proyectos con los que me ocupo. Pero si quiero hacer algo más además del desarrollo que también requiera muchos recursos, como viendo Youtube, ¿jugando un juego? Entonces las cosas empiezan a desmoronarse.

Pero tengo un servidor Ryzen 7 5800X con 32 GB de RAM. Entonces instalé JetBrains Proyector en eso. Ahora puedo abrir una nueva ventana de Chrome y conectarme desde mi computadora portátil sin preocuparme por hacer malabarismos con los recursos. El servidor también se construye mucho más rápido que mi computadora portátil, por lo que es una situación en la que todos ganan.

¿Cómo es usar un proyector?

JetBrains Proyector está diseñado para alojarse en una máquina Linux. Eso no significa que no puedas ejecutarlo en macOS o Windows con WSL, pero es posible que tengas algunos problemas extraños debido a eso.

Para configurarlo, todo lo que necesitas hacer es dirigirte al Repositorio GitHub del instalador del proyector y sigue las instrucciones allí. Le guiarán para instalar las dependencias y configurar un IDE. Incluso hay algunos pasos para solucionar problemas de WSL si los necesita.

Luego, puede conectarse a la dirección de su servidor usando el puerto y el token correctos (si configuró uno), y ahora tendrá un IDE ejecutándose en su dispositivo sin ninguna sobrecarga.

Desarrollo de Android

Soy desarrollador de Android, por lo que, si bien podría usar IntelliJ IDEA para el desarrollo, Android Studio tiende a funcionar mejor. Si bien JetBrains Proyector admite IDE de terceros, ahora es tan simple como usar la interfaz de línea de comandos incorporada para descargarlos e instalarlos. Aunque sigue siendo bastante sencillo.

Para usar Android Studio con JetBrains Proyector, todo lo que tiene que hacer es descargar y extraer Android Studio en algún lugar sensato. Luego puede agregarlo manualmente al Proyector a través de la línea de comando especificando la ruta.

También hay otro problema con el desarrollo y el proyector de Android: ejecutar aplicaciones. Sin nada adicional, puedes codificar aplicaciones y ver vistas previas en el Proyector, pero no puedes usar un emulador ni conectarte a un dispositivo real para ejecutar y depurar aplicaciones. ¿O puedes?

Es casi como si Google esperara que ocurriera este tipo de escenario porque ADB puede conectarse a un servidor remoto a través de Internet. Todo lo que se necesita es un túnel SSH desde el cliente al servidor del proyector. Configuré Android Studio en el proyector para que no intente administrar ADB y use el puerto 5038. Luego simplemente uso algún tipo de cliente SSH (OpenSSH, plink, etc.) para crear un túnel que reenvía el servidor ADB que se ejecuta localmente en el puerto 5037 al servidor en el puerto 5038. ¡Fácil!

Todo lo que necesitas es un túnel SSH para el desarrollo adecuado de Android.

Si desea obtener más detalles sobre cómo hacer que Android Studio y el túnel SSH funcionen, consulte esto documento de GitHub Por Joaquim Vergés.

Una nota sobre Android Studio y otros IDE de terceros basados ​​en JetBrains: no puede actualizarlos desde la pantalla del proyector. Necesitará acceder directamente al servidor de forma remota y actualizarlos desde allí. Asegúrese de que la instancia del Proyector correspondiente esté detenida antes de hacerlo.

Desarrollo de Android

Dado que JetBrains Proyector se ejecuta en un navegador y puedes conectarte desde algo como un teléfono Android, como ejemplo completamente aleatorio, quería probar algo.

Android 11 introdujo la capacidad de habilitar ADB inalámbrico directamente desde el dispositivo. Si bien algunos fabricantes expusieron la configuración antes, no está disponible para todos los dispositivos certificados por Google siempre que tengan Android 11 o posterior. Si bien la depuración inalámbrica está pensada para usarse desde una computadora, no es necesario que lo sea.

Aplicaciones como Shizuku demuestre que es posible en Android 11 conectarse con ADB a su dispositivo... desde su dispositivo, sin siquiera pensar en usar una computadora. Si bien Shizuku usa esto para permitir que las aplicaciones ejecuten operaciones elevadas, creo que probablemente puedas ver hacia dónde se dirige.

¡Así que hice una aplicación! No sé si alguna vez lo haré público, pero es bastante simple. Tengo una biblioteca SSH junto con un binario ARM64 ADB. Utilizo el binario ADB para conectarme al dispositivo que estoy usando, luego uso la biblioteca SSH para crear un túnel de reenvío desde mi dispositivo al servidor del proyector. Y finalmente, lo uso para almacenar e iniciar las URL del proyector.

Bam, desarrollando para Android... ¡desde Android! Cada vez que no estoy en casa pero quiero trabajar en el desarrollo de Android, puedo sacar mi Samsung Galaxy Tab S7. Tengo un teclado Bluetooth y un mouse Bluetooth (nota al margen: si estás usando el Proyector, podrás en realidad desea utilizar un mouse o trackpad. No funciona bien con la entrada táctil), por lo que puedo desarrollar y depurar sin necesidad de cambiar de dispositivo y sin tener que cargar con una computadora portátil mucho más pesada.

Problemas

El proyector JetBrains aún se encuentra en una fase de desarrollo bastante temprana, por lo que no es perfecto.

  1. A veces hay un poco de retraso al responder a cosas como desplazarse y arrastrar, y los controles pueden fallar.
  2. De forma aleatoria, al visualizar el código de la biblioteca (ya sea descompilado o en la vista de código fuente), el peso de la fuente se vuelve muy pesado y todo se retrasa. Sin embargo, es posible que esto se haya solucionado al momento de escribir esto.
  3. Algunos complementos no funcionarán correctamente. Dado que esta no es una transmisión de video directa, los complementos como los navegadores integrados simplemente no mostrarán nada.
  4. No hay soporte para el servidor X y probablemente no lo habrá. Esto puede dificultar el desarrollo de aplicaciones de escritorio y de navegador, pero siempre puedes usar un túnel SSH con reenvío X y un servidor X local si realmente lo necesitas.
  5. A veces, la interfaz se bloquea y es necesario actualizar la página o incluso reiniciar el servicio del servidor para que vuelva a funcionar.

Y hay más.

¿Pero es todo eso un factor decisivo? Ciertamente no para mí. Estoy perfectamente bien con una experiencia un poco menos pulida (después de todo, uso Android Studio Canary), especialmente si eso significa que puedo descargar todo el trabajo de compilación a otra computadora e incluso desarrollar para mi tableta desde mi tableta.

Android Studio ejecutándose en un Samsung Galaxy Tab S7 a través del proyector JetBrains

Incluso con sus problemas, todavía me gusta mucho el proyector JetBrains. Hace posible el desarrollo desde dispositivos móviles, mueve la carga de recursos de una computadora local a una remota y también es realmente genial.

Sé que otros IDE, como Visual Studio, te permiten descargar la compilación a una computadora remota, pero eso aún requiere que tengas el IDE instalado y ejecutándose localmente.

Personalmente, estoy muy emocionado de ver hacia dónde se dirige el proyector JetBrains a partir de ahora porque ya es bastante increíble en este momento. Con suerte, podrán solucionar algunos de los problemas que describí anteriormente, pero incluso ahora, el proyector debería ser seguro de usar para proyectos listos para producción.

Si desea probar el proyector JetBrains usted mismo, aquí está el enlace de nuevo al instalador y a la guía de configuración inicial. Si desea configurar Android Studio en Proyector, aquí está ese enlace de nuevo, también.