﻿{"id":4621,"date":"2024-06-11T00:00:00","date_gmt":"2024-06-11T00:00:00","guid":{"rendered":"https:\/\/estatic-infotech.com\/blog\/post\/alla-scoperta-di-kotlin-2-0-quali-sono-le-novita-piu-interessanti\/"},"modified":"2024-06-11T00:00:00","modified_gmt":"2024-06-11T00:00:00","slug":"alla-scoperta-di-kotlin-2-0-quali-sono-le-novita-piu-interessanti","status":"publish","type":"post","link":"https:\/\/estatic-infotech.com\/it\/blog\/post\/alla-scoperta-di-kotlin-2-0-quali-sono-le-novita-piu-interessanti\/","title":{"rendered":"Alla scoperta di Kotlin 2.0: quali sono le novit\u00e0 pi\u00f9 interessanti?"},"content":{"rendered":"<p>Vi presentiamo Kotlin 2.0, l&#8217;ultimo aggiornamento nella storia di uno dei linguaggi di programmazione pi\u00f9 popolari per lo sviluppo software. Ad ogni nuova versione, Kotlin spinge i confini dello sviluppo contemporaneo, offrendo ai programmatori una combinazione di sicurezza, espressivit\u00e0 e concisione. <\/p>\n<p><img loading=\"lazy\" decoding=\"async\" style=\"display: block; margin-left: auto; margin-right: auto;\" src=\"\/Posts\/files\/over-80000-companies-worldwide-use-kotlin_638533395764516749.webp\" alt=\"oltre 80.000 aziende in tutto il mondo utilizzano kotlin.webp\" width=\"1027\" height=\"250\" \/><\/p>\n<p> In questo articolo esploriamo le funzionalit\u00e0 e i miglioramenti all&#8217;avanguardia di Kotlin 2.0, che ha il potenziale di trasformare completamente il modo in cui gli sviluppatori creano applicazioni. Scopriamo le novit\u00e0 pi\u00f9 interessanti della sua versione pi\u00f9 recente, dai concetti di sintassi avanzati al solido supporto degli strumenti.<\/p>\n<h2> Indice dei contenuti<\/h2>\n<ul>\n<li> <a href=\"#whats-new-in-kotlin-2.0\">Quali sono le novit\u00e0 di Kotlin 2.0?<\/a><\/li>\n<ol>\n<li> <a href=\"#ide-support\">Supporto IDE<\/a><\/li>\n<li> <a href=\"#seamless-multiplatform-integration\">Integrazione multipiattaforma senza interruzioni<\/a><\/li>\n<li> <a href=\"#new-k2-mode\">Nuova modalit\u00e0 K2<\/a><\/li>\n<li> <a href=\"#improved-compilation-speed\">Velocit\u00e0 di compilazione migliorata<\/a><\/li>\n<li> <a href=\"#complier-plugins-support\">Supporto per i plugin di compilazione<\/a><\/li>\n<li> <a href=\"#kotlin-jvm\">Kotlin\/JVM<\/a><\/li>\n<li> <a href=\"#kotlin-native\">Kotlin\/Native<\/a><\/li>\n<li> <a href=\"#kotlin-wasm\">Kotlin\/Wasm<\/a><\/li>\n<li> <a href=\"#kotlin-js\">Kotlin\/JS<\/a><\/li>\n<li> <a href=\"#gradle-improvements\">Miglioramenti di Gradle<\/a><\/li>\n<li> <a href=\"#standard-library\">Biblioteca standard<\/a><\/li>\n<\/ol>\n<li> <a href=\"#conclusion\">Conclusione<\/a><\/li>\n<\/ul>\n<h2 id=\"whats-new-in-kotlin-2.0\"> Quali sono le novit\u00e0 di Kotlin 2.0?<\/h2>\n<p> Una nuova modalit\u00e0 di compilazione K2, un supporto multipiattaforma migliorato, una compilazione pi\u00f9 veloce e diverse modifiche per Kotlin\/JVM, Kotlin\/Native, Kotlin\/Wasm e Kotlin\/JS sono solo alcune delle interessanti novit\u00e0 introdotte dall&#8217;ultima versione. Per accelerare ulteriormente il processo di sviluppo, l&#8217;integrazione con il sistema di build Gradle \u00e8 stata ottimizzata e la libreria standard ha subito notevoli miglioramenti. <\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"\/Posts\/files\/everything-about-kotlin-2-0_638533395765690372.webp\" alt=\"tutto-su-kotlin-2-0.webp\" width=\"1027\" height=\"250\" \/><\/p>\n<h3 id=\"ide-support\"> Supporto IDE<\/h3>\n<p> I plugin che supportano Kotlin 2.0.0 sono inclusi nelle versioni pi\u00f9 recenti di Android Studio e IntelliJ IDEA. Non \u00e8 necessario aggiornare il plugin nel tuo IDE. \u00c8 sufficiente modificare gli script di build per integrare Kotlin 2.0.0.<\/p>\n<h3 id=\"seamless-multiplatform-integration\"> Integrazione multipiattaforma senza interruzioni<\/h3>\n<p> Una delle sue caratteristiche pi\u00f9 notevoli \u00e8 il supporto migliorato per i progetti multipiattaforma. Con questa versione, la condivisione del codice tra piattaforme \u00e8 ora pi\u00f9 semplice che mai, riducendo le duplicazioni e garantendo la coerenza tra tutte le applicazioni. Indipendentemente dal tuo obiettivo di sviluppo (JVM, nativo, JavaScript o la piattaforma WebAssembly (Wasm) recentemente rilasciata), Kotlin 2.0 offre gli strumenti e le librerie necessari per facilitare uno sviluppo multipiattaforma efficace.<\/p>\n<h3 id=\"new-k2-mode\"> Nuova modalit\u00e0 K2<\/h3>\n<p> Una delle caratteristiche principali di Kotlin 2.0 \u00e8 la nuova modalit\u00e0 di compilazione K2, che offre un processo di compilazione pi\u00f9 affidabile ed efficiente. L&#8217;obiettivo \u00e8 migliorare la velocit\u00e0 complessiva del compilatore, riducendo i tempi di compilazione e fornendo una diagnostica degli errori pi\u00f9 accurata. Riducendo i tempi di attesa per il completamento delle compilazioni e semplificando l&#8217;individuazione e la risoluzione dei problemi, questa modalit\u00e0 mira a migliorare l&#8217;esperienza di Kotlin per gli sviluppatori Java.<\/p>\n<p> I progressi non si limitano alla velocit\u00e0 di compilazione. La modalit\u00e0 K2 di IntelliJ IDEA, attualmente in fase Alpha, sta producendo risultati incoraggianti. Sul codice sorgente di IntelliJ IDEA Ultimate, offre una evidenziazione del codice circa 1,8 volte pi\u00f9 veloce e un completamento automatico 1,5 volte pi\u00f9 rapido, e la sua community \u00e8 determinata a migliorarla ulteriormente. In futuro, si prevede che Kotlin sar\u00e0 pi\u00f9 stabile, offrendo un completamento e un&#8217;evidenziazione del codice pi\u00f9 veloci.<\/p>\n<p> <a href=\"https:\/\/www.estatic-infotech.com\/contact-us\"><img loading=\"lazy\" decoding=\"async\" style=\"display: block; margin-left: auto; margin-right: auto;\" src=\"\/Posts\/files\/hire-our-skilled-kotlin-developers_638533395765977307.webp\" alt=\"assumi-i-nostri-sviluppatori-kotlin-qualificati.webp\" width=\"1027\" height=\"163\" \/><\/a><\/p>\n<h3 id=\"improved-compilation-speed\"> Velocit\u00e0 di compilazione migliorata<\/h3>\n<p> Kotlin 2.0 offre significativi miglioramenti nelle prestazioni di compilazione, consentendo agli sviluppatori di lavorare in modo pi\u00f9 produttivo e di iterare pi\u00f9 rapidamente. I tempi di compilazione si riducono e il processo di sviluppo risulta pi\u00f9 efficace grazie all&#8217;introduzione del nuovo compilatore K2 e ad altri miglioramenti in termini di efficienza, soprattutto per i progetti di grandi dimensioni.<\/p>\n<h3 id=\"complier-plugins-support\"> Supporto per i plugin di compilazione<\/h3>\n<p> Grazie al supporto esteso per i plugin del compilatore, gli sviluppatori possono ora creare plugin personalizzati per ampliare le funzionalit\u00e0 del compilatore. Ci\u00f2 consente una maggiore flessibilit\u00e0 e la possibilit\u00e0 di personalizzare il processo di compilazione per adattarlo ai requisiti specifici di ciascun progetto.<\/p>\n<p> I seguenti plugin del compilatore Kotlin sono attualmente supportati dal compilatore K2:<\/p>\n<ul>\n<li> tutto aperto<\/li>\n<li> Fu atomico<\/li>\n<li> jvm-abi-gen<\/li>\n<li> js-plain-objects<\/li>\n<li> capitano<\/li>\n<li> Lombok<\/li>\n<li> senza argomenti<\/li>\n<li> Pacchiare<\/li>\n<li> SAM con ricevitore<\/li>\n<li> serializzazione<\/li>\n<li> Assertore di potere<\/li>\n<\/ul>\n<p> Inoltre, il compilatore Kotlin K2 supporta:<\/p>\n<ul>\n<li> Il plugin del compilatore Jetpack Compose, versione 2.0.0, \u00e8 stato spostato nel repository Kotlin.<\/li>\n<li> Il plugin Kotlin Symbol Processing (KSP) \u00e8 disponibile dalla versione KSP2.<\/li>\n<\/ul>\n<h3 id=\"kotlin-jvm\"> Kotlin\/JVM<\/h3>\n<p> Questa versione introduce le seguenti modifiche:<\/p>\n<p> <strong>Generazione di funzioni lambda tramite invokedynamic<\/strong><\/p>\n<p> Nell&#8217;ultima versione \u00e8 stato introdotto un nuovo metodo predefinito per la generazione dinamica delle funzioni lambda. Rispetto alla generazione convenzionale di classi anonime, questa modifica riduce le dimensioni dei file binari delle applicazioni.<\/p>\n<p> Fin dalla sua prima versione, Kotlin ha generato le lambda come classi anonime. Tuttavia, a partire da Kotlin 1.5.0, l&#8217;opzione del compilatore -Xlambdas=indy ha reso possibile la generazione dinamica. Il metodo predefinito per la creazione di lambda \u00e8 ora invokedynamic. Utilizzando questa tecnica, le applicazioni possono sfruttare i miglioramenti di velocit\u00e0 attuali e futuri della JVM, producendo al contempo binari pi\u00f9 leggeri e allineando Kotlin alle ottimizzazioni della JVM.<\/p>\n<p> Allo stato attuale, presenta tre svantaggi rispetto alla compilazione lambda standard:<\/p>\n<ul>\n<li> Quando compilata in InvokeDynamic, una lambda non pu\u00f2 essere serializzata.<\/li>\n<li> Le funzioni lambda create da invokedynamic non sono supportate dall&#8217;API sperimentale reflect().<\/li>\n<li> Quando si chiama .toString() su una lambda di questo tipo, viene prodotta una rappresentazione in stringa meno leggibile:<\/li>\n<\/ul>\n<pre class=\"language-javascript\"> <code>fun main() { println({}) \/\/ With Kotlin 1.9.24 and reflection, returns \/\/ () -> kotlin.Unit \/\/ With Kotlin 2.0.0, returns \/\/ FileKt$$Lambda$13\/0x00007f88a0004608@506e1b77 }<\/code><\/pre>\n<p> Se desideri continuare a creare funzioni lambda nel modo tradizionale, hai due opzioni:<\/p>\n<ul>\n<li> Utilizza @JvmSerializableLambda per annotare le lambda.<\/li>\n<li> Per la tecnica storica di generazione di tutte le lambda in un modulo, utilizzare l&#8217;opzione del compilatore -Xlambdas=class.<\/li>\n<\/ul>\n<p> <strong>La libreria kotlinx-metadata-jvm \u00e8 ora stabile<\/strong><\/p>\n<p> La libreria kotlinx-metadata-jvm \u00e8 ora stabile nell&#8217;ultimo aggiornamento. Ora \u00e8 possibile individuare la libreria come kotlin-metadata-jvm poich\u00e9 utilizza il suo pacchetto e le sue coordinate.<\/p>\n<p> La libreria kotlinx-metadata-jvm era stata precedentemente pubblicata con una versione e un metodo di pubblicazione diversi. Con le stesse garanzie di compatibilit\u00e0 con le versioni precedenti, ora produrr\u00e0 e rilascer\u00e0 le modifiche di kotlin-metadata-jvm come parte del ciclo di rilascio di Kotlin.<\/p>\n<p> La libreria kotlin-metadata-jvm fornisce un&#8217;API per leggere e modificare i metadati dei file binari prodotti dal compilatore Kotlin\/JVM.<\/p>\n<h3 id=\"kotlin-native\"> Kotlin\/Native<\/h3>\n<p> La versione 2.0 di Kotlin\/Native introduce miglioramenti significativi, come strumenti pi\u00f9 avanzati, una migliore interoperabilit\u00e0 con C e Objective-C e prestazioni ottimizzate. Questi sviluppi facilitano la creazione di applicazioni native ad alte prestazioni su diverse piattaforme, inclusi sistemi embedded e iOS.<\/p>\n<p> Questa versione introduce le seguenti modifiche:<\/p>\n<ul>\n<li> <strong>Monitoraggio delle prestazioni del garbage collector tramite indicatori<\/strong> :<\/li>\n<\/ul>\n<p> Un notevole miglioramento \u00e8 reso possibile dai segnali di controllo, che consentono agli sviluppatori di monitorare in modo pi\u00f9 efficiente le prestazioni della raccolta dei rifiuti (GC). Questa funzionalit\u00e0 contribuisce a ottimizzare l&#8217;utilizzo delle risorse offrendo preziose informazioni sulla gestione della memoria.<\/p>\n<ul>\n<li> <strong>Risoluzione dei conflitti con metodi Objective-C<\/strong><\/li>\n<\/ul>\n<p> In questa versione, Kotlin risolve i conflitti con i metodi di Objective-C, facilitando l&#8217;interoperabilit\u00e0 tra codebase Kotlin e Objective-C. Ora che la funzionalit\u00e0 pu\u00f2 essere facilmente integrata in applicazioni con componenti Objective-C preesistenti, gli sviluppatori possono migliorare la compatibilit\u00e0 multipiattaforma e snellire il processo di sviluppo.<\/p>\n<ul>\n<li> <strong>Modificato il livello di log per gli argomenti del compilatore in Kotlin\/Native<\/strong><\/li>\n<\/ul>\n<p> La versione X di Kotlin\/Native introduce miglioramenti alla registrazione dei parametri del compilatore, offrendo agli utenti maggiore controllo e trasparenza sul processo di compilazione. Gli sviluppatori possono personalizzare la propria esperienza di debug per soddisfare i requisiti del progetto modificando i livelli di log, migliorando cos\u00ec la produttivit\u00e0 e le capacit\u00e0 di risoluzione dei problemi.<\/p>\n<ul>\n<li> <strong>Sono state aggiunte esplicitamente le dipendenze della libreria standard e della piattaforma a Kotlin\/Native<\/strong><\/li>\n<\/ul>\n<p> Ora che Kotlin\/Native \u00e8 stato aggiornato, le dipendenze standard della libreria e della piattaforma sono incluse esplicitamente, garantendo una copertura completa di tutte le parti necessarie per lo sviluppo di applicazioni native. Questo aggiornamento semplifica la gestione delle dipendenze e l&#8217;integrazione di Kotlin\/Native in diversi contesti di progetto.<\/p>\n<ul>\n<li> <strong>Errore nelle attivit\u00e0 nella cache di configurazione di Gradle<\/strong><\/li>\n<\/ul>\n<p> La versione X di Kotlin risolve i problemi relativi alle attivit\u00e0 che si presentavano durante la memorizzazione nella cache della configurazione di Gradle, garantendo maggiore stabilit\u00e0 e affidabilit\u00e0 del processo di compilazione. Quando si lavora con progetti Kotlin in Gradle, gli sviluppatori possono beneficiare di compilazioni pi\u00f9 produttive e di una maggiore efficienza grazie alla risoluzione di questi problemi.<\/p>\n<p> <a href=\"https:\/\/www.estatic-infotech.com\/blog\/post\/kotlin-vs-java-which-one-is-better-for-app-development\"><img loading=\"lazy\" decoding=\"async\" style=\"display: block; margin-left: auto; margin-right: auto;\" src=\"\/Posts\/files\/kotlin-vs-java_638533395766493155.webp\" alt=\"kotlin-vs-java.webp\" width=\"1027\" height=\"163\" \/><\/a><\/p>\n<h3 id=\"kotlin-wasm\"> Kotlin\/Wasm<\/h3>\n<p> La versione 2.0.0 di Kotlin\/Wasm (WebAssembly) introduce diverse nuove funzionalit\u00e0 e miglioramenti volti a ottimizzare l&#8217;interoperabilit\u00e0 e la velocit\u00e0 di JavaScript. Con questa release, gli sviluppatori che desiderano creare applicazioni web ad alte prestazioni troveranno in Kotlin\/Wasm uno strumento ancora pi\u00f9 potente. Ecco le novit\u00e0:<\/p>\n<p> <strong>Build di produzione ottimizzate per impostazione predefinita tramite Binaryen<\/strong><\/p>\n<p> Binaryen viene ora utilizzato di default da Kotlin\/Wasm per ottimizzare le build di produzione. Senza richiedere impostazioni aggiuntive, Binaryen ottimizza il codice WebAssembly (Wasm) per rendere le applicazioni pi\u00f9 veloci ed efficienti.<\/p>\n<p> <strong>Supporto per l&#8217;esportazione denominata<\/strong><\/p>\n<p> Nell&#8217;ultima versione \u00e8 ora possibile utilizzare le esportazioni con nome nei moduli Wasm. Ci\u00f2 semplifica la gestione e l&#8217;integrazione dei moduli Kotlin\/Wasm nei progetti JavaScript, consentendo esportazioni pi\u00f9 chiare e leggibili.<\/p>\n<p> <strong>Supporto per tipi primitivi senza segno nelle funzioni con @JsExport<\/strong><\/p>\n<p> Il supporto per i tipi primitivi senza segno nelle funzioni contrassegnate con @JsExport \u00e8 esteso da Kotlin\/Wasm. Una migliore compatibilit\u00e0 con JavaScript \u00e8 garantita da questa funzionalit\u00e0, che consente ai programmatori di utilizzare tipi primitivi senza segno Gestire con facilit\u00e0 numeri interi e altri tipi primitivi in progetti multilingue.<\/p>\n<p> <strong>Generazione di file di dichiarazione TypeScript in Kotlin\/Wasm<\/strong><\/p>\n<p> La possibilit\u00e0 di creare file di dichiarazione TypeScript (.d.ts) direttamente dal codice Kotlin\/Wasm \u00e8 una delle caratteristiche pi\u00f9 notevoli di questo strumento. Offrendo funzionalit\u00e0 di sicurezza dei tipi e completamento automatico negli editor compatibili con TypeScript, si ottiene una migliore integrazione con i progetti TypeScript.<\/p>\n<p> Tutte le funzioni di primo livello designate con @JsExport vengono raccolte dal compilatore Kotlin\/Wasm, che crea automaticamente le definizioni TypeScript nel file adts.<\/p>\n<p> Aggiungi la funzione generateTypeScriptDefinitions() al blocco wasmJs {} del tuo file build.gradle (kts) per generare le definizioni TypeScript:<\/p>\n<pre class=\"language-javascript\"> <code>kotlin { wasmJs { binaries.executable() browser { } generateTypeScriptDefinitions() } }<\/code><\/pre>\n<p> <strong>Supporto per la memorizzazione nella cache delle eccezioni JavaScript<\/strong><\/p>\n<p> Ora che Kotlin\/Wasm \u00e8 in grado di intercettare le eccezioni JavaScript, i tuoi moduli possono gestire gli errori in modo pi\u00f9 efficace. Questo miglioramento garantisce che gli errori provenienti dal codice JavaScript possano essere gestiti e corretti correttamente dalle tue applicazioni.<\/p>\n<p> <strong>Nuova proposta di gestione delle eccezioni Supporto nell&#8217;ambito dell&#8217;opzione<\/strong><\/p>\n<p> Il supporto per una nuova proposta di gestione delle eccezioni \u00e8 incluso nell&#8217;ultima versione ed \u00e8 abilitabile tramite un&#8217;opzione dedicata. Questa funzionalit\u00e0 migliora la gestione delle eccezioni da parte di Wasm, offrendo un metodo pi\u00f9 standardizzato ed efficace per affrontare gli errori.<\/p>\n<p> <strong>La funzione withWasm() \u00e8 stata suddivisa in varianti JS e WASI.<\/strong><\/p>\n<p> Grazie alla separazione della funzione withWasm() nelle versioni JS e WASI, ora \u00e8 possibile avere maggiore flessibilit\u00e0 e controllo sui moduli. Questa suddivisione consente agli sviluppatori di selezionare il contesto pi\u00f9 adatto alle proprie applicazioni, indipendentemente dal fatto che vengano eseguite in un contesto WebAssembly System Interface (WASI) o in un ambiente JavaScript.<\/p>\n<h3 id=\"kotlin-js\"> Kotlin\/JS<\/h3>\n<p> Questa versione supporta pi\u00f9 funzionalit\u00e0 dello standard ES2015 e aggiunge la compilazione JavaScript moderna a Kotlin, tra le altre modifiche.<\/p>\n<p> <strong>Nuovo obiettivo di compilazione<\/strong><\/p>\n<p> Nella versione 2.0 di Kotlin\/JS, aggiungiamo ES2015 come nuovo target di compilazione. Si tratta di un nuovo metodo che consente di abilitare simultaneamente tutte le funzionalit\u00e0 di ES2015 supportate da Kotlin.<\/p>\n<p> Ecco come configurarlo nel file build.gradle (.kts):<\/p>\n<pre class=\"language-javascript\"> <code>kotlin { js { compilerOptions { target.set(\"es2015\") } } }<\/code><\/pre>\n<p> <strong>Sospendi le funzioni come generatori ES2015<\/strong><\/p>\n<p> Con questa versione, i generatori ES2015 utilizzati per compilare le funzioni di sospensione ora dispongono di un supporto sperimentale.<\/p>\n<p> Se si utilizzano i generatori al posto delle macchine a stati, la dimensione finale del pacchetto del progetto dovrebbe aumentare. Ad esempio, utilizzando i generatori di ES2015, il team di JetBrains \u00e8 riuscito a ridurre la dimensione del pacchetto del suo progetto Space del 20%.<\/p>\n<ul>\n<li> Passaggio di argomenti alla funzione principale<\/li>\n<li> Compilazione file per file per progetti Kotlin\/JS<\/li>\n<li> Migliore interoperabilit\u00e0 delle collezioni<\/li>\n<\/ul>\n<p> <strong>Supporto per createInstance()<\/strong><\/p>\n<p> A partire da Kotlin 2.0.0, \u00e8 possibile utilizzare la funzione createInstance() del target Kotlin\/JS. In precedenza, il suo utilizzo era limitato alla JVM.<\/p>\n<p> Per ottenere il riferimento di runtime a una classe Kotlin, utilizzare la funzione dell&#8217;interfaccia KClass che genera una nuova istanza della classe specificata.<\/p>\n<p> <strong>Supporto per il gestore di pacchetti npm<\/strong><\/p>\n<p> In precedenza, l&#8217;unico modo per scaricare e installare le dipendenze npm era tramite il plugin Multiplatform Gradle utilizzando Yarn come gestore di pacchetti. A partire da Kotlin 2.0.0, \u00e8 possibile passare a npm come gestore di pacchetti. Utilizzando npm, si elimina un ulteriore strumento dalla lista di configurazione.<\/p>\n<p> Il gestore di pacchetti predefinito \u00e8 ancora Yarn per garantire la compatibilit\u00e0 con le versioni precedenti. Nel file gradle.properties, imposta la seguente propriet\u00e0 per utilizzare npm come gestore di pacchetti:<\/p>\n<pre class=\"language-markup\"> <code>kotlin.js.yarn = false<\/code><\/pre>\n<p> <strong>Modifiche alle attivit\u00e0 di compilazione<\/strong><\/p>\n<p> Le stesse directory erano state precedentemente utilizzate sia dal job di compilazione webpack che da quello di distributeResources. Inoltre, il job di distribuzione specificava la directory dist come directory di output. Ci\u00f2 ha comportato la sovrapposizione degli output e un avviso di compilazione.<\/p>\n<p> A partire da Kotlin 2.0.0, applichiamo le seguenti modifiche:<\/p>\n<ul>\n<li> La cartella di destinazione per l&#8217;operazione webpack \u00e8 stata modificata.<\/li>\n<li> Il processo distributeResources viene eliminato.<\/li>\n<li> La cartella dist \u00e8 la destinazione dell&#8217;attivit\u00e0 di distribuzione, che ora ha il tipo Copia.<\/li>\n<\/ul>\n<p> <strong>Interruzione del supporto per i vecchi artefatti JAR di Kotlin\/JS.<\/strong><\/p>\n<p> A partire dalla versione 2.0, la distribuzione non include pi\u00f9 le risorse Kotlin\/JS legacy con estensione .jar. Gli artefatti legacy sono superflui per il compilatore IR che utilizza il formato klib e venivano utilizzati nel vecchio compilatore Kotlin\/JS, ormai obsoleto.<\/p>\n<h3 id=\"gradle-improvements\"> Miglioramenti di Gradle<\/h3>\n<p> Gradle dalla versione 6.8.3 alla 8.5 \u00e8 completamente compatibile con Kotlin 2.0. Fino alla versione pi\u00f9 recente, \u00e8 ancora possibile utilizzare le versioni di Gradle, ma in tal caso, tieni presente che alcune nuove funzionalit\u00e0 di Gradle potrebbero non funzionare o che potresti ricevere avvisi di deprecazione.<\/p>\n<p> Questa versione include i seguenti miglioramenti:<\/p>\n<ul>\n<li> Nuovo DSL di Gradle per le opzioni del compilatore nei progetti multipiattaforma<\/li>\n<li> Nuovo plugin Gradle per il compilatore Compose<\/li>\n<li> Aggiornamento delle versioni minime supportate<\/li>\n<li> Nuovo attributo per distinguere le librerie pubblicate su JVM e su Android.<\/li>\n<li> Gestione migliorata delle dipendenze Gradle per CInteropProcess in Kotlin\/Native<\/li>\n<li> Modifiche di visibilit\u00e0 in Gradle<\/li>\n<li> Nuova directory per i dati Kotlin nei progetti Gradle<\/li>\n<li> Compilatore Kotlin\/Native scaricato quando necessario<\/li>\n<li> Abbandonare i vecchi metodi di definizione delle opzioni del compilatore<\/li>\n<li> Incrementata la versione minima supportata da AGP<\/li>\n<li> Nuova propriet\u00e0 Gradle per provare l&#8217;ultima versione del linguaggio<\/li>\n<li> Nuovo formato di output JSON per i report di compilazione<\/li>\n<li> Le configurazioni di Kapt ereditano i processori di annotazione dalle super configurazioni<\/li>\n<li> Il plugin Kotlin Gradle non utilizza pi\u00f9 le convenzioni Gradle obsolete.<\/li>\n<\/ul>\n<h3 id=\"standard-library\"> Biblioteca standard<\/h3>\n<p> Con questa versione, la libreria standard diventa ancora pi\u00f9 stabile e un maggior numero di funzionalit\u00e0 diventano universali su tutte le piattaforme:<\/p>\n<ul>\n<li> Sostituzione stabile della funzione generica del valore della classe enum<\/li>\n<li> Interfaccia stabile con chiusura automatica.<\/li>\n<li> Propriet\u00e0 protetta comune AbstractMutableList.modCount<\/li>\n<li> Funzione protetta comune AbstractMutableList.removeRange<\/li>\n<li> Stringa comune.toCharArray(destinazione)<\/li>\n<\/ul>\n<h2 id=\"conclusion\"> Conclusione<\/h2>\n<p> Il rilascio di Kotlin 2.0 testimonia il continuo sviluppo del linguaggio e l&#8217;impegno costante nel fornire agli sviluppatori strumenti e funzionalit\u00e0 all&#8217;avanguardia. Con miglioramenti per JVM, Native, JavaScript e WebAssembly, tra le altre piattaforme, Kotlin 2.0.0 crea nuove opportunit\u00e0 per la creativit\u00e0 e lo sviluppo multipiattaforma. Con l&#8217;aggiunta della modalit\u00e0 di compilazione K2 e i miglioramenti al supporto middleware, alla velocit\u00e0 di compilazione e all&#8217;integrazione con Gradle, questa release segna una svolta importante per il progetto. Adottando l&#8217;ultima versione, i programmatori intraprendono un percorso infinitamente gratificante, alimentato dall&#8217;ingegno, dalla produttivit\u00e0 e dalle infinite possibilit\u00e0 intrinseche dello sviluppo software contemporaneo.<\/p>\n<p> Infine, vorremmo sottolineare che questa piattaforma offre una miriade di miglioramenti e funzionalit\u00e0 che la rendono uno strumento indispensabile per lo sviluppo software moderno. In qualit\u00e0 di agenzia leader <a href=\"https:\/\/www.estatic-infotech.com\/hire-kotlin-developer\" target=\"_blank\" rel=\"noopener\">nell&#8217;assunzione di sviluppatori di app Kotlin in India<\/a> , siamo entusiasti delle possibilit\u00e0 che questo aggiornamento apre, soprattutto per lo sviluppo di app Kotlin e per <a href=\"https:\/\/www.estatic-infotech.com\/services\/android-app-development-company\" target=\"_blank\" rel=\"noopener\">le agenzie di sviluppo di app Android<\/a> . Per gli sviluppatori Java che desiderano effettuare una transizione senza intoppi, questa versione offre strumenti e integrazioni robusti, rendendola una scelta eccellente per il vostro prossimo progetto. Che stiate creando soluzioni aziendali complesse o app mobile innovative, adottare questa versione pi\u00f9 recente vi consentir\u00e0 di realizzare applicazioni di alta qualit\u00e0, efficienti e scalabili.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Preparati a dare il via al tuo percorso di programmazione con la nostra entusiasmante esplorazione di Kotlin 2.0. Questo blog svela le innovazioni pi\u00f9 interessanti nello sviluppo software.<\/p>\n","protected":false},"author":2,"featured_media":775,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"content-type":"","footnotes":""},"categories":[17,3],"tags":[],"class_list":["post-4621","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-kotlin-development","category-mobile-app-development"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Alla scoperta di Kotlin 2.0: quali sono le novit\u00e0 pi\u00f9 interessanti? -<\/title>\n<meta name=\"description\" content=\"Alla scoperta di Kotlin 2.0: quali sono le novit\u00e0 pi\u00f9 interessanti?\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/estatic-infotech.com\/it\/blog\/post\/alla-scoperta-di-kotlin-2-0-quali-sono-le-novita-piu-interessanti\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Alla scoperta di Kotlin 2.0: quali sono le novit\u00e0 pi\u00f9 interessanti? -\" \/>\n<meta property=\"og:description\" content=\"Alla scoperta di Kotlin 2.0: quali sono le novit\u00e0 pi\u00f9 interessanti?\" \/>\n<meta property=\"og:url\" content=\"https:\/\/estatic-infotech.com\/it\/blog\/post\/alla-scoperta-di-kotlin-2-0-quali-sono-le-novita-piu-interessanti\/\" \/>\n<meta property=\"og:site_name\" content=\"Estatic Infotech\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/estaticinfotech\" \/>\n<meta property=\"article:published_time\" content=\"2024-06-11T00:00:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/estatic-infotech.com\/wp-content\/uploads\/2025\/09\/4ee82d48-7f75-4e1f-ba87-83154eb32554.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1027\" \/>\n\t<meta property=\"og:image:height\" content=\"579\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Mansi Senjaliya\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@Estaticinfotech\" \/>\n<meta name=\"twitter:site\" content=\"@Estaticinfotech\" \/>\n<meta name=\"twitter:label1\" content=\"Scritto da\" \/>\n\t<meta name=\"twitter:data1\" content=\"Mansi Senjaliya\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo di lettura stimato\" \/>\n\t<meta name=\"twitter:data2\" content=\"12 minuti\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/estatic-infotech.com\/it\/blog\/post\/alla-scoperta-di-kotlin-2-0-quali-sono-le-novita-piu-interessanti\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/estatic-infotech.com\/it\/blog\/post\/alla-scoperta-di-kotlin-2-0-quali-sono-le-novita-piu-interessanti\/\"},\"author\":{\"name\":\"Mansi Senjaliya\",\"@id\":\"https:\/\/estatic-infotech.com\/it\/#\/schema\/person\/de3ff274c0ab0e3b3828e0cf2f9232fd\"},\"headline\":\"Alla scoperta di Kotlin 2.0: quali sono le novit\u00e0 pi\u00f9 interessanti?\",\"datePublished\":\"2024-06-11T00:00:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/estatic-infotech.com\/it\/blog\/post\/alla-scoperta-di-kotlin-2-0-quali-sono-le-novita-piu-interessanti\/\"},\"wordCount\":2610,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/estatic-infotech.com\/it\/#organization\"},\"image\":{\"@id\":\"https:\/\/estatic-infotech.com\/it\/blog\/post\/alla-scoperta-di-kotlin-2-0-quali-sono-le-novita-piu-interessanti\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/estatic-infotech.com\/eipl-app\/uploads\/2025\/09\/4ee82d48-7f75-4e1f-ba87-83154eb32554.png\",\"articleSection\":[\"Kotlin Development\",\"Mobile App Development\"],\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/estatic-infotech.com\/it\/blog\/post\/alla-scoperta-di-kotlin-2-0-quali-sono-le-novita-piu-interessanti\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/estatic-infotech.com\/it\/blog\/post\/alla-scoperta-di-kotlin-2-0-quali-sono-le-novita-piu-interessanti\/\",\"url\":\"https:\/\/estatic-infotech.com\/it\/blog\/post\/alla-scoperta-di-kotlin-2-0-quali-sono-le-novita-piu-interessanti\/\",\"name\":\"Alla scoperta di Kotlin 2.0: quali sono le novit\u00e0 pi\u00f9 interessanti? -\",\"isPartOf\":{\"@id\":\"https:\/\/estatic-infotech.com\/it\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/estatic-infotech.com\/it\/blog\/post\/alla-scoperta-di-kotlin-2-0-quali-sono-le-novita-piu-interessanti\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/estatic-infotech.com\/it\/blog\/post\/alla-scoperta-di-kotlin-2-0-quali-sono-le-novita-piu-interessanti\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/estatic-infotech.com\/eipl-app\/uploads\/2025\/09\/4ee82d48-7f75-4e1f-ba87-83154eb32554.png\",\"datePublished\":\"2024-06-11T00:00:00+00:00\",\"description\":\"Alla scoperta di Kotlin 2.0: quali sono le novit\u00e0 pi\u00f9 interessanti?\",\"breadcrumb\":{\"@id\":\"https:\/\/estatic-infotech.com\/it\/blog\/post\/alla-scoperta-di-kotlin-2-0-quali-sono-le-novita-piu-interessanti\/#breadcrumb\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/estatic-infotech.com\/it\/blog\/post\/alla-scoperta-di-kotlin-2-0-quali-sono-le-novita-piu-interessanti\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/estatic-infotech.com\/it\/blog\/post\/alla-scoperta-di-kotlin-2-0-quali-sono-le-novita-piu-interessanti\/#primaryimage\",\"url\":\"https:\/\/estatic-infotech.com\/eipl-app\/uploads\/2025\/09\/4ee82d48-7f75-4e1f-ba87-83154eb32554.png\",\"contentUrl\":\"https:\/\/estatic-infotech.com\/eipl-app\/uploads\/2025\/09\/4ee82d48-7f75-4e1f-ba87-83154eb32554.png\",\"width\":1027,\"height\":579},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/estatic-infotech.com\/it\/blog\/post\/alla-scoperta-di-kotlin-2-0-quali-sono-le-novita-piu-interessanti\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/estatic-infotech.com\/it\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Alla scoperta di Kotlin 2.0: quali sono le novit\u00e0 pi\u00f9 interessanti?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/estatic-infotech.com\/it\/#website\",\"url\":\"https:\/\/estatic-infotech.com\/it\/\",\"name\":\"Estatic Infotech\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/estatic-infotech.com\/it\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/estatic-infotech.com\/it\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"it-IT\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/estatic-infotech.com\/it\/#organization\",\"name\":\"Estatic Infotech Pvt Ltd\",\"url\":\"https:\/\/estatic-infotech.com\/it\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/estatic-infotech.com\/it\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/estatic-infotech.com\/wp-content\/uploads\/2025\/09\/cropped-favicon.png\",\"contentUrl\":\"https:\/\/estatic-infotech.com\/wp-content\/uploads\/2025\/09\/cropped-favicon.png\",\"width\":512,\"height\":512,\"caption\":\"Estatic Infotech Pvt Ltd\"},\"image\":{\"@id\":\"https:\/\/estatic-infotech.com\/it\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/estaticinfotech\",\"https:\/\/x.com\/Estaticinfotech\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/estatic-infotech.com\/it\/#\/schema\/person\/de3ff274c0ab0e3b3828e0cf2f9232fd\",\"name\":\"Mansi Senjaliya\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/4ae94401f8a8cd09e37fcea485422949837ec0f03c2846e7302fd41f3ff56a26?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/4ae94401f8a8cd09e37fcea485422949837ec0f03c2846e7302fd41f3ff56a26?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/4ae94401f8a8cd09e37fcea485422949837ec0f03c2846e7302fd41f3ff56a26?s=96&d=mm&r=g\",\"caption\":\"Mansi Senjaliya\"},\"url\":\"https:\/\/estatic-infotech.com\/it\/author\/mansi-senjaliya\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Alla scoperta di Kotlin 2.0: quali sono le novit\u00e0 pi\u00f9 interessanti? -","description":"Alla scoperta di Kotlin 2.0: quali sono le novit\u00e0 pi\u00f9 interessanti?","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/estatic-infotech.com\/it\/blog\/post\/alla-scoperta-di-kotlin-2-0-quali-sono-le-novita-piu-interessanti\/","og_locale":"it_IT","og_type":"article","og_title":"Alla scoperta di Kotlin 2.0: quali sono le novit\u00e0 pi\u00f9 interessanti? -","og_description":"Alla scoperta di Kotlin 2.0: quali sono le novit\u00e0 pi\u00f9 interessanti?","og_url":"https:\/\/estatic-infotech.com\/it\/blog\/post\/alla-scoperta-di-kotlin-2-0-quali-sono-le-novita-piu-interessanti\/","og_site_name":"Estatic Infotech","article_publisher":"https:\/\/www.facebook.com\/estaticinfotech","article_published_time":"2024-06-11T00:00:00+00:00","og_image":[{"width":1027,"height":579,"url":"https:\/\/estatic-infotech.com\/wp-content\/uploads\/2025\/09\/4ee82d48-7f75-4e1f-ba87-83154eb32554.png","type":"image\/png"}],"author":"Mansi Senjaliya","twitter_card":"summary_large_image","twitter_creator":"@Estaticinfotech","twitter_site":"@Estaticinfotech","twitter_misc":{"Scritto da":"Mansi Senjaliya","Tempo di lettura stimato":"12 minuti"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/estatic-infotech.com\/it\/blog\/post\/alla-scoperta-di-kotlin-2-0-quali-sono-le-novita-piu-interessanti\/#article","isPartOf":{"@id":"https:\/\/estatic-infotech.com\/it\/blog\/post\/alla-scoperta-di-kotlin-2-0-quali-sono-le-novita-piu-interessanti\/"},"author":{"name":"Mansi Senjaliya","@id":"https:\/\/estatic-infotech.com\/it\/#\/schema\/person\/de3ff274c0ab0e3b3828e0cf2f9232fd"},"headline":"Alla scoperta di Kotlin 2.0: quali sono le novit\u00e0 pi\u00f9 interessanti?","datePublished":"2024-06-11T00:00:00+00:00","mainEntityOfPage":{"@id":"https:\/\/estatic-infotech.com\/it\/blog\/post\/alla-scoperta-di-kotlin-2-0-quali-sono-le-novita-piu-interessanti\/"},"wordCount":2610,"commentCount":0,"publisher":{"@id":"https:\/\/estatic-infotech.com\/it\/#organization"},"image":{"@id":"https:\/\/estatic-infotech.com\/it\/blog\/post\/alla-scoperta-di-kotlin-2-0-quali-sono-le-novita-piu-interessanti\/#primaryimage"},"thumbnailUrl":"https:\/\/estatic-infotech.com\/eipl-app\/uploads\/2025\/09\/4ee82d48-7f75-4e1f-ba87-83154eb32554.png","articleSection":["Kotlin Development","Mobile App Development"],"inLanguage":"it-IT","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/estatic-infotech.com\/it\/blog\/post\/alla-scoperta-di-kotlin-2-0-quali-sono-le-novita-piu-interessanti\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/estatic-infotech.com\/it\/blog\/post\/alla-scoperta-di-kotlin-2-0-quali-sono-le-novita-piu-interessanti\/","url":"https:\/\/estatic-infotech.com\/it\/blog\/post\/alla-scoperta-di-kotlin-2-0-quali-sono-le-novita-piu-interessanti\/","name":"Alla scoperta di Kotlin 2.0: quali sono le novit\u00e0 pi\u00f9 interessanti? -","isPartOf":{"@id":"https:\/\/estatic-infotech.com\/it\/#website"},"primaryImageOfPage":{"@id":"https:\/\/estatic-infotech.com\/it\/blog\/post\/alla-scoperta-di-kotlin-2-0-quali-sono-le-novita-piu-interessanti\/#primaryimage"},"image":{"@id":"https:\/\/estatic-infotech.com\/it\/blog\/post\/alla-scoperta-di-kotlin-2-0-quali-sono-le-novita-piu-interessanti\/#primaryimage"},"thumbnailUrl":"https:\/\/estatic-infotech.com\/eipl-app\/uploads\/2025\/09\/4ee82d48-7f75-4e1f-ba87-83154eb32554.png","datePublished":"2024-06-11T00:00:00+00:00","description":"Alla scoperta di Kotlin 2.0: quali sono le novit\u00e0 pi\u00f9 interessanti?","breadcrumb":{"@id":"https:\/\/estatic-infotech.com\/it\/blog\/post\/alla-scoperta-di-kotlin-2-0-quali-sono-le-novita-piu-interessanti\/#breadcrumb"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/estatic-infotech.com\/it\/blog\/post\/alla-scoperta-di-kotlin-2-0-quali-sono-le-novita-piu-interessanti\/"]}]},{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/estatic-infotech.com\/it\/blog\/post\/alla-scoperta-di-kotlin-2-0-quali-sono-le-novita-piu-interessanti\/#primaryimage","url":"https:\/\/estatic-infotech.com\/eipl-app\/uploads\/2025\/09\/4ee82d48-7f75-4e1f-ba87-83154eb32554.png","contentUrl":"https:\/\/estatic-infotech.com\/eipl-app\/uploads\/2025\/09\/4ee82d48-7f75-4e1f-ba87-83154eb32554.png","width":1027,"height":579},{"@type":"BreadcrumbList","@id":"https:\/\/estatic-infotech.com\/it\/blog\/post\/alla-scoperta-di-kotlin-2-0-quali-sono-le-novita-piu-interessanti\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/estatic-infotech.com\/it\/"},{"@type":"ListItem","position":2,"name":"Alla scoperta di Kotlin 2.0: quali sono le novit\u00e0 pi\u00f9 interessanti?"}]},{"@type":"WebSite","@id":"https:\/\/estatic-infotech.com\/it\/#website","url":"https:\/\/estatic-infotech.com\/it\/","name":"Estatic Infotech","description":"","publisher":{"@id":"https:\/\/estatic-infotech.com\/it\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/estatic-infotech.com\/it\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"it-IT"},{"@type":"Organization","@id":"https:\/\/estatic-infotech.com\/it\/#organization","name":"Estatic Infotech Pvt Ltd","url":"https:\/\/estatic-infotech.com\/it\/","logo":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/estatic-infotech.com\/it\/#\/schema\/logo\/image\/","url":"https:\/\/estatic-infotech.com\/wp-content\/uploads\/2025\/09\/cropped-favicon.png","contentUrl":"https:\/\/estatic-infotech.com\/wp-content\/uploads\/2025\/09\/cropped-favicon.png","width":512,"height":512,"caption":"Estatic Infotech Pvt Ltd"},"image":{"@id":"https:\/\/estatic-infotech.com\/it\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/estaticinfotech","https:\/\/x.com\/Estaticinfotech"]},{"@type":"Person","@id":"https:\/\/estatic-infotech.com\/it\/#\/schema\/person\/de3ff274c0ab0e3b3828e0cf2f9232fd","name":"Mansi Senjaliya","image":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/secure.gravatar.com\/avatar\/4ae94401f8a8cd09e37fcea485422949837ec0f03c2846e7302fd41f3ff56a26?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/4ae94401f8a8cd09e37fcea485422949837ec0f03c2846e7302fd41f3ff56a26?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/4ae94401f8a8cd09e37fcea485422949837ec0f03c2846e7302fd41f3ff56a26?s=96&d=mm&r=g","caption":"Mansi Senjaliya"},"url":"https:\/\/estatic-infotech.com\/it\/author\/mansi-senjaliya\/"}]}},"_links":{"self":[{"href":"https:\/\/estatic-infotech.com\/it\/wp-json\/wp\/v2\/posts\/4621","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/estatic-infotech.com\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/estatic-infotech.com\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/estatic-infotech.com\/it\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/estatic-infotech.com\/it\/wp-json\/wp\/v2\/comments?post=4621"}],"version-history":[{"count":0,"href":"https:\/\/estatic-infotech.com\/it\/wp-json\/wp\/v2\/posts\/4621\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/estatic-infotech.com\/it\/wp-json\/wp\/v2\/media\/775"}],"wp:attachment":[{"href":"https:\/\/estatic-infotech.com\/it\/wp-json\/wp\/v2\/media?parent=4621"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/estatic-infotech.com\/it\/wp-json\/wp\/v2\/categories?post=4621"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/estatic-infotech.com\/it\/wp-json\/wp\/v2\/tags?post=4621"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}