Projet open source
tyron12233/CodeAssist avatar
tyron12233/CodeAssist

CodeAssist : un IDE sur appareil qui construit des applications Android sans Gradle

Ce projet transforme « Experimental IDE for building Android applicatons on Android. CodeAssist A lightweight, on-device IDE that edits *and builds* Android & Java projects, no laptop, no Gradle daemon.** What is CodeAssist? » en une solution open source exploitable, avec une chaîne d’outils réutilisable et des moyens d’intégration pour des cas d’usage concrets.

1 877 étoiles397 forksKotlinGPL-3.0
GitHub

En bref

De quoi s’agit-il ?
Un IDE Kotlin léger qui édite et construit des projets Android et Java sur l'appareil, avec son propre moteur de tâches incrémental.
À qui s’adresse-t-il ?
Ce projet s adresse aux équipes dont le besoin correspond précisément à CodeAssist et aux éléments documentés dans son README. Avant de l intégrer, exécutez le point de contrôle propre au dépôt : Installez CodeAssist selon les instructions du dépôt, ouvrez un projet Android de test et comparez la complétion avec les journaux et les fichiers de configuration réellement utilisés.
Puis-je l’utiliser commercialement ?
Oui, sous conditions. GPL-3.0 est une licence copyleft : si vous distribuez un logiciel qui l’inclut, vous devez publier le code source de ce logiciel sous la même licence. Un usage interne, sans distribution, ne déclenche pas cette obligation.
Est-il encore maintenu ?
Oui. Les derniers commits datent d’il y a 2 jours.
En quel langage est-il écrit ?
Principalement Kotlin, d’après les statistiques de langage de GitHub.

Ces réponses reposent sur les données GitHub du projet (dernière synchronisation le 14 septembre 2026) et sur notre analyse. Elles ne constituent pas un avis juridique.

ANALYSE OPEN SOURCE APPROFONDIE

Un IDE qui modélise les projets au lieu d'exécuter Gradle

CodeAssist est un framework IDE écrit en Kotlin qui fonctionne entièrement sur Android/ART et peut éditer et construire des projets Android et Java sans héberger d'exécution Gradle. Au lieu d'invoquer Gradle, il représente les projets comme un modèle déclaratif compilé en un DAG de tâches incrémental, avec des vérifications de fraîcheur par empreinte et un cache persistant. Il pilote directement la chaîne d'outils Android, en utilisant des outils purement Java comme Eclipse JDT/ecj, D8/R8 et apksigner en processus, et aapt2 natif en sous-processus. Le README décrit cela comme léger : pas de démon Gradle, indexation en mémoire plate avec stockage disque, et édition incrémentale rapide où une modification de fichier unique ne relance que les tâches de construction affectées. L'interface est Compose Multiplatform avec des lanceurs de bureau et Android.

Complétion, assistance XML et constructions APK sur appareil

La liste des fonctionnalités inclut l'intelligence de code Java basée sur Eclipse JDT, offrant une analyse tolérante aux erreurs, une complétion classée, des diagnostics et des correctifs rapides. La complétion Kotlin est disponible en bêta, réglée pour la même expérience classée que Java. L'édition XML Android offre la complétion de balises, d'attributs et de ressources pour les mises en page et les manifestes avec validation en direct. L'éditeur peut produire de véritables constructions APK sur l'appareil, résolvant, compilant, dexant, empaquetant, signant et installant sans ordinateur portable. Le README mentionne également l'extensibilité : les types de modules, les systèmes de construction, les backends linguistiques, les analyseurs et les correctifs rapides se branchent via des points d'extension.

L'éditeur de blocs est une projection en direct du même DOM

Tout fichier Java peut être affiché sous forme d'arbre de blocs typés et imbriqués. L'arbre de blocs est une projection en direct du même DOM utilisé par l'éditeur de code, de sorte que les deux vues ne dérivent jamais. Une modification de bloc se compile en la plus petite modification source possible, laissant intacts les lignes et commentaires non touchés. Les prises de valeurs typées, la complétion en ligne dans les prises, la recherche de palette et le glisser-déposer se mappent tous sur la même pipeline de projection. Le README renvoie à un document dédié expliquant le fonctionnement de la projection et de l'aller-retour d'édition.

Qualité mesurée, latence et suite de régression

Le README inclut un tableau de benchmarks avec des chiffres régénérés à chaque version. La qualité de complétion Java est rapportée à 100% de rappel, 75% top-1 et 0,88 MRR ; la latence par frappe est de 4,3 ms pour l'accès aux membres et 2,8 ms pour les références de type. La qualité de l'index de symboles est de 100% de rappel, 90% top-1, 0,95 MRR, avec des requêtes de préfixe autour de 4,4 µs et des requêtes floues autour de 56 ns. Le README note que la latence est enregistrée sur la machine du mainteneur et doit être traitée comme indicative, tandis que les métriques de qualité sont déterministes. Une suite regressionTest fait échouer le CI en cas de régression de qualité. Le nombre de tests est de 2644 tests dans 443 suites, 0 échec, 2 ignorés.

Disposition des modules et conventions d'extension

Le dépôt est organisé de sorte que les dépendances pointent uniquement vers le bas et que les modules de plateforme ne portent aucune connaissance du domaine. Le README montre un diagramme : platform-core, vfs-api, project-model-api, build-api, language-api, puis deps-api, index-api, analysis-api, block-api, et ide-ui avec ide-core et les lanceurs de bureau/Android. Le tableau complet des modules se trouve dans docs/modules.md. Les conventions incluent l'utilisation de classes de valeur @JvmInline pour les identifiants, des classes de valeur adossées à des chaînes pour les classifications ouvertes comme NodeKind et LanguageId, des énumérations pour les ensembles fermés, des fonctions suspend pour les points d'entrée de longue durée sous une discipline de verrou en lecture/écriture, et une mutation transactionnelle avec commit().

Construction, installation et licence

La construction nécessite le wrapper Gradle et JDK 17+, développé contre la runtime JetBrains. Les commandes du README incluent CI_CORE_ONLY=true ./gradlew check pour le framework de base, ./gradlew build pour la construction complète, ./gradlew :ide-desktop:run pour l'IDE de bureau, et ./gradlew :ide-android:assembleDebug pour le lanceur Android. La suite de régression est optionnelle via les tâches regressionTest. L'installation est proposée via un canal de test Google Play et F-Droid/IzzyOnDroid, avec une note indiquant que les builds Play et IzzyOnDroid ont des signatures différentes et ne peuvent pas être mis à jour entre les magasins. La licence est GPL-3.0 ou ultérieure ; le texte de licence déclare accorder la liberté de partager et de modifier le logiciel, mais le README ne décrit aucune garantie ni assurance de sécurité. Installez CodeAssist selon les instructions du dépôt, ouvrez un projet Android de test et comparez la complétion avec les journaux et les fichiers de configuration réellement utilisés. Vérifiez la version du plugin, le modèle ou service configuré et les permissions demandées. Le README ne permet pas d inférer une qualité uniforme des suggestions ni une compatibilité avec chaque version d Android Studio.

Conclusion éditoriale

Ce projet s adresse aux équipes dont le besoin correspond précisément à CodeAssist et aux éléments documentés dans son README. Avant de l intégrer, exécutez le point de contrôle propre au dépôt : Installez CodeAssist selon les instructions du dépôt, ouvrez un projet Android de test et comparez la complétion avec les journaux et les fichiers de configuration réellement utilisés. Vérifiez la version du plugin, le modèle ou service configuré et les permissions demandées. Le README ne permet pas d inférer une qualité uniforme des suggestions ni une compatibilité avec chaque version d Android Studio.

Sources officielles

  1. Official README
  2. Project repository
  3. Release notes
Notes de la communauté

Notes de la communauté