Android 開発機としての Kindle Fire HD

日進月歩で進化していくモバイル OS。

消費者としては3年前から大きく変化していないように見えても、開発者としては AsyncTask に Kotlin synthetics に JCenter にと もういい加減にしろと言いたくなるほど 仕様変更がつづき、安定して動作していていたアプリが非推奨技術の塊になる場面や、想定通りに動作しなくなっていく現象を目撃する機会が増えてきました。

Android 端末は低価格で高機能を提供する反面、その旬の期間は極めて短いと思えます。毎日のように酷使して、落下して故障させる可能性もそれなりにある携帯電話であれば、およそ2年ごとに機材ごと新製品に交換するので、それでも良いかもしれません。

ところが、タブレット端末を対象としたアプリ開発では、そんなに頻繁に OS が更新されることは手放しで歓迎できることではありません。

タブレット端末はそれほど頻繁に買い換えることはないからです。

それにもかかわらず、Android タブレットは、一定期間を過ぎると販売が終了して市場から姿を消します。

タブレット向けのアプリ開発を行っていると、正常動作することが確認されている機種を定めても、それが数ヶ月から1年ぐらいの頻度で販売終了してしまう光景に飽きるほど出くわします。

そして、手元には OS アップデートから取り残された端末が、延々と積み上がっていきます。

そこで開発してきた Android アプリ資産を活用できる端末として目に着けたのが Amazon Kindle Fire HD です。

これは Fire OS という Android をフォークした OS で動作するタブレット端末であり、ただでさえ安価な Android タブレットよりもさらに安価で、長期間に渡って供給が安定しているロングセラー商品という特徴を持っています。


Fire HD 8 タブレット ブラック (8インチHDディスプレイ) 32GB

これはアプリの動作環境としては非常に魅力的です。

なにしろ、2019年製のどこのメーカの OS verion X.X でアップデートされているものなどと細かく仕様を見ていかなくても、「最新の Kindle Fire であれば正常に動作します」と言い切ることができるようになるからです。

しかも、米国や中国などの特定の国でしか販売されていないような端末とは異なり、Kindle Fire であれば全世界共通の仕様なので、検証機とユーザの動作環境との差異をより一層、小さくすることが可能となります。

その上、ただでさえ安価な Android タブレットよりも、さらに価格が抑えられている点も見逃せません。




Continue reading “Android 開発機としての Kindle Fire HD”

LPIC 合格体験記

Linux Professional Institute(LPI)の認定試験である LPIC-1 Exam 101, Part 1 of 2, version 5.0 (101-500) と LPIC-1 Exam 102, Part 2 of 2, version 5.0 (102-500) の2つの試験を趣味で受験しました。

[toc]

LPIC とは

Linux のシステムアーキテクチャ、ネットワーク、セキュリティ等に関する基本操作や設定に関して問われる認定資格試験です。

試験形式は CBT で 4 または 5 の選択肢のなかから問題文に対して適当な解答を選択するものが多いです。

しかし、条件に合致する選択肢をすべて選択する問題や、求められている結果を表示するコマンドや、求められているファイル名をキーボード入力する問題も少なからず出題されます。

出題はランダムで、私が受験したときにはファイル名や絶対パスを入力させられる問題が連続して出題され、そのことで大いに肝を冷やしました。

普段、パス名などはタブキーで補完してしまうことが多いので、例えば /proc/self/mounts を入力することを求められている問題では正解は mount だったか、mounts だったかと自分の記憶が疑わしくなりました。




Continue reading “LPIC 合格体験記”

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.