Android Room で relationships を扱う

Android アプリ開発においてデータの永続化を考えたとき、2021年12月現在において、最初の選択肢に挙げられる候補は Room です。

Room は SQLite の抽象化レイヤを提供する一種の ORM であり、Android Jetpack で提供されるライブラリの一つです。

基本的には Android Kotlin FundamentalsLesson 6: Room database and coroutines を通読すれば、おおよその操作感は理解できるのですが、実際のアプリ開発においては1つ問題が残ります。

Room がラップしている SQLite は関係データベースであり、そこに蓄積される情報は当然ながら正規化されています。

言い換えると、エンティティ単体で用いられることは、ほとんどありません。

もっと分かりやすく言うと INNER/OUTER JOIN 使いたいんだけど、どうするの?と思われるはずです。

そのあたりが知りたかったのに、とっ散らかっていて分かりづらいと個人的には不満を覚えました。




Continue reading “Android Room で relationships を扱う”

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つの試験を趣味で受験しました。

LPIC とは

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

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

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

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

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




Continue reading “LPIC 合格体験記”

Contact Us