💨

Android+termuxで開発する

に公開

はじめに

最近は小学生でも学校でプログラミングを習っていると聞きました。私の時代はそんなものはなかったので、どんなことを習っているのかは分かりません。ただ小学生の頃は自由に使えるデバイスがなかったな…と思い出して、今どきのプログラミングをしたい小学生はどんなデバイスを使っているのか調べてみました。

https://www.moba-ken.jp/project/children/kodomo20240129.html
https://edtechzine.jp/article/detail/9768
https://www.cfa.go.jp/policies/youth-kankyou/internet_research/results-etc/r05

どうやら自分専用のデバイスとしてはスマホが一番多いようです。とはいえ、小学校高学年の4割に過ぎませんが(小学校中学年くらいでアルファベットに到達する)。PCに至っては2割以下であり、あまり自由なプログラミング環境ではないようです。

これは中学生でも同様で、スマホが8割を超える程度で依然としてPCは低普及率になります。

学校から貸与される端末もあるようですが、それすら100%ではありません。正直個人的には学校で小学生にプログラミングを教えることは反対なのですが、望めば自由に使える環境を持つことには大賛成です。何も最新である必要はなく、二束三文のやつで良いので…。

なので、今回は持っている率が比較的高そうなAndroid単体でのプログラミング環境を少し考えてみました。

Androidの開発環境

Androidの開発環境と言っても、インターネットで検索して出てくるようなPC上でAndroidアプリを開発する環境のことではありません。あくまでAndroid端末だけで開発できる環境です。

Androidの開発環境は大きく分けて

  1. Androidの特定アプリ上で動作する専用のプログラムを作るもの
  2. Google Playに並ぶような本物のAndroidアプリを作るもの

2種類があります

2.については正直PC上の開発環境でないと辛く、今回は1.の方だけ調べてみました。ただし特定アプリ上で動く代わりに、PCや他のサーバーなどでも動作するようなCLIなプログラムを開発できる開発環境を選びます。原則GUIではないということです。

TermuxとUserLAnd

「Androidの特定アプリ上で動作する専用のプログラムを作れる環境」となると、私の独断と偏見で選べばTermuxUserLAndかと思います。どちらもソースコードが公開されたopenな開発環境で、どちらもLinuxのように主にCLIプログラムを開発したり動かすような環境になります。

UserLAndの方がややLinux寄りになり、Android固有の機能(NDK)に直接触れにくいという印象があります。その代わり作りがLinuxに近く、Linuxに慣れた人なら開発しやすいかもしれません。ただUserlandであることもあり、全機能が完全に動作するわけではなく、できないことはスッパリ諦められている感じです。

Termuxは操作に癖がありますが、Android単体で使いやすい工夫が入っており、デフォルトのキー入力操作にストレスが少ないです。またNDKに直接触れられるメリットがあり、Linux固有の作法に合わせて汎用に作り込みを行わず、ざっくりとした対処療法をしやすいという特徴があります。汚い対応が可能になるので不安も大きいですが、誰にも頼らず一人で問題解決する必要に迫られたとき、この選択肢があることは結構大きいかもしれません。またLinux固有の作法にとらわれていないので、やや動作も軽い部分があります。Linuxとの主な違いについては、この記事(英語)がよくまとまっています。

実際自分でUserLAndを使っていたときにそう感じた記事を以前Qiitaで書いた(ただしBANされたので今は消えてます)のでその元のMarkdownへのリンクを参考までに置いておきます。

以上から、この記事ではTermuxを使っていきます(人気という意味でもTermuxの方が有名です)。

Termuxのインストール

実はTermuxのインストール方法は現在2種類あります。

  1. Google Playに並んでいるTermuxアプリをインストールする方法(ただしAndroid11以降のみ)
  2. F-Droidをインストールし、そこからtermuxをインストールする方法

Termuxの公式サポートがあるのは2.の方だけです。しかし2.だとGoogleのセキュリティチェックが反映されません。腕に自信がある人は迷わず2.を使うべきなのですが、責任を取るにしても金銭的な自由度が全くない子供には難しい選択です。なので、この記事では(形式的な)安全側に倒して1.を選択します。開発という観点ではそこまで大きく違わないと思うので。

https://play.google.com/store/apps/details?id=com.termux&hl=ja

Google Playを使う場合は、他のアプリ同様インストールして起動するだけです。

起動すると黒背景に文字だけの画面になり、以降全てを文字入力操作によって行わないといけません。

~ $ exit⏎

※以降は⏎を記載しません

終了するときは、上記のようにコマンドラインからexitコマンドを実行するか、通知領域にあるexitを押せば終了します。

Termuxは普通のアプリとは違い、文字入力操作によりコマンドを入力し、そのコマンドを実行することができますそしてそれしか出来ません。実行できるコマンドは、そのコマンドを含むパッケージを新しくダウンロードしてインストールしたり、自分で作ったり出来ます。

Termuxインストール直後に始めから入っているコマンド群はやや古くなっているので、最初に起動したときはこれらをpkgコマンドでアップデートします。

~ $ pkg update && pkg upgrade -y

何か聞かれたら⏎しておけば大丈夫です。

以降気が向いたときに更新をかけておくといいでしょう。

詳細記事

GitHubで編集を提案

Discussion