Kotlin デスクトップ・アプリケーション開発

Java SE で標準的な GUI ライブラリとして利用されている JavaFX。このライブラリを Kotlin で利用するために広く用いられている TornadoFX という IntelliJ IDEA のプラグインがあります。

これを使用するためには IntelliJ IDEA 上で Ctrl + Alt + s キーを押して Settings ウィンドウを開き、Plugins > Marketplace タブから TornadoFX を選択してインストールした後、IDE を再起動します。

しかし、JavaFX は JDK11 から独立したモジュールとなり、JDK に含まれなくなったため、2021年現在ではプラグインをインストールしただけでは利用できません。

実際には以下のようなエラーを吐き出して実行に失敗します。

Cannot access ‘javafx.application.Application’ which is a supertype of …

そこで MavenCentral から JavaFX を取得するようbuild.gradle (tornadofx-gradle-project) を編集します。

plugins {
    id 'org.openjfx.javafxplugin' version '0.0.10'
}

javafx {
    version = '11'
    modules = [ 'javafx.controls', 'javafx.fxml' ]
}




実行環境は以下の通りです。

$ java -version
openjdk version "11.0.11" 2021-04-20
OpenJDK Runtime Environment (build 11.0.11+9-Ubuntu-0ubuntu2.20.04)
OpenJDK 64-Bit Server VM (build 11.0.11+9-Ubuntu-0ubuntu2.20.04, mixed mode, sharing)
TornadoFX 1.7.20.1

IntelliJ IDEA 2021.3 (Community Edition)
Build #IC-213.5744.223, built on November 27, 2021
Runtime version: 11.0.13+7-b1751.19 amd64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o.

Android Studio 2020.3.1 で Realm を使う

ここ1年から2年ぐらいの間に Android 開発環境が大きく変化し、過去のドキュメントが役に立たなくなることが散見されるようになりました。

具体的には JCenter や Kotlin synthetics が非推奨になったりしたわけですが、モバイルデータベース Realm も気がついたら以前の設定のままでは使えなくなっていました。

そこで設定方法を一通り検索してみたのですが、情報が錯綜しているようで、断片的には正しいと言える情報しか見つけられませんでした。
MongoDB Realm Android Kotlin Tutorial を見ても要領を得ないというわけで、備忘録も兼ねて設定方法を記載します。

使用するのは Android Studio 2020.3.1 (Gradle Plugin Version 7.0.3/ Gradle Version 7.0.2) および io.realm : realm-android-library : 10.5.1 です。

どこかに解決策としてバージョンをダウングレードすると書かれていましたが、正しく設定できればその必要はありません。

Continue reading “Android Studio 2020.3.1 で Realm を使う”

電子工作に使える『電気のための基礎数学』

電子工作に取り組んでいると避けては通れないものが二つあります。

一つはデータシートであり、もう一つは電気回路です。言い換えるとデータシートと電気回路図さえ読めれば、電子工作を用いて解決できる問題の数も作成できるもの種類も飛躍的に増加します。

『電気のための基礎数学』は電気回路において用いられる計算法を網羅した入門レベルの問題集です。具体的な範囲は一次方程式、二次方程式、行列式、三角関数、指数関数、対数関数、複素数、微分、積分と中学生でも理解できる内容になっています。


電気のための基礎数学 (電気計算法シリーズ)

本書の特徴は、大学出版局の出版物とは思えないほど計算過程がていねいに示されており、また問題文に付随して与えられるヒントが豊富であるです。

電気回路について基礎知識がなくても読み進めることができるように配慮されています。




例えば、環状ソレノイドの磁束密度を求める問題の場合、本書では円周上の磁束密度の式をヒントで与えられますし、トランジスタ増幅回路の電力利得を求める問題では電力増幅度と電力利得が示されます。

Continue reading “電子工作に使える『電気のための基礎数学』”