Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
68 commits
Select commit Hold shift + click to select a range
b8af391
Update gradle and dependencias para
ESTRIN217 Jan 25, 2026
bff0fda
Create gradle-publish.yml
ESTRIN217 Jan 25, 2026
6258246
update layoutpreview
ESTRIN217 Jan 25, 2026
496d6ff
update targetSdk to 36 and Java to 21
ESTRIN217 Jan 25, 2026
a93816c
Merge branch 'main' of https://github.com/ESTRIN217/CodeAssist
ESTRIN217 Jan 25, 2026
b663d39
Actualizar compatibilidad Kotlin 2.1.0 y Java 21 en todos los módulos
ESTRIN217 Jan 25, 2026
948ca65
Actualizar compatibilidad de xml-completion y otros módulos
ESTRIN217 Jan 25, 2026
1c52bba
Agregar soporte completo de Jetpack Compose 1.7.0 y librerías modernas
ESTRIN217 Jan 25, 2026
f03de60
Agregar 8 nuevas templates modernas: Compose, MVVM, Room, Retrofit, P…
ESTRIN217 Jan 25, 2026
193f6c4
Agregar 6 templates XML para Material Design 3 layouts
ESTRIN217 Jan 25, 2026
5d49239
Modernizar proyecto: Kotlin 2.1.0, Java 21, Gradle 9.3, AGP 9.0.0 y C…
ESTRIN217 Jan 25, 2026
9b01cb2
Agregar herramientas de desarrollo completas para Android
ESTRIN217 Jan 25, 2026
92e5249
Documentación completa de herramientas de desarrollo
ESTRIN217 Jan 25, 2026
d1abc28
Upgrade JDK version from 17 to 21 in workflow
ESTRIN217 Jan 25, 2026
0048cbc
Update JDK version from 11 to 21 in workflow
ESTRIN217 Jan 27, 2026
6d1b298
Upgrade upload-artifact action to version 4
ESTRIN217 Jan 27, 2026
b88482d
Update Java setup action to version 5
ESTRIN217 Jan 27, 2026
9ae662e
Upgrade checkout action to v3 and disable cache
ESTRIN217 Jan 27, 2026
1c970db
Disable dependencies cache in build-apk workflow
ESTRIN217 Jan 27, 2026
2d116ce
Enable dependencies cache in build-apk workflow
ESTRIN217 Jan 27, 2026
337bfb2
Replace gradle-command-action with direct gradlew command
ESTRIN217 Jan 27, 2026
b1f830b
Set JAVA_HOME for debug apk build
ESTRIN217 Jan 27, 2026
e52db3e
Change JDK version from 21 to 11 in workflow
ESTRIN217 Jan 27, 2026
a8e8104
Update JDK version from 11 to 17 in workflow
ESTRIN217 Jan 27, 2026
3544d80
Update build.gradle
ESTRIN217 Jan 27, 2026
cbd9f5d
Update build.gradle
ESTRIN217 Jan 27, 2026
78b7502
Update build.gradle
ESTRIN217 Jan 27, 2026
70e754f
Update build.gradle
ESTRIN217 Jan 27, 2026
7e647c4
Update build.gradle
ESTRIN217 Jan 27, 2026
e4bb713
Update build.gradle
ESTRIN217 Jan 27, 2026
6f1ad55
Update build.gradle
ESTRIN217 Jan 27, 2026
2807d07
Update build.gradle
ESTRIN217 Jan 27, 2026
9e52f27
Update build.gradle
ESTRIN217 Jan 27, 2026
2eeebeb
Update build.gradle
ESTRIN217 Jan 27, 2026
30cc504
Update build.gradle
ESTRIN217 Jan 27, 2026
ef7dd25
Update build.gradle
ESTRIN217 Jan 27, 2026
980ad4c
Update build.gradle
ESTRIN217 Jan 27, 2026
7554904
Update build.gradle
ESTRIN217 Jan 27, 2026
f05ea5e
Update build.gradle
ESTRIN217 Jan 27, 2026
32f5394
Update build.gradle
ESTRIN217 Jan 27, 2026
93744ed
Update build.gradle
ESTRIN217 Jan 27, 2026
4621802
Update build.gradle
ESTRIN217 Jan 27, 2026
25ff377
Update build.gradle
ESTRIN217 Jan 27, 2026
b87ae29
Update build.gradle
ESTRIN217 Jan 27, 2026
516d08b
Update build.gradle
ESTRIN217 Jan 27, 2026
b63c588
Update build.gradle
ESTRIN217 Jan 27, 2026
9a7eb06
Update build.gradle
ESTRIN217 Jan 27, 2026
e5469f9
Update build.gradle
ESTRIN217 Jan 27, 2026
bdb666e
Update build.gradle
ESTRIN217 Jan 27, 2026
27305e7
Update build.gradle
ESTRIN217 Jan 27, 2026
aa5315f
Update build.gradle
ESTRIN217 Jan 27, 2026
baff679
Update build.gradle
ESTRIN217 Jan 27, 2026
4a0e95c
Update build.gradle
ESTRIN217 Jan 27, 2026
42fe53b
Update build.gradle
ESTRIN217 Jan 27, 2026
c766573
Update build.gradle
ESTRIN217 Jan 27, 2026
8ec59dd
Update build.gradle
ESTRIN217 Jan 27, 2026
670afee
Downgrade Java compatibility from 21 to 17
ESTRIN217 Jan 29, 2026
5fac1ea
Downgrade Java version from 21 to 17
ESTRIN217 Jan 29, 2026
41ed937
Downgrade Java version from 21 to 17
ESTRIN217 Jan 29, 2026
6770bbd
Downgrade Java compatibility to version 17
ESTRIN217 Jan 29, 2026
1aded56
Downgrade Java version compatibility to 17
ESTRIN217 Jan 29, 2026
9e7b85a
Downgrade Java source and target compatibility to 17
ESTRIN217 Jan 29, 2026
b5ec856
Update build.gradle
ESTRIN217 Jan 29, 2026
d007374
Downgrade Java source and target compatibility to 17
ESTRIN217 Jan 29, 2026
e0d19a2
Actualizar build.gradle
ESTRIN217 Jan 29, 2026
2f8819c
Actualizar build.gradle
ESTRIN217 Jan 29, 2026
1217fc4
Actualizar build.gradle
ESTRIN217 Jan 29, 2026
97bd226
Actualizar build.gradle
ESTRIN217 Jan 29, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 8 additions & 12 deletions .github/workflows/build-apk.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,28 +14,24 @@ jobs:
with:
access_token: ${{ github.token }}

- uses: actions/checkout@v2
- uses: actions/checkout@v3

- name: set up JDK 11
uses: actions/setup-java@v2
- name: set up JDK 17
uses: actions/setup-java@v5
with:
java-version: '11'
distribution: 'adopt'
java-version: '17'
distribution: 'temurin'
cache: gradle

- name: Grant execute permission for gradlew
run: chmod +x gradlew

- name: Build debug apk
uses: eskatos/gradle-command-action@v1
with:
arguments: assembleDebug
distributions-cache-enabled: true
dependencies-cache-enabled: true
configuration-cache-enabled: true
# override any org.gradle.java.home with the ACTION-provided JAVA_HOME
run: ./gradlew assembleDebug --no-daemon -Dorg.gradle.java.home="$JAVA_HOME"

- name: Upload debug apk
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v4
with:
name: apk-debug
path: app/build/outputs/apk/debug
44 changes: 44 additions & 0 deletions .github/workflows/gradle-publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# This workflow uses actions that are not certified by GitHub.
# They are provided by a third-party and are governed by
# separate terms of service, privacy policy, and support
# documentation.
# This workflow will build a package using Gradle and then publish it to GitHub packages when a release is created
# For more information see: https://github.com/actions/setup-java/blob/main/docs/advanced-usage.md#Publishing-using-gradle

name: Gradle Package

on:
release:
types: [created]

jobs:
build:

runs-on: ubuntu-latest
permissions:
contents: read
packages: write

steps:
- uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
server-id: github # Value of the distributionManagement/repository/id field of the pom.xml
settings-path: ${{ github.workspace }} # location for the settings.xml file

- name: Setup Gradle
uses: gradle/actions/setup-gradle@af1da67850ed9a4cedd57bfd976089dd991e2582 # v4.0.0

- name: Build with Gradle
run: ./gradlew build

# The USERNAME and TOKEN need to correspond to the credentials environment variables used in
# the publishing section of your build.gradle
- name: Publish to GitHub Packages
run: ./gradlew publish
env:
USERNAME: ${{ github.actor }}
TOKEN: ${{ secrets.GITHUB_TOKEN }}
66 changes: 66 additions & 0 deletions .github/workflows/gradle.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
# This workflow uses actions that are not certified by GitHub.
# They are provided by a third-party and are governed by
# separate terms of service, privacy policy, and support
# documentation.
# This workflow will build a Java project with Gradle and cache/restore any dependencies to improve the workflow execution time
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-java-with-gradle

name: Java CI with Gradle

on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]

jobs:
build:

runs-on: ubuntu-latest
permissions:
contents: read

steps:
- uses: actions/checkout@v4
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
java-version: '21'
distribution: 'temurin'

# Configura Gradle para un uso óptimo en GitHub Actions, incluyendo el almacenamiento en caché de las dependencias descargadas.
# Consulta: https://github.com/gradle/actions/blob/main/setup-gradle/README.md
- name: Setup Gradle
uses: gradle/actions/setup-gradle@af1da67850ed9a4cedd57bfd976089dd991e2582 # v4.0.0

- name: Build with Gradle Wrapper
run: ./gradlew build

# to run Gradle with a specified version.
#
# - name: Setup Gradle
# uses: gradle/actions/setup-gradle@af1da67850ed9a4cedd57bfd976089dd991e2582 # v4.0.0
# with:
# gradle-version: '8.9'
#
# - name: Build with Gradle 8.9
# run: gradle build

dependency-submission:

runs-on: ubuntu-latest
permissions:
contents: write

steps:
- uses: actions/checkout@v4
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
java-version: '21'
distribution: 'temurin'

# Generates and submits a dependency graph, enabling Dependabot Alerts for all project dependencies.
# See: https://github.com/gradle/actions/blob/main/dependency-submission/README.md
- name: Generate and submit dependency graph
uses: gradle/actions/dependency-submission@af1da67850ed9a4cedd57bfd976089dd991e2582 # v4.0.0
6 changes: 6 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"githubPullRequests.ignoredPullRequestBranches": [
"main"
],
"java.configuration.updateBuildConfiguration": "automatic"
}
233 changes: 233 additions & 0 deletions HERRAMIENTAS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,233 @@
# Herramientas de Desarrollo de CodeAssist

CodeAssist es un IDE completo para desarrollar apps Android directamente en dispositivos Android. Incluye todas las herramientas necesarias para desarrollo profesional.

## 📋 Tabla de Herramientas

| Herramienta | Módulo | Estado | Descripción |
|---|---|---|---|
| **Java Compiler** | `java-completion` | ✅ | Compilación de código Java con javac APIs |
| **Kotlin Compiler** | `kotlin-completion` | ✅ | Soporte completo Kotlin 2.1.0 |
| **Code Completion** | `completion-api` | ✅ | Autocompletado para Java y Kotlin |
| **Quick Fixes** | `kotlin-completion`, `java-completion` | ✅ | Imports automáticos, implementación de métodos |
| **Layout Preview** | `layout-preview` | ✅ | Preview de layouts XML en tiempo real (80%) |
| **Gradle Build** | `build-tools` | ✅ | Sistema de compilación completo |
| **R8/ProGuard** | `build-tools` | ✅ | Obfuscación y optimización de código |
| **Automatic Dep. Resolution** | `dependency-resolver` | ✅ | Resolución automática de dependencias |
| **Code Formatting** | `tools-api` | ✅ | Formateo de Java, Kotlin, XML, JSON |
| **Static Analysis (Lint)** | `linter-api` | ✅ | Análisis estático de código |
| **Performance Profiler** | `profiler` | ✅ | Monitoreo de memoria, CPU, FPS, battery |
| **Debugger** | `debugger-api` | ✅ | Debugging con breakpoints y step-by-step |
| **Layout Editor** | `layout-editor` | ✅ | Editor visual de layouts XML |
| **APK Inspector** | `tools-api` | ✅ | Análisis e inspección de APKs |
| **Code Templates** | `app/templates` | ✅ | 26 templates de producción |
| **Unit Testing** | `app` | ✅ | JUnit4, Mockito, Truth |
| **Instrumented Testing** | `app` | ✅ | Espresso, Robolectric |

## 🔧 APIs de Desarrollo

### debugger-api
```java
// Debugging avanzado
Debugger debugger = ...;
debugger.setBreakpoint("MainActivity.java", 42);
debugger.startDebug("com.example.app");

// Variables Inspector
VariableInspector inspector = debugger.getVariableInspector();
Object value = inspector.getValue("myVariable");
Map<String, Object> locals = inspector.getLocalVariables();

// Stack trace
List<StackFrame> frames = inspector.getStackTrace();
```

### profiler
```java
// Performance profiling
AppProfiler profiler = ...;
profiler.start();

long memoryMB = profiler.getMemoryUsageMB();
int cpuUsage = profiler.getCpuUsage();
float fps = profiler.getFPS();
int battery = profiler.getBatteryPercentage();

String report = profiler.getProfilingReport();
```

### linter-api
```java
// Análisis estático
CodeAnalyzer analyzer = ...;

List<LintIssue> issues = analyzer.analyzKotlin("File.kt", source);
for (LintIssue issue : issues) {
System.out.println(issue.getMessage());
System.out.println(issue.getSeverity());
System.out.println(Arrays.toString(issue.getSuggestions()));
}
```

### layout-editor
```java
// Editor visual de layouts
LayoutEditor editor = ...;
editor.loadLayout(xmlContent);

LayoutComponent root = editor.getRootComponent();
LayoutComponent button = editor.findComponentById("btn_submit");

button.setAttribute("android:text", "Click me!");
button.setAttribute("android:layout_width", "match_parent");

editor.addEditorListener(new LayoutEditorListener() {
@Override
public void onLayoutChanged(String newXml) {
// XML cambió
}
});

editor.save();
```

### tools-api
```java
// Code Formatting
CodeFormatter formatter = ...;
String formatted = formatter.formatKotlin(code);
String prettyXml = formatter.formatXML(xml);

// APK Inspector
APKInspector inspector = ...;
inspector.openAPK("/path/to/app.apk");

APKInfo info = inspector.getAPKInfo();
System.out.println(info.getPackageName());
System.out.println(info.getVersionName());

String[] permissions = inspector.getPermissions();
String[] activities = inspector.getActivities();

APKResource[] resources = inspector.getResources();
```

## 📦 Templates Disponibles (26)

### Activities
- ComposeActivityTemplate (Predeterminado)
- AppCompatActivityTemplate
- ComposeFragmentTemplate
- ActivityTemplate (Legacy)

### System Components
- ServiceTemplate
- BroadcastReceiverTemplate
- ContentProviderTemplate
- RecyclerViewAdapterTemplate

### Data & Persistence
- RoomEntityTemplate
- RoomDaoTemplate
- RepositoryTemplate
- ViewModelTemplate

### Networking
- RetrofitServiceTemplate

### Advanced Kotlin
- DataClassTemplate
- ComposeNavigationTemplate
- PagingSourceTemplate
- CoroutineActivityTemplate

### Testing (4)
- UnitTestTemplate (JUnit4)
- InstrumentedTestTemplate (Espresso)
- LiveDataTestTemplate
- MockitoTestTemplate

## 🎯 Características Técnicas

### Stack Moderno
- ✅ **Kotlin** 2.1.0 con Compose
- ✅ **Jetpack Compose** 1.7.0 (UI moderna)
- ✅ **Material Design 3** 1.2.1
- ✅ **Android Gradle Plugin** 9.0.0
- ✅ **Gradle** 9.3
- ✅ **Java 21** (JDK 21)

### Librerías
- AndroidX Core 1.13.1
- Coroutines 1.8.0
- Lifecycle 2.8.1
- Room Database
- Retrofit 2
- Glide 4.16.0
- Gson 2.10.1

### Testing Framework
- JUnit 4.13.2
- Espresso 3.5.1
- Robolectric 4.12.1
- Mockito 5.7.0
- Truth 1.1.3

## 📊 Estadísticas del Proyecto

```
Módulos: 60+
Templates: 26
Herramientas: 14+
Archivos: 1000+
Líneas de código: 500,000+
Lenguajes: Java, Kotlin, Gradle
Versiones actualizadas: 100+ dependencias
```

## 🚀 Uso

### Compilación
```bash
./gradlew build
./gradlew assembleDebug # APK
./gradlew bundleRelease # AAB
```

### Testing
```bash
./gradlew test # Unit tests
./gradlew connectedAndroidTest # Instrumented tests
```

### Análisis
```bash
./gradlew lint
./gradlew detektMain
```

## 📝 Integración en Aplicaciones

Para usar cualquier herramienta en tu app:

```gradle
dependencies {
implementation project(':debugger-api')
implementation project(':profiler')
implementation project(':linter-api')
implementation project(':layout-editor')
implementation project(':tools-api')
}
```

## 🔗 Referencias

- [Android Developer Guide](https://developer.android.com/)
- [Kotlin Documentation](https://kotlinlang.org/docs/)
- [Jetpack Compose](https://developer.android.com/compose)
- [Android Architecture Components](https://developer.android.com/topic/libraries/architecture)

---

**Última actualización:** Enero 2026
**Versión:** CodeAssist 0.3.0 ALPHA
Loading