iOS14 の Widgetの実装試行錯誤 for SurfTideΔ

s_std_wki_002.png

天気情報をサーバから取得して表示する部分と、Widgetからの場所設定だけ実装してみた。
なんとなく動いてはいるけど、Simulatorは結構な頻度でハングするし、xcodeも2度ばっかりクラッシュ…
Widgetも動いたり動かなかったりで、今ひとつ表示の更新パタンが読めない、設定変更後に数秒ブラックアウトして表示されたり、イメージのキャッシュが表示されてしばらく更新されなかったりと…
デバッガとの相性もイマイチで、何がどのタイミングで動いているのか、もうわけがワカメ…

タイドグラフはイメージを作成するコードは既にあるので、それを実装すれば完成といえば完成なんだけど、この状態で SurfTideΔ にバンドルするものなぁ〜

大きな勘違い... はじめての SwiftUI

s_tideWidget_swift_Edited.png

Objective-C から Swift に開発環境を変えたときも意外と遅くて、たぶんSwiftのバージョン2か3が出たあたり。
あまり新しいことには飛びつかない(面倒なので…)タイプで、今回もやっと重い腰をあげて SurfTideΔ に WidgetKit でホーム画面にタイド系の情報を表示するUIを追加しようと思い立ち、とりあえずレイアウトでもチャチャと作ってあとは既存のコードで継ぎ接ぎでなんとかなるかなぁ〜と

ぜんぜんなんとかなりませんでした…
○| ̄|_ =3

そもそも SwiftUI って、単にUIの作成方法を storyboard からコードでの記述に置き換えた位にしか考えてなかったのが間違い。
これ、まったく別のコードアーキテクチャじゃん(笑)
少しマジメにお勉強しないと、チャッチャとはいきませんね…
(´Д`) =3

ちなみに、キャッチ画像は実際に実装するUIとは全然違います。とりあえず適当にパーツを填めてレイアウトの方法を確認してみただけですので。

世界線は超えられないけれども(IN-12)

ずっと欲しかったニキシー管の時計。
直立型(IN8-2)の真空管のやつが欲しかったのだけど高いので、比較的安かったClockのキットとIN-12の管で作ってみた。

PXL_20201112_120431187.png

まぁ作ったと言っても、真空管刺しただけだけどね。
約8千円弱の出費だったけど、なかなかよく出来てて、Alexa Show と並べて時計表示してるけどほとんど時刻も狂ってないのはスゴイ。
5分置きにシャッフルするのが格好いい。カソードポイズニングと言うらしい。ムダにシャッフルするわけじゃなく放電しなくなる部分を防止するためらしい。
このシャッフル、ずっと眺めてないとなかなか見れない。たまたま見れたときはなんかラッキーな事がありそうな(笑)

「忘れないで! あなたはどの世界線にいても1人じゃない! 私がいる!」

iOSアプリ、もう2本アップデートしました!

  • 投稿:
  • 更新:2020年11月24日
  • by
  • in

surftide7_20201114.png

古いアプリをもう2本 iPhone12 シリーズ用にUIを調整しました。既にストアで公開しています。

  • サーフィンや釣りに!タイド&ウェザー SurfTide7
  • ウェザーアプリ ひまわり君

SurfTIde7についてはあと1度はアップデートしますが、次のバージョンでは天気情報の提供が停止となります。またウィジットとAppleWatchも併せて削除となります。
2014年の2月に初版をリリースし約6年現役で稼働してきましたが、さすがに作りが古く、今自分で見返すとあまり綺麗なコードではありません。AppleWatch対応もSeries1の時代のもので相当古いです。そいえば、WatchはAppleから依頼されて初代のWatchが販売される前に実装した機能です。

未だ利用者も多く、完全に消してしまうのも作った側としては少し寂しいので(色々思い入れのあったアプリですし)、上記した機能を次のリリースで削除しストアには継続して公開します。。
タイド情報だけで良いって方はそのままご利用下さい。ただし今後新しいデバイスや新しいOSでデザインが変わってもアップデートはしません。

削除された機能が必要って方は、既に安定稼働している SurfTideΔ、AppleWatch版については SurTideWatch をリリースしているのでそちらに移行して下さい。

iOSアプリ、まとめて6本アップデートしました!

  • 投稿:
  • 更新:2020年11月20日
  • by
  • in

iphone12_mini_02.jpg

以下iOSアプリ、まとめて6本アップデートしました。
既にストアで公開されています。

  • タイドと波情報 SurfTideΔ
  • 天気と風と波
  • ウォッチ用タイドグラフ - SurfTideWatch
  • 全国の道の駅を検索 - RS Station
  • 世界のタイド表示 e-tide
  • 波乗り目覚まし - Surf’s UP

新しい iPhone12シリーズで一部レイアウトが崩れていたのを修正しました。
また、デフォルトのブラウザをSafari以外に変更した場合、アプリからのリンクが正しくブラウザへ渡らない不具合を修正しました。
これ以外iOSアプリについては今の所アップデートの予定はありません。

たぶんこの6本(これらにはAndroid版もあり計12本)が今後アップデートできるリミットかと…
なので、これら以外のアプリは随時サポートを終わらせて行く予定です。

ただし、「ひまわり君」と「SurfTide7」についてはとりあえずもう1度はアップデートします。
「SurfTide7」は3月末でサポート終了が決まっています。(Android版は1月末で終了)

iOSアプリ、まとめて6本アップデートしました!

  • 投稿:
  • 更新:2020年11月20日
  • by
  • in

iphone12_mini_02.jpg

以下iOSアプリ、まとめて6本アップデートしました!

  • タイドと波情報 SurfTideΔ
  • 天気と風と波
  • ウォッチ用タイドグラフ - SurfTideWatch
  • 全国の道の駅を検索 - RS Station
  • 世界のタイド表示 e-tide
  • 波乗り目覚まし - Surf’s UP

新しい iPhone12シリーズで一部レイアウトが崩れていたのを修正しました。
また、デフォルトのブラウザをSafari以外に変更した場合、アプリからのリンクが正しくブラウザへ渡らない不具合を修正しました。
これ以外iOSアプリについては今の所アップデートの予定はありません。

たぶんこの6本(これらにはAndroid版もあり計12本)が今後アップデートできるリミットかと…
なので、これら以外のアプリは随時サポートを終わらせて行く予定です。

ただし、「ひまわり君」と「SurfTide7」についてはとりあえずもう1度はアップデートします。
「SurfTide7」は3月末でサポート終了が決まっています。(Android版は1月末で終了)

久しぶりに Windows のチューニングとかしてみた

IMG_1635.png

たぶん Windows7 から 8 に変わる時期に Windows は使うのもアプリを開発するのも辞めてしまったので、2012年位からWindowsは公私ともに使ってない。

わけあって、Lenovoの3年位前のノート(多分いま使ってるMacと同じ位の時期の発売)のセットアップをすることになって久しぶりにWindows(10)を触る羽目になった。メモリ4GでCPUもそれほど早くないやつなので動作は期待してなかったけど、あまりにも酷い…
購入してほぼ使ってなかった状態なので新品に近いんだけど、ぜんぜんまともに動かない…

しばらく使って無かったので、諸々最新アップデートを入れるも動かない…
いつまで経っても CPU100%以上(このマシンなんだか150%とかリソースモニタに表示されてわけがわからん??)

まぁ大抵この場合、なんかのウイルスソフトかディスクフラグメントの定期実行かWindowsUpdateがなんかしてるかの3悪のどれかか、もしくは全部だ。この辺は昔から全然変わってない。しかもあいかわらずリブート好きなOS。
このマシンの場合、それらに加えて Lenovo のわけわからんサービスがてんこ盛り。

結局2日かけてこれらを全部やっつけてやっとCPUが100%を切るようになったけど、あいかわらず単発的に稼働率が跳ね上がる…
だんだん嫌になってきた…
こんなの普通の人がまともに使えるのかなぁ??
Macなんて3年間ほぼなんのメンテもチューニングもしなくて普通に動いてる。iOSやらAndroidの開発やらでかなりハードに使い込んでるにもかかわらずね。

iPhone12 mini実機 と Simulator の iPhone12 mini

s_iPhone12_mini_01.png

5年ぶり位に新しいiPhoneにしました。前のがiPhone6sで既に2回バッテリー交換し未だ元気なんですけどね。

さておき、実機で自分のアプリを使ってなんかUIが崩れてるのに気が付きました。具体的にはAdmob表示がSafeAreaに被さってしまってるんです。
あれっ?ってことで、早速 XCODEを最新v12.2にして実機でテスト。
で、気が付きました。というか気が付かなかったが正解か…

画面サイズを取得して処理していたのですが、どうもiPhone12系 Simulator と実機ではサイズが違ってるようです。(by XCODE12.2)
シュミレータでテストしていたので、この誤ったサイズが前の iPhoneX系のサイズだったので気が付きませんでした。

以下デバッグログ

by Simulatorの iPhone12 mini
D:[Common:Com #78] : ★nativeSize: (1125.0, 2436.0)

By 実機の iPhone12 mini
D:[Common:Com #78] : ★nativeSize: (1080.0, 2340.0)

まぁ、サイズ依存で処理してた俺も悪いのですが、これらアプリを作った時はこんなにiPhoneのバリエーションが増えると思ってなかったですしね。

ってことで、既存アプリでわりと使われてるのはボチボチ修正してアップロードします。
やっとAndroidのアプリアップデートが全部終わったと思ったらこれだよ…
(´Д`) =3

s_71viwo7UTVL._AC_SL1500_.png

こやつですが、何故か設置している2台ともモーションセンサーの「未検出」を検出しなくなりました。
具体的には、このセンサーが感知するとライトをON、1分未検出となるとライトをOFFにするように設定していたのですが、検出でライトがONになるものの「未検出」を検出しない(?)ため、何時までたってもライトが消えなくなりました。

夜中にトイレに起きて、いつも通りそのまま寝ようかと思ったらライトはいつまでたっても煌々と明るいまま…
足下ライトにもう1つセンサーを入れてたのですが、そちらもやはり消えず…
なんで?
と、翌朝色々リセットしたり、出荷状態に戻して再設定したりするも全く改善せず。

未検出までにタイムラグがあり(だいたい1分位)、その設定と1分ってのがマズイのでは?
つまり、タイムラグの前に未検出チェックが入ってしまい機能しないのではと推測し、試しにラグより前に検出するよう0分に設定!
ビンゴ!

まぁこの推測があっているかどうかは解りませんが、後日販売元に問い合わせたところ

Shirai 様、

問題を報告していただきありがとうございます。
当社のエンジニアリングチームは、Amazonと緊密に連携して問題を解決しています。
解決策が決まり次第お知らせします。

一時的に使用する場合は、時間を0分に設定できます。この状況では、検出されないことが機能します。

だそうです。 まぁ結果オーライですかね。
ただ、この設定にすると、タイムラグの後即OFFになるので、ライトが消えるまでの時間が微妙に短いのよねぇ〜…
早く修正されることを願います。

なんだか、今はこの製品「この商品は現在お取り扱いできません。」になってますね。
なんか致命的な問題でもあったのか??

java.lang.NoClassDefFoundError

  • 投稿:
  • 更新:2020年11月11日
  • by
  • in

s_fall_down.png

あー、やってられねぇー…
古いAndroidアプリ、レギュレーション変更のため仕方なくアップデート作業すること数日…
修正そのものはたいしたことないんだけど、APIレベル上げたり、ライブラリ更新したりで、まともに動くようにする方が大変…

で、やっと動いたと思ったらこれだよ…

java.lang.NoClassDefFoundError

もうわけがワカメだ!
これ絶対 PlayStoreConsole側での問題だと思うんだけどなぁ。

この手の作業って全く不毛で、何か便利になるわけでもなくアップデートする気も失せるのよ。
あー、もう、Androidの開発やめたくなってきた…