新しいiOS版リモートデスクトップクライアント

新しいiOS版リモートデスクトップクライアントを開発してたらGWが終了しました。
むかーしむかし、あるところに、KeroRemoteというiOS版リモートデスクトップのアプリがありました。自分が作ったんですが。それはBrynhildr 2.xやらGungnirに接続できていたんですが、開発環境も生活環境も変わってしまって維持も手間だし放置してたら新しいiOSのバージョンに対応してないやらなんやらでストアから消えましてそのままでした。その時には手元のiPhoneとiPadにはKeroRemoteが残っていたのでまあ大丈夫でしたが、その長年使っていたiPhone 7がプッシュ通知がこなくなってしまってさすがに買い替えたんですけど、その際にはもちろんKeroRemoteを移行できなかったのですが、まあ、Brynhildr FreeのWebブラウザ接続があるから、もうええでしょう、と思ってましたけど、Webブラウザ接続はスマホに最適化されておらず細かな操作ができないのでどげんかせんといかん、と常々は思ってまして、GWでちょっと時間もあるし古いKeroRemoteのソースコードを引っ張り出してさくっとビルドしてみますかいといったところから話が始まります。長い。
当時開発してたMacBookは別の開発でスタッフに渡しちゃってますのでKeroRemoteのソースコードだけを発掘。ちなみにそのMacBookはこのハッカソンに参加した時に買うたものです。ふっる。なっつ。わっか。
https://next.rikunabi.com/journal/20160805_t18_iq/
さてそんなKeroRemoteのソースコードですがXcode 7のObjective-Cです。当時のテスト端末はiPhone 5でしたね。で、最近新しいMacBookを買いまして、認定整備済製品のMacBook Airなんですけど、せっかくなんで新しいXcode 16に触れてみるチャンスだと思いインストールしてKeroRemoteのソースコードをビルドしてみたのですが、案の定で全く動かず。大量のエラーを吐き出しまくりやがります。それならばと当時のサブ開発機であったMac miniを引っ張りだしてきてそれでビルドしようとしてもなぜかできず。これはもの凄くやり甲斐がある。
そもそも、時代はObjective-CじゃなくてすっかりSwiftですし、エラーの内容を見てたらView周りとかメモリー周りとか激変なんですけど。え?initWithStringいらんの?あと、ノッチ対応とか凄く嫌なんですけど。早くノッチは画面の裏側に設置してマジックミラーみたいな感じにして見えなくすれば良いのに。できるか知らんけど。あと使ってるライブラリ(VP8とCELT)の再ビルドとかめんどくさすぎる。
てことで数々の難関を乗り越え何とか勘とかBrynhildr Freeに接続できて画面を表示できたところでGWが終了しました。先は長い。
ちなみになんで開発が始まったかと詳しくいーますと、Googleカレンダーのアプリだと自分以外の予定が確認できないのでブラウザで開きんしゃいと出るけど上手く開くことができなかったので、だったらWindows端末にリモートデスクトップでつなげるまでよと思った次第なんですが、実際には上述の通りBrynhildr FreeのWebブラウザ接続はスマホに最適化されていないのでまるで操作できんのですが。そんな原動力が思えばありました。
てことでいつの日か完成することをお楽しみに。