Vous cherchez à coder à distance dans Android Studio? Découvrez JetBrains Projecteur, le meilleur moyen d'exécuter l'IDE IntelliJ de JetBrains sur n'importe quel appareil.
JetBrains est la société à l'origine de certains des IDE les plus populaires, notamment IntelliJ IDEA, PyCharm et PhpStorm. Même Android Studio, l'IDE interne de Google pour le développement Android, est basé sur IntelliJ.
Bien que les IDE d'IntelliJ soient populaires pour une raison (ils sont bien), ils peuvent parfois être un peu lourds. IntelliJ et Android Studio peuvent consommer beaucoup de ressources simplement en étant ouverts, par exemple. Et si vous compilez quelque chose, ils en utiliseront encore plus. Vous ne pouvez pas non plus (encore) vraiment exécuter des éléments JetBrains sur des appareils mobiles, car JetBrains ne dispose pas de versions ARM facilement accessibles.
Alors, que se passe-t-il si vous n’avez pas d’ordinateur puissant, ou si vous n’avez même pas d’ordinateur? Normalement, c’est ici que vous chercheriez d’autres IDE qui fonctionnent sur ARM. Mais JetBrains a en quelque sorte une solution, et elle s'appelle JetBrains Projecteur.
Qu'est-ce qu'un projecteur?
Vous avez probablement déjà entendu parler du bureau à distance ou de VNC. Il vous permet d'interagir graphiquement avec un ordinateur sur un réseau local ou même sur Internet. JetBrains Projecteur fonctionne un peu comme un bureau distant, mais sans certains inconvénients.
Pour utiliser JetBrains Projecteur, vous avez besoin d'un ordinateur quelque part sur Internet pour l'héberger. Il peut s'agir d'une instance AWS ou d'un serveur domestique. Vous pouvez ensuite vous y connecter depuis n'importe quel navigateur pris en charge, y compris Chrome mobile et Firefox.
Mais au lieu d'afficher un bureau entier et d'en renvoyer un flux vidéo à un client connecté, JetBrains Projecteur envoie les informations nécessaires au client pour afficher un IDE comme s'il affichait localement. Cela signifie qu'il n'y a pas de mise à l'échelle de compression ou de résolution, donc l'IDE semble presque natif.
De plus, JetBrains Spotlight ne se limite pas aux IDE JetBrains officiels. Tant que vous disposez d'un IDE étroitement basé sur celui de JetBrains, vous pouvez l'utiliser avec JetBrains Projecteur. Cela inclut Android Studio.
Pourquoi un projecteur?
La principale raison pour laquelle vous souhaiterez peut-être faire du développement à distance est ce dont j'ai parlé dans l'introduction: que se passe-t-il si vous ne disposez pas d'un ordinateur puissant basé sur x86? Vous pouvez en acheter un semi-puissant spécifiquement pour le travail de développement, ou vous pouvez démarrer un serveur cloud et utiliser JetBrains Projecteur.
Cela peut également être utile si vous souhaitez simplement vous décharger des besoins en ressources. Par exemple, j'ai un ordinateur portable de jeu assez puissant avec un i7-9750H et 32 Go de RAM. C'est largement suffisant, même pour les grands projets auxquels je m'occupe. Mais si je veux faire autre chose en plus du développement qui nécessite également beaucoup de ressources, comme regarder YouTube, jouer à un jeu? Puis les choses commencent à s’effondrer.
Mais j'ai un serveur Ryzen 7 5800X avec 32 Go de RAM. J'ai donc installé JetBrains Projecteur là-dessus. Désormais, je peux simplement ouvrir une nouvelle fenêtre Chrome et m'y connecter depuis mon ordinateur portable sans me soucier de jongler avec les ressources. Le serveur se construit également beaucoup plus rapidement que mon ordinateur portable, c'est donc une situation gagnant-gagnant.
Comment se passe l'utilisation d'un projecteur?
JetBrains Projecteur est destiné à être hébergé sur une machine Linux. Cela ne signifie pas que vous ne pouvez pas l'exécuter sur macOS ou sur Windows avec WSL, mais vous pourriez rencontrer des problèmes étranges à cause de cela.
Pour le configurer, il vous suffit de vous rendre sur le site Dépôt GitHub du programme d’installation du projecteur et suivez les instructions qui s'y trouvent. Ils vous guideront dans l’installation des dépendances et la configuration d’un IDE. Il existe même des étapes de dépannage WSL si vous en avez besoin.
Ensuite, vous pouvez simplement vous connecter à l'adresse de votre serveur en utilisant le port et le jeton corrects (si vous en avez défini un), et vous disposez désormais d'un IDE exécuté sur votre appareil sans aucun problème.
Développement Android
Je suis un développeur Android, donc même si je peux utiliser IntelliJ IDEA pour le développement, Android Studio a tendance à mieux fonctionner. Bien que JetBrains Projecteur prenne en charge les IDE tiers, il suffit désormais d'utiliser l'interface de ligne de commande intégrée pour les télécharger et les installer. Cela reste cependant assez simple.
Pour utiliser Android Studio avec JetBrains Projecteur, tout ce que vous avez à faire est de télécharger et d'extraire Android Studio dans un endroit raisonnable. Ensuite, vous pouvez l'ajouter manuellement au projecteur via la ligne de commande en spécifiant le chemin.
Il existe également un autre problème avec le développement Android et le projecteur: l'exécution d'applications. Sans rien de plus, vous pouvez coder des applications et afficher des aperçus dans le projecteur, mais vous ne pouvez pas utiliser d'émulateur ou vous connecter à un appareil réel pour exécuter et déboguer des applications. Ou pouvez-vous ?
C'est presque comme si Google s'attendait à ce que ce genre de scénario se produise, car ADB peut se connecter à un serveur distant via Internet. Tout ce dont vous avez besoin est un tunnel SSH entre le client et le serveur Projecteur. J'ai configuré Android Studio sur le projecteur pour ne pas essayer de gérer ADB et utiliser le port 5038. Ensuite, j'utilise simplement une sorte de client SSH (OpenSSH, plink, etc.) pour créer un tunnel qui transmet le serveur ADB exécuté localement sur le port 5037 vers le serveur sur le port 5038. Facile!
Si vous souhaitez plus de détails sur la façon de faire fonctionner le tunneling Android Studio et SSH, consultez ceci Document GitHub de Joaquim Vergès.
Une remarque à propos d'Android Studio et des autres IDE tiers basés sur JetBrains: vous ne pouvez pas les mettre à jour à partir de l'écran du projecteur. Vous devrez vous connecter directement au serveur et les mettre à jour à partir de là. Assurez-vous que l’instance de projecteur correspondante est arrêtée avant de le faire.
Développement Android
Étant donné que JetBrains Projecteur fonctionne dans un navigateur et que vous pouvez vous connecter à partir de quelque chose comme un téléphone Android, à titre d'exemple complètement aléatoire, je voulais essayer quelque chose.
Android 11 a introduit la possibilité de activer la BAD sans fil directement depuis l'appareil. Bien que certains fabricants aient exposé ce paramètre auparavant, il n'est pas disponible pour tous les appareils certifiés Google tant qu'ils fonctionnent sous Android 11 ou une version ultérieure. Bien que le débogage sans fil soit destiné à être utilisé à partir d’un ordinateur, ce n’est pas obligatoire.
Des applications comme Shizuku démontrez qu'il est possible sur Android 11 de se connecter avec ADB à votre appareil... depuis votre appareil, sans même penser à utiliser un ordinateur. Bien que Shizuku l'utilise pour permettre aux applications d'exécuter des opérations élevées, je pense que vous pouvez probablement voir où cela va.
J'ai donc créé une application! Je ne sais pas si je le rendrai un jour public, mais c'est assez simple. J'ai une bibliothèque SSH avec un binaire ARM64 ADB. J'utilise le binaire ADB pour me connecter à l'appareil que j'utilise, puis j'utilise la bibliothèque SSH pour créer un tunnel de transfert de mon appareil vers le serveur du projecteur. Et enfin, je l'utilise pour stocker et lancer les URL des projecteurs.
Bam, je développe pour Android... depuis Android! Chaque fois que je ne suis pas chez moi mais que je souhaite travailler sur le développement Android, je peux simplement retirer mon Samsung Galaxy Tab S7. J'ai un clavier Bluetooth et une souris Bluetooth (note: si vous utilisez un projecteur, vous vraiment souhaitez utiliser une souris ou un trackpad. Cela ne fonctionne pas bien avec la saisie tactile), je peux donc développer et déboguer sans avoir besoin de changer d'appareil et sans avoir à trimballer un ordinateur portable beaucoup plus lourd.
Problèmes
JetBrains Projecteur en est encore à ses premiers stades de développement, il n'est donc pas parfait.
- Parfois, la réponse à des choses comme le défilement et le glissement est un peu lente, et les commandes peuvent devenir bancales.
- De manière aléatoire, lors de la visualisation du code de la bibliothèque (soit décompilé, soit en vue source), le poids de la police devient très lourd et tout est en retard. Cependant, cela a peut-être été corrigé au moment d'écrire ces lignes.
- Certains plugins ne fonctionneront pas correctement. Puisqu'il ne s'agit pas d'un flux vidéo direct, les plugins tels que les navigateurs intégrés n'afficheront rien.
- Il n'y a pas de support pour le serveur X, et il n'y en aura probablement pas. Cela peut rendre difficile le développement d'applications de bureau et de navigateur, mais vous pouvez toujours utiliser un tunnel SSH avec transfert X et un serveur X local si vous en avez vraiment besoin.
- Parfois, l'interface se bloque et vous devez actualiser la page ou même redémarrer le service serveur pour qu'il fonctionne à nouveau.
Et il y a plus.
Mais est-ce que tout cela est un facteur décisif? Certainement pas pour moi. Je me sens parfaitement bien avec une expérience légèrement moins raffinée (j'utilise Android Studio Canary, après tout), surtout si cela signifie que je peux décharger tout le travail de compilation sur un autre ordinateur et même développer pour ma tablette depuis mon tablette.
Même avec ses problèmes, j’aime toujours beaucoup JetBrains Projecteur. Cela rend le développement à partir d'un mobile possible, il déplace la charge de ressources d'un ordinateur local vers un ordinateur distant, et c'est aussi vraiment cool.
Je connais d'autres IDE, comme Visual Studio, qui vous permettent de décharger la compilation sur un ordinateur distant, mais cela nécessite toujours que l'IDE soit installé et exécuté localement.
Personnellement, je suis vraiment impatient de voir où va JetBrains Projecteur à partir de là, car c'est déjà assez incroyable en ce moment. Espérons qu'ils seront en mesure de résoudre certains des problèmes que j'ai décrits ci-dessus, mais même maintenant, le projecteur devrait pouvoir être utilisé en toute sécurité pour des projets prêts à la production.
Si vous souhaitez essayer JetBrains Projecteur par vous-même, voici à nouveau le lien au guide d'installation et de configuration initiale. Si vous souhaitez configurer Android Studio dans Projecteur, voici à nouveau ce lien, aussi.