開発のネタ探し中

     スマホアプリ開発はAppleやGoogleというプラットフォーマーが開発者とユーザーの間に割り込んでくるため嫌気が差してきたので、次は何を作ろうかと考えて他の選択肢を探している時に偶々Youtubeの動画を見かけてUbuntu Touchを試してみました。
     Ubuntu Touchのユーザーなんてほとんどいないので何かアプリを作っても小銭稼ぎは期待できませんが、そもそも当ブログでは自分が使ってみたいものを作ってきたので問題無しです。

    インストール手順

     以下がUbuntu Touchを試してみたくなった動画です。細かな注意点も解説されていて非常に助かりました。

     この動画を見た直後は、いろいろと妄想が膨らんだのですが現実は厳しかったです。

    必要なもの

    • Google Pixel 3a XL
      Amazonの「整備済み品」を18,980円でわざわざ購入しました。
    • UBPortsのインストーラーが使える状態の工場出荷イメージファイル
      こちらからイメージファイル(bonito-pq3b.190801.002-factory-61a2836d.zip)をダウンロード
    • adb,fastbootコマンド
       sudo apt install android-tools-adb
       sudo apt install fastboot
      
    • Pixel 3a XL用のUBPortsインストーラー
      こちらからubports-installer_0.10.0_linux_amd64.debをダウンロード

    動画内容と違うところ

    • 上の動画ではGoogleのサイトからフラッシュのリンクを踏んで直接インストールしてますが、自分はリンクからダウンロードしたzipファイルを解凍して、スマホのブートローダを起動してからスクリプトを実行しました。Googleのサイトに何時までイメージファイルが存在するか分からないのでダウンロードしておいたほうがいいと思います。
       adb reboot bootloader
       ./flash-all.sh
      
    • 上の動画ではUBPortsインストーラーをdebパッケージからインストールしていますが、自分のUbuntu24.04環境ではインストール出来なかったのでsnapからインストールしました。
       sudo snap install ubports-installer
      
    • 上の動画では出てきませんが、adbコマンドでPixelと接続する際にPixel側で[設定]->[システム]->[開発者向けオプション]->[デフォルトのUSB設定]で[充電]ではなく[ファイル転送]を選択しておく必要がありました。
       これをしないとPC側からadb devicesで接続の確認をした際にadb: failed to check server version: protocol fault (couldn't read status): Connection reset by peerというエラーになります。現在使っているスマホ(Xperia 10 Ⅲ)で試してみたら[ファイル転送]になっていなくても接続できたので古いスマホ(Pixel3a)固有の問題かもしれません。adbコマンド使うのも久しぶりだったので、自分が忘れているだけで昔は全部そうだったような気もします。

    Ubuntu Touch

    Waydroidはまだまだ

     Linux上でandroidアプリを動かすためのWaydroid、上の動画でも言ってますがandroidアプリを使うぐらいならandroidスマホを使うのが良さそうです。自分はスマホの決済機能もあまり使わないしandroidアプリが無くても生活に必要な多くのことはPCで可能なので、androidスマホが無くてもそこそこ生活していけると思っていますが、どうしてもandroidアプリが必要だという時にはWaydroidで「ほとんどのアプリは動く」ぐらいの安心感が欲しいですね。

    Libertineも怪しい

     Ubuntu Touch上でUbuntuのデスクトップアプリを動かす機能ですが、こちらも少し使っただけですが怪しい動きでした。スマホの画面だと狭いからデスクトップアプリが使えないという話ではなく、うまくインストール出来ないものが多かったです。ネットを検索していると「UbuntuのソフトをUbuntu Touchで使いたい」という問いに対して、「ルート(/)以下のディレクトリを書き込み可能にすれば(sudo mount -o remount,rw /)可能ですよ」と言う回答をよく見かけましたが、Libertineはそういう危険な操作(sudo mount -o remount,rw /)をしなくていい仕組みの筈です。でもインストール直後にLibertineを起動してコンテナを作ってデスクトップアプリをインストールすると、うまく行ったり行かなかったりでした。
     Ubuntu TouchのOpen StoreからUT Tweakというアプリをインストールして、Make image writableの機能を使えばLibertineのコンテナ作成に関しては失敗しなかったので元々そうやって使うべきものなのかもしれません。

    UT Tweaksアプリ

     Ubuntu Touchをリブートするまで書き込み可にするというオプションが用意してあります([Read-Write]Temporary(until reboot)をタップ)。aptコマンドでいろいろなパッケージをインストールする際に、これをOnにしておけば警告が出なくなったりしますが、Ubuntuのデスクトップアプリを何でもインストール出来るわけでは無いようです。
     sshを有効にする機能もこのアプリに用意してあるので、まず最初に入れるべきアプリかも。

    ssh設定

    日本語が入力出来ない

     モバイルPCとして使えなくても、せめてこのブログの記事を書くことぐらいは出来ないかなぁなんて思っているのですが、今動かしているUbuntu Touch OTA 5は日本語入力に対応していません。日本語関係のパッケージを入れてみたりしましたが自分の力では出来そうになかったです。

    日本語入力関連

     sshで接続してaptコマンドで言語関連のpackageをインストールしてみました。IBus PreferencesMozcFcitxの日本語入力関連のアイコンが並んでいて一見使えそうですが、インストール時にエラーが発生していて使えません。Ubuntu Touch自体は何度でもインストールし直せる状態なのでシステムが壊れてもいいからと、sudo mount -o remount,rw /した後にいろいろやってUbuntu Touch OTA6にバージョンアップしても違いはなかったです。

    OTA6

    アプリ開発は情報が少ない

     Open Storeに用意されているアプリはWebベースのアプリが多いみたいで、ネイティブなものはQtを使うようですが情報が少ないので大変そうです。自分が何か開発するとしたらWebベースのものになると思いますが、日本語の情報はほとんど無さそうです。
     試しにQt Creatorを使ってサンプルをコンパイルしてみましたが、Ubuntu上では動くもののUbuntu Touch上では動きませんでした。こっち方面に進むのは茨の道になりそうです。

    Qt Cretor

    それでも期待したい

     動作するスマホの機種が限定されるというのは辛いし今使っているスマホ(Xperia 10 Ⅲ)の代替にはなりませんが、今のスマホを買い換える時までに何か変化があって欲しいな(他人任せ)と思ってます。今でも海外ならUbuntu Touchが動作するハイスペックなスマホは売られてますが、日本だと技適を通過しないことにはマズそう(通話自体は可能?)なので、ここが一番のネックな気がしますね。
     応援のつもりでUBPortsに寄付しようかとやってみたら、なんと日本からの寄付は受け付けていないようでPayPalから送金できませんでした。日本人は相手にされていないみたいで何か悲しいです。

    paypalのエラー