Accédez à votre IDE à distance avec Projecteur

Accédez à votre IDE à distance avec Projecteur

Nouveaux produits
Nouvelles
Projecteur

Lisez cet article dans d’autres langues :
Anglais, 한국어, Turquie, Deutsch, Portugais du Brésil, Русский, espagnol, 简体中文

Aujourd’hui, nous avons le plaisir de vous annoncer le lancement de Projector : un outil et un framework qui vous permet d’exécuter l’IDE JetBrains et les applications Swing à distance sur votre réseau.

Projecteur de logos

Comme vous le savez peut-être, Swing est un kit d’outils de widgets graphiques pour Java. Les IDE de JetBrains utilisent Swing pour créer l’interface utilisateur. Il en va de même pour les autres IDE basés sur IntelliJ, comme Android Studio.

Même si les IDE JetBrains et les applications Swing sont généralement des applications de bureau, un certain nombre de cas particuliers, comme les clients légers, évitent une approche différente. C’est là que le projecteur entre en jeu.

Projector est une technologie auto-hébergée qui exécute les IDE basés sur IntelliJ et les applications basées sur Swing sur le serveur, vous permettant d’y accéder de n’importe où à partir de navigateurs et d’applications natives.

Il existe de nombreuses situations qui permettent l’exécution d’un IDE sur un serveur. C’est particulièrement courant dans les grandes entreprises ayant une énorme infrastructure. Voici une liste non exhaustive des cas dans lesquels Projector est particulièrement utile :

  • Exécuter le code à proximité de l’environnement d’exécution ous de la base de données pour réduire les allers-retours.
  • Environnements d’entreprise hautement sécurisés.
  • Très grands projets.
  • Interdiction de copie locale de source de code.
  • Contraintes en matière de matériel informatique (hardware) pour l’utilisateur.
  • Clients légers.
  • Nécessité d’exécuter l’IDE dans un environnement GNU/Linux sur des machines Windows ou sur des systèmes d’exploitation non conventionnels comme ChromeOS.
  • Nécessité d’éteindre votre ordinateur pendant que votre application continue de fonctionner sur le serveur.
  • Débogage à distance côté serveur (devtest, devprod).
  • Images VM ou Docker avec sources de débogage et un IDE préconfiguré.
  • Configuration requise un accès à distance.

Veuillez noter que Projector ne prend pas en charge le développement collaboratif. Si vous avez besoin d’un outil de collaboration, essayez Coder avec moi. Nous travaillons également sur une nouvelle solution de développement à distance qui combine les fonctionnalités de Code With Me et de Projector. Elle permettra d’aller encore plus loin dans la résolution des problèmes de latence du réseau.

Chaque composant de Projecteur est publié sous une licence Open Source. Les entreprises qui le souhaitent peuvent élaborer ainsi des solutions personnalisées sur la base de cette technologie. Nous utilisons les trois licences les plus populaires :

  • Client : Licence MIT (Expat)
  • Serveur : GNU GPL v2.0 + Exception Classpath
  • Fichiers Docker : Licence Apache 2.0

N’hésitez pas à contribuer à l’ajout de nouvelles fonctionnalités et à la correction de bugs via des requêtes pull GitHub. Vous trouverez ci-dessous les liens GitHub vers les différents projets.

Projector est un logiciel client-serveur. Vous activez l’IDE sur votre serveur, puis vous pouvez vous y connecter sur le réseau. La connexion entre le client et le serveur est extrêmement rapide et légère.

Cela peut faire penser à une solution de bureau à distance comme VNC, mais avec Projector, seules les fenêtres de l’IDE sont affichées et il est optimisé pour offrir un débit maximal pour les applications basées sur Java.

Le projecteur offre de multiples options pour la configuration d’un serveur ou d’un client.

Vous pouvez utiliser un navigateur ou une application native pour vous connecter à l’IDE. L’application native offre de meilleures fonctionnalités (des raccourcis clavier, par exemple), mais elle n’est disponible que pour les systèmes d’exploitation de bureau. Actuellement, l’utilisation d’un navigateur est la seule option pour les appareils mobiles, mais nous prévoyons également de créer des clients natifs pour les plateformes mobiles.

Client Web

L’expérience avec le navigateur est très proche de l’utilisation d’un site web interactif. Il existe cependant une option permettant de passer en mode plein écran, qui offre une expérience plus proche de l’application native.

Vous pouvez contrôler les propriétés du client web en modifiant les paramètres de l’URL. Par exemple, sur les appareils mobiles, vous pouvez ajouter le paramètre “portable” à l’URL pour activer la superposition de boutons, y compris la possibilité d’ouvrir un clavier virtuel.

Le client web est implémenté avec l’API HTML5 Canvas et devrait fonctionner dans tout navigateur compatible avec cette API. Il a été testé sur Chrome/Chromium, Firefox et Safari.

Aucune installation du client web n’est requise : il est déjà inclus dans la partie serveur web de Projector. Il vous suffit de saisir l’URL. Tout le code est disponible sur GitHub.

Application native

Vous pouvez utiliser une application native pour macOS, Windows et Linux. Les binaires sont disponibles ici et les sources sont publiées sur GitHub.

En plus des avantages attendus, comme l’intégration au dock/barre de tâches, cette application prend en charge les raccourcis clavier tels que Ctrl+W/Cmd+W, qui ne sont généralement pas disponibles dans le client web.

Script d’installation Python

Nôtre script d’installation offre une certaine souplesse pour l’installation des composants côté serveur. Il s’agit d’une distribution autonome, actuellement disponible uniquement pour les hôtes GNU/Linux. Vous pouvez choisir quel IDE vous souhaitez installer, sa version, ses options de sécurité, etc.

Docker d’images

L’utilisation de Docker est la façon la plus simple d’exécuter Projector dans un environnement Cloud. Nous avons un exemple de script qui vous permet de générer des images Docker contenant des IDE JetBrains et Projector. Vous pouvez ainsi exécuter l’IDE partout où Docker est disponible. L’IDE sera exécuté sans interface graphique et isolé et vous n’aurez pas à installer X11 sur le serveur. L’image est autonome.

Au lieu d’utiliser DockerHub, nous publions des images préconstruites à l’aide de notre Docker Registry personnalisé. Par exemple, cet extrait vous permet d’obtenir IntelliJ IDEA Community Edition :

docker pull registry.jetbrains.team/p/prj/containers/projector-idea-c

Plugin d’IDE

Enfin, vous pouvez installer le plugin directement dans votre IDE sans avoir à accéder aux éléments côté serveur sur un serveur distinct. Avec ce plugin, votre appareil est le serveur. Vous pouvez trouver le code source sur GitHub.

Cependant, le plugin est beaucoup moins isolé, des interactions avec le système d’exploitation peuvent donc survenir. Par exemple, nous ne pouvons pas fournir le rendu du menu global sur macOS.

Le projecteur est une technologie plutôt qu’une solution pour utilisateur final. Vous pouvez l’utiliser pour personnaliser votre infrastructure afin de répondre aux besoins de votre entreprise. Ansible ? Bien sur. Kubernetes ? Pas de problème .

Vous pouvez construire tout ce que vous voulez, en fonction de votre niveau de compétences techniques. Le code est open source, donc rien ne vous empêche de modifier ce que vous voulez ou même de contribuer ! Vous pouvez trouver plus d’informations, ainsi que le code côté serveur le plus important, sur GitHub.

Bien que Projector soit une technologie toute récente, nous pensons qu’elle a le potentiel pour devenir l’une des meilleures solutions pour l’accès à distance aux IDE. Faites-nous part de vos commentaires. Vous pouvez nous contacter à tout moment via Vous suivez et Twitter.

— Projecteur L’Équipe

Auteur de l’article original en anglais : Oleg Chiroukhine

Development Source

Related Posts

RLEC 4.2.1 apporte des contrôles granulaires à la haute disponibilité et aux performances

RLEC 4.2.1 apporte des contrôles granulaires à la haute disponibilité et aux performances

Comment HolidayMe utilise Redis Enterprise comme base de données principale

Comment HolidayMe utilise Redis Enterprise comme base de données principale

Annonce de RedisGears 1.0 : un moteur sans serveur pour Redis

Annonce de RedisGears 1.0 : un moteur sans serveur pour Redis

Clés Redis dans la RAM |  Redis

Clés Redis dans la RAM | Redis

No Comment

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *