Continuando nel mio studio di Kotlin, mi sono imbattutto nella creazione di file ZIP con più files contemporaneamente.

Quindi, per fare un esempio basico, partendo da un array di file, vediamo come inserirli in un file ZIP.

Come già detto più volte, essendo Kotlin basato su Java, è possibile usare le stesse librerie.

E così per connetterci ad un database MariaDB (e MySQL) possiamo usare lo standard JDBC!

Oggi ne vediamo un esempio basico, giusto per iniziare.

Senza usare librerie esterne (cosa fattibile visto tutte le librerie disponibili per Java), per intercettare l'input dell'utente in Kotlin possiamo usare sia la classe Scanner che readLine.

Io preferisco Scanner, e quindi vedremo un esempio basico usando questa classe.

Partiamo dal presupposto che in Kotlin non esiste il concetto di statico.

Quindi è possibile usare il pattern Singleton, ma in maniera un pò differente da Java.

Avremmo sempre il costruttore (primario) privato, e al posto di metodi statici useremo i companion object.

Fuel è un'altra libreria per eseguire richieste HTTP in Kotlin.

Di base ha due dipendenze; se usate Maven:

    <dependencies>
        <dependency>
            <groupId>com.github.kittinunf.fuel</groupId>
            <artifactId>fuel</artifactId>
            <version>1.8.0</version>
        </dependency>
        <dependency>
            <groupId>com.github.kittinunf.result</groupId>
            <artifactId>result</artifactId>
            <version>1.1.0</version>
        </dependency>
    </dependencies>

Kotlin ha un supporto completo per gli Enum, e mette anche a disposizione alcuni metodi statici abbastanza comodi.

Vediamo un esempio basico.

Per tipo di variabile intendo che tipo di oggetto è una determinata variabile.

Può essere utile in alcuni per capire bene cosa restituisce un determinato oggetto.

In Java si usa instanceof, che corrisponde alla parola chiave is in Kotlin.

Tra le varie librerie messe a disposizione dalla Apache Foundation, ne ho trovato una apposita per la gestione delle email: Apache Commons Email!

Questa libreria migliora le API standard di Java, ed ho deciso di usarla per fare qualche test sulle email in Kotlin.

Se usate Maven, dovete aggiungere questo al file pom.xml:

        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-email</artifactId>
            <version>1.4</version>
        </dependency>

Ho visto che per Kotlin ci sono diverse librerie per eseguire richieste HTTP.

Oggi vediamo khttp!

Se usate Maven, per installare la librerie aggiungete questo al pom.xml:

   <repositories>
        <repository>
            <id>jcenter</id>
            <url>http://jcenter.bintray.com/</url>
        </repository>
    </repositories>

    <dependencies>
        <dependency>
            <groupId>khttp</groupId>
            <artifactId>khttp</artifactId>
            <version>0.1.0</version>
        </dependency>
    </dependencies>

Compilate il progetto per scaricare libreria e dipendenze.

Non ho trovato nessuna funzione per contare il numero di righe di un file in Kotlin; quindi ho fatto come gli antichi:

  • apriamo il file
  • lo leggiamo
  • contiamo il numero di righe con un contatore
  • stampiamo il numero di righe