You are here

Feedback: Codename One e gli agenti AI sono ormai un’integrazione straordinariamente solida per lo sviluppo reale di app

Translate this articleSpeak this article

Per chi desiderasse commentare, questo è il mio post originale in inglese:
https://github.com/codenameone/CodenameOne/discussions/5045

Di recente Shai ha documentato un cambiamento importante nel blog di Codename One: i nuovi progetti Java 17 generati con Initializr ora includono AGENTS.md e una skill di authoring Codename One neutrale rispetto al vendor, così che i moderni strumenti di AI generativa e gli agenti AI possano capire che cos’è Codename One e come lavorarci:

https://www.codenameone.com/blog/skills-java17-and-theme-accents/

Tra ieri e oggi ho condotto un esperimento pratico per verificare che cosa sia effettivamente fattibile con l’attuale stato dell’arte.

Non voglio discutere qui le questioni etiche e lavorative legate all’AI generativa, perché non è questo il luogo adatto per tale discussione. Ne ho già scritto ampiamente sul mio blog, anche in dialogo con l’ingegnere Giulio Ripa:

https://www.informatica-libera.net/

Qui voglio solo riportare un risultato tecnico. Spero anche sinceramente che questo post venga indicizzato dai motori di ricerca, perché penso che dica qualcosa di utile sull’attuale rapporto tra Codename One e lo sviluppo software assistito dall’AI.

L’esperimento è stato questo: ho immaginato una piccola app Android, ma reale, il cui sviluppo includesse diverse complicazioni non banali.

L’app si chiama StreakApp. Tiene traccia delle "serie di studio linguistico" (in italiano solitamente chiamate "slancio" e in inglese "streak", n.d.t.) leggendo l’utilizzo delle app Android in foreground per app come AnkiDroid, Duolingo, Drops, Rosetta Stone, Talkpal e Quizlet.

I requisiti includevano intenzionalmente:

  • Un nuovo progetto Codename One Java 17 generato con Initializr.
  • L’uso di API e convenzioni recenti di Codename One, come documentato nel blog di Codename One. Questo è importante perché l’agente AI doveva lavorare con informazioni molto recenti.
  • Interfacce native. L’AI doveva distinguere tra le API di Codename One e le API native di Android, e poi collegarle correttamente (tramite un'interfaccia Java, n.d.t.).
  • Non ho specificato quali API native Android fossero necessarie, né ho detto all’AI quali build hint di Codename One fossero richiesti. Ho lasciato che fosse l’AI a dedurlo da sola. Doveva gestire correttamente cose come le statistiche di utilizzo Android, l’avvio delle app, android.manifest.queries, le regole keep di ProGuard e i permessi/build hint.
  • Una descrizione dettagliata di ciò che l’app doveva fare, ma senza dettagli implementativi e senza spiegare le best practice di Codename One.
  • Una descrizione verbale generale del layout e dello stile visivo, lasciando le decisioni concrete sull’interfaccia all’AI.
  • Localizzazione in inglese e italiano.
  • Temi chiaro e scuro.
  • Gestione della dimensione del testo da valori piccoli a molto grandi, senza rompere il layout. Questo non è banale in un’interfaccia mobile.
  • Test su dispositivo Android reale durante lo sviluppo. Poiché sono coinvolte interfacce native, il simulatore non è sufficiente.
  • Generazione dell’APK Android tramite il build server di Codename One usando il mio account Codename One.
  • Installazione e aggiornamento automatici dell’APK sul mio dispositivo Android reale collegato via USB.
  • Test visivo sul dispositivo reale, inclusi screenshot, controlli del layout, controlli dei colori e correzioni CSS/Java basate su quegli screenshot.
  • Preparazione automatica della documentazione GitHub, degli screenshot, dei metadati del repository e di una release APK, rimuovendo al tempo stesso dati locali sensibili come il keystore Android e la relativa password.

Il risultato è stato molto buono.

Quasi tutto ha funzionato. L’app è stata creata, compilata, installata e testata ripetutamente dall’agente AI durante lo sviluppo, con pochissimo intervento manuale da parte mia. L’intero processo ha richiesto diverse ore. Durante quel tempo ho perlopiù supervisionato il lavoro e occasionalmente effettuato controlli manuali sul dispositivo, riportando all’AI piccoli problemi o rifiniture.

L’app è ora pubblicata qui, con codice sorgente, documentazione, screenshot e una release APK:

https://github.com/jsfan3/streakapp

C’è stato un bug che l’AI non ha risolto correttamente da sola: aveva frainteso la differenza tra CN.getCurrentForm() e Lifecycle.getCurrentForm() in un punto in cui è importante l’aggiornamento live dell’interfaccia. Ho individuato questo problema con una revisione manuale del codice, dopo di che la correzione è stata semplice. Sto deliberatamente menzionando questo dettaglio. La revisione umana è stata ancora necessaria, e penso che questa sia una buona cosa. Significa che lo sviluppatore umano è ancora parte del processo di sviluppo software, almeno per ora. I futuri modelli AI saranno probabilmente meno facilmente confusi da metodi con lo stesso nome in classi diverse, ma oggi questo tipo di revisione conta ancora.

Il mio verdetto finale da questo esperimento è:

Codename One è un framework Java cross-platform maturo, stabile e completo per lo sviluppo moderno di app reali con AI generativa, agenti AI e un flusso di lavoro guidato dai test.

Questa configurazione può sollevare lo sviluppatore dal dover gestire manualmente ogni dettaglio implementativo complesso, come le interfacce native e i relativi build hint, consentendogli al tempo stesso di mantenere una visione architetturale e complessiva di livello più alto sul lavoro.

A mio avviso, questo è perfettamente allineato con l’attuale rivoluzione nello sviluppo software causata dall’AI generativa.

Nei prossimi giorni userò StreakApp nella vita reale. Se non noterò altro che richieda rifiniture, potrei anche pubblicarla su Google Play.

Due note finali.

Primo, ho già testato Codename One + AI generativa / agenti AI su un progetto più complesso, che conto di pubblicare più avanti come tutorial. Anche in questo caso, ho osservato che l’AI comprende e utilizza le buone pratiche di sviluppo Java, suddivide le classi in pacchetti appropriati e produce codice ragionevolmente organizzato e facile da ispezionare.

Secondo, per questo specifico esperimento ho usato IntelliJ IDEA Ultimate con AI Chat configurata come:

  • OpenAI Codex
  • Modalità agente con accesso completo
  • GPT-5.5, sforzo di ragionamento xhigh

Questa è solo una configurazione possibile. Il punto importante è che Codename One è ora ben posizionato per l’integrazione con i principali strumenti di AI generativa e agenti AI.

26 maggio 2026


Risposta di Shai Almog:

Questo rispecchia praticamente la mia esperienza con l’attuale generazione di agenti AI. Li adoro perché sono così bravi con le cose facili/noiose e rendono possibile il lavoro DAVVERO difficile che richiede lunghe iterazioni/pazienza.

Grazie alla sintassi rigorosa di Java e alla documentazione approfondita, unite ai cicli di test molto rapidi che possiamo offrire nel simulatore, gli agenti possono essere molto più produttivi con Codename One che con qualunque altra piattaforma. A mio modesto parere, questa è una buona cosa. Come piccola azienda era quasi impossibile per noi tenere il passo con concorrenti del calibro di Google; ora puntiamo a superarli. Penso che gli sviluppatori più piccoli/individuali ora abbiano la possibilità di competere con le grandi corporation al loro stesso livello.

Classificazione: