Zobrazení datového typu v Idea IDE v Kotlinu

Kotlin na rozdíl od Javy nenutí vývojáře aby psal typ proměnné, protože tuto informaci si je schopen sám odvodit. Nevýhodou může být, že v kódu není u proměnné vidět její typ. To lze ale změnit v nastavení vývojového prostředí.

File -> Settings -> Editor -> Inlay Hints Zde je možno specifikovat pro jaký jazyk se mají hinty zobrazovat.

File -> Settings -> Editor -> Inlay Hints -> Kotlin -> Parameter hints -> Types Kde se určuje jaké typy hintů chcete vidět.

Zdroj: stackoverflow.com/questions/54851861/how-do-i-activate-type-annotations-hints-in-kotlin-like-depicted

Node.js a Express Hello World

Express je framework pro práci s Node.js.

Vytvoření kostry aplikace:

  • npm init –yes
  • npm install express
  • vytvořit soubor index.js

index.js

const express = require('express');
const app = express();

app.listen(3000, () => console.log('Listening on port 3000...'));

app.get('/hello', (req, res) => {
    res.send("Hello");
});

Spuštění

node index.js
Listening on port 3000...

Výsledek bude na adrese http://localhost:3000/hello.

Kotlin JavaFX Hello World

Build.gradle.kts

import org.jetbrains.kotlin.gradle.tasks.KotlinCompile

plugins {
    kotlin("jvm") version "1.4.10"
    id("org.openjfx.javafxplugin") version "0.0.9"
}

group = "cz.vitfo.redgui"
version = "1.0-SNAPSHOT"

repositories {
    mavenCentral()
}

tasks.withType() {
    kotlinOptions.jvmTarget = "11"
}

javafx {
    version = "15.0.1"
    modules = listOf("javafx.controls")
}

Třída dědící z javafx.application.Application

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;

class FXApplication : Application() {
    override fun start(stage: Stage) {
        val javaVersion = System.getProperty("java.version")
        val javafxVersion = System.getProperty("javafx.version")
        val l = Label("Hello, JavaFX $javafxVersion, running on Java $javaVersion.")
        val scene = Scene(StackPane(l), 640.0, 480.0)
        stage.scene = scene
        stage.show()
    }

    fun main(args: Array) {
        launch()
    }
}

fun main(args: Array) {
    FXApplication().main(args)
}

Výsledná aplikace

Zdroj: github.com/openjfx/samples/blob/master/HelloFX/Gradle/hellofx/src/main/java/HelloFX.java

Kotlin Swing Hello World

import java.awt.EventQueue
import javax.swing.JFrame

class Application : JFrame() {

    init {
        title = "Hello world"
        defaultCloseOperation = JFrame.EXIT_ON_CLOSE
        setSize(400, 300)
        setLocationRelativeTo(null)
    }
}

fun main() {
    EventQueue.invokeLater {
        val window = Application()
        window.isVisible = true
    }
}

Přehled jednotlivých komponent Swingu: web.mit.edu/6.005/www/sp14/psets/ps4/java-6-tutorial/components.html

Node.js Hello World

Index.js

const http = require('http');

const hostname = '127.0.0.1';
const port = 3000;

const server = http.createServer((request, response) => {
    response.statusCode = 200;
    response.setHeader('Content-Type', 'text/plain');
    response.end('Hello World!');
});

server.listen(port, hostname, () => {
    console.log(`Server running at http://${hostname}:${port}/`);
});