見出し画像

iPhone版コーヒー焙煎モニターZENzeroAppとデバッグの話 開発記

ちっす! ここ数日iPhone版についてアンケートを取らせていただきました。ご参加ありがとうございます。
 実はiPhoneについてちょっと前から作業してて、それが今どういう状況かって話。
 先に結論をいいますと、iPhoneアプリの開発はここまで、って話です。

現在の画面。

開発中のiPhone15ProMaxEmu画面

この画面はマニュアルモードをエミュレータで擬似的に実行した画面なんですよ。Macのメモリー上に一時的にiPhoneをインストールして、その仮想iPhoneにアプリをインストールしたような感じです。

問題はここから先なんですよ。
 デバイスが接続されてません。エミュレータではBluetoothの接続が制限されているので”NotConnected”表示になってます。
 画面のグラフはマニュアルモードでは入力できてますが、自動化はまだです。

そこでデバッグ用の実機。

 スマホアプリ開発でも特に難解と言われるBluetoothの機能を使うには ”実機デバッグ” というテスト機運用が必須。エミュではなく、実際のスマートフォンを使ってプログラムの実行テストをするんすね。

アプリのリリース前には手元でテストを重ねてスマホやデータに不具合が起きないか事前に調べる必要があります。
 Android版ではテストユーザーさんに操作性に違和感がないかという部分を中心に見てもらってるんですが、自分のAndroid開発の場合は手元で3機種、テスターさん6名様(いつもありがとうございます)の合計9台でテストしてるわけなんですが、まあそれでも不具合は出てしまうんですね。
 例えば今日判明したのはZTE製のスマホは原因不明の不定エラーが出る事があると報告が上がってたりして、それは例外ということにしても、できるだけ問題が起きないように手元で確認するんですね。
 iPhone版を作ろうとしたらテスト用に実機が3台くらいは欲しいわけなんですが、今iPhoneの実機は手元に1台。

アポーにデベロッパー登録せねば。

 次に、年間99ドル払って実機にインストールできるようにするんですけど、パスポートの住所が引越し前のだったりして、ただでさえ面倒らしいのに通るのかしら? みたいな。まー必要なら通すしか無いんですけど。

そしてコードメンテナンスこそコア。

 実機でエラーなく動くのか、デバッグテストはあらゆる動作を想定してみるんですが、プログラムのモード、オプションのOn/Off、センサーの接続方法など環境を変えて通しの焙煎を繰り返すのです。

 例を上げると、マニュアルモードで温度登録を10秒以内に11回やったらどうなるか、とか、センサーを外して何秒までなら安全に復帰できるか、とか、何かの拍子でアプリが裏に回った時の挙動とスマホ本体のメモリー状況の関係とかそういうの。
 ある程度はコードを見て先回りするんですが、実際はやってみたらモードによって動作を迂回してたり、他の条件が邪魔をしてたりして意外なところで問題が起きます。
 実際コード作成の半分以上は ”これを行う” よりも ”これだったときはこう避ける” という安全策の塊みたいなものなのでいわゆる ”フローチャート” のようなシンプルな構成では終わらないんですよ。

デバッグはけっこう地道。

デバイスを無線接続しての動作テストはクリックだけで完結する通常のスマホアプリとは異なって非常に複雑で実証に時間がかかります。
 機能を一つ追加する毎にテストが分岐して倍増するんですよね。ZEN2の時なんて起動回数だけですが3000回超えてましたもん。テストで焼いた焙煎豆が余ってしゃあにゃーのでご近所さんにあげてたし。

先日一旦停止した ”マニュアルモード” の時も同じ。
 モードによる共有部分と分離部分と全体の状態管理とが絡み合って、こっちを直すとあっちが消えるみたいな状態なんですよ。で、動作確認は倍以上になります。

一旦冷静になる。

冷静になって考える。
 iPhone用にデバッグ増やしてさらに作業が倍になって襲ってくるのかと思ったらちょっと想像を超えて負担感丸出し。暑いのに寒気がするぜ。開発速度が半分以下になるのは丸見えなんですよね。半分どころかむしろ速攻折れます。
 あと自分、人間が雑なので虱潰しとか絶対漏れる自信がある。

 いやね、プロのテスターを雇ったりチームでバグ潰しできるくらい儲かる仕事ならいいんですけど、流通量は実質趣味の範囲を超えてない程度の実績ですのでそんなに枝葉は広げられないわけなんです ブツ草ァ。

フィードバック欲しい。

 かと言って先日のマニュアルモードの問題発覚時も何もフィードバックがなかったんで実際はバージョンいくつで何が起きてたのかわからないし、途中で気がついた内部バージョンだけだったのかもしれないし、実質不明なわけなんですが、インストール数とアンインストールする人が近かったのでホントはどうだったんだ…と、不安を抱えて修正…なんてのもちょっと精神が耐えきれないわけですよ。
 そんでマニュアル版に時間を取られてデバイスユーザーに問題が起きてしまう前に停止したわけなんですが…。
 もし、焙煎履歴を無駄にしてしまった方がいたら申し訳ありません。フィードバックもお待ちしてます。

 ちなみに私、本筋以外の細部については無頓着なことが多いので、どこからフィードバックすればいいのかわからなかったという可能性も。なにか気になったことがあったらTwitter(現X)のDMからお願いします。(最下部↓)

保留ね。

てことでアンケートでも 「iPhone版欲しい」 という方が半数いたんですが(ほんとに日本のスマホユーザーの半分がiPhoneなんですね驚いた)、スマホアプリ開発はiPhoneで使うことが目的ではなく焙煎管理を確実にすることが目標なので、当面Android版で行くことになりました。ご期待いただいていた方には申し訳ございません。Android版をご使用ください。

iPhone版が出るなら一通り機能を完成させた後に移植という形になると思いますので、待つよりさくっと焙煎管理をスタートしたほうがいいと思うのです。
 いつまでも勘で焼いてて似たようなところをぐるぐる回るより、温度を見える化した方が確実に前に進むから。

ちなみにデバイスはどちらでも使えるように設計してあるので、もしiPhone版がリリースとなったらそちらでも使えるようにしますので一応。

てことでデバイスはこちらです。

Androidスマホはエントリー系機種でも動いてますので、専用機としてこちら↓もご検討ください。(こちらAndroid13までUG出来ます)
 こちらが一番安くてテストにも使っているので確実。SIMナシでWiFi運用してます。安いけど単なるOEMではなく国内企画の製品らしいです。丸洗いOK。

ちなみに米軍MIL規格23項目に準拠らしいですよ。IPX8なんで風呂で動画見るのにもそのまま使ってます。なんでスマホの宣伝してるんだろう…

https://www.fcnt.com/product/arrows/arrows_we/から引用

スマホ選びの注意点としてAndroid12以前のモデルはもうテストしていないのと、フォルダ操作ができずに焙煎データをPCへ退避できないものがあるのでご注意。
 またメーカーとして、 ”ZTE” 製のスマホは謎の不定エラーが報告されています。スマホ外との連携がBluetooth、URLアクセスなど動作しない物があるようなので避けたほうが無難です。今回のアプリでは報告と同様の不具合が確認されました。


ちなみにスタンドアローン版の 焙煎モニターZEN2 があと数台分パーツ残ってるのでご注文いただければ販売できますので在庫のあるうちにどうぞ。

動画見ても何言ってるか解らないかもしれないですが、製品発表なんですよこの動画。
 この頃から部品管理が煩雑すぎてもうカタログ的なものを作ってなかったので開発記でお茶を濁してますね。しかしこちら↓のCoffeeMtさんがコアなレポート連載をしていただいてるので、焙煎そのものにも参考になるのでどうぞ。

TwitterのAPI貼り付けます

んだばな


この記事が気に入ったらサポートをしてみませんか?