ENDUROデバイスにも対応してほしいという要求が来たので、久々にDigiInfoを更新してみた。
Ver1.1.1が2021/05/21リリースなので、約2年半ぶりの更新。
どんな感じに更新していったかちょっと書いてみたいと思う。
開発環境のバージョン更新
Connect IQ SDKのVer4.2あたりまでは追っていったのだけど、そのごトンとConnect IQに関して触ってなかったので、どんな感じに更新されているかが不明だった。
SDKマネージャーを開いたところ、いつの間にかVer6.3まで上がってたのにはびっくり。
Ver5台はスキップされていたようだ。
SDKマネージャーで最新バージョンと最新デバイス情報を読み込んでおいた。
デバイスの追加
対応されているデバイスに関してはmanifest.xmlに書かれているのだけど、未対応のデバイスに何があるのか探してそれをmanifest.xmlに書き込むのは面倒なので、VSCodeの機能を使った。
F1-MonkeyC:Edit Productsを選択。
ドロップダウンで出てきたデバイスリストにとりあえず、全追加するといった感じで完了。
ソースコード対応
Ver4で型宣言が有効になったらしく、それへの対応がほとんど。
この対応はVer4のプレビュー版を試した時に実施済みだったので特に問題はなかった。
Connect IQ SDK 4.0.0 プレビュー版を確認してみた
リソース対応
問題点
新しいデバイスを対応する際に一番に問題となるのが、画面の崩れ。
フォントサイズがデバイスごとに異なるので、合わせこみをしなければいけない。
これはd2airxなんだけど、AM/PM表示がその上の日付表示部分と被ってしまっている。
DigiInfoはシステムで用意されているフォントしか使用していないので、このようなものを目視確認し、リソースファイルで微調整していく必要がある。
リソースファイルの修正
一応DigiInfoでは、使うフォントと特に微調整が必要な日付表示部分のY位置をリソースで調整可能にしているので、これをデバイスごとに用意していけば今のところ、すべて対応できている。
d2airxに関してはフォントサイズの変更だけで問題なかった。
デグレードテスト
今回ソースコードも修正したので、既存デバイスに影響がないかも確認をした。
確認には自前で作成したAutomationConnectIQというのを使っている。
これはシミュレーターを起動し、シミュレーターのメニューをプログラムで操作して、評価用の手順を実施。その結果を画像として保存しておくというもの。
これを全デバイスに対して実施して結果を前回の実行結果と比較して、合否判断をする。
実行結果は、上記のような画像でフォルダに保存されている。
比較にはWinMergeという別のプログラムを使うことで、フォルダ内のデータを比較して、差があるところを抽出してくれるので、差があった部分だけを目視確認している。
これにより、テストの時間を短縮できるようになる。
このデグレード確認用のスクリプトは、デバイスを全追加した後に事前実行して、問題があるデバイス、リソース調整をする必要があるデバイスの検査にも使える。
このデグレードテストで難関なのが、その実行時間。
30分ほど使うのだけど、その間、開発マシンが使えない状態になる。
これはAutomationConnectIQが、メニューを疑似的に直接操作しているからで、違うアプリを前面に持ってくると、すぐエラーストップしてしまうから。
面倒だった。
リリース
Export Projectで????.iqファイルを作成し、それをDeveloper Dashboardからアップロード(Upload New Version)して適用すれば完了。
その他
実機評価のため、テストプログラムを自分のFR45にインストールしようとしたのだけど、PCとつないでもデバイス認識しなかった。
そのため、時計をリブートしたのだけど今度は日本語表示されなかった。
日本語表示に関しては日本語テキストをダウンロードして入れて対応したのだけど、時計の再起動だけで日本語表示が消えてしまったのか不明。
あと、手持ちFR45のバッテリーがかなりへ立ってきたのと充電コネクタがちょっと接触不良気味になってる感じなので、新しい機種に交換タイミングかなと感じ、次機種予定のFR55のリソース回りはちょっとだけ時間を割いて調整しまくってしまった。
FR55の英語フォントサイズがちょい微妙だったので、調整内容が大きかったというのもあるけど。
コメント