iOSアプリが想定通りに動かないときは、カレンダーの設定を疑ってみる
iOS向けのアプリで MisFit と JetStar が変な動きをしていたので色々調べたところ「暦の設定が和暦だと正しく動かない」ことが判明しました。
※このネタでは 2015年11月時点で Pebble Classic にて発生中の「 MisFit の記録が時刻がずれる」という、おそらくタイムゾーンの不整合と思われる事象は解決しませんのでご注意ください。
MisFit アプリの場合はこんな感じ。
- Pebble 側から iPhone 経由で同期させても iPhone アプリ側の表示が更新されない。
- しかし MisFit のサイトにログインすると更新したデータが正しく表示される。
- iPad に MisFit だけインストールしてみると、iPad では更新データが正しく表示される。
JetStar アプリの場合はこんな感じ。
- 日付の年表記が 4003 年になる。
なんでやねん、と思っていたのですが、4003 - 2015 = 1988 ですよね。
1988 というのは平成元年の1年前、つまり平成ゼロ年ですわ。
ああ、なるほど、これは現在の年である 2015 に対して、西暦和暦変換のための 1988 が足された結果、4003 年と勘違いしておるわけですね。
たぶん、和暦設定された iPhone 上の MisFit は現在の年が 4003 年だと認識した挙句、Pebble の MisFit アプリがクラウド側に同期したデータを受信した際に「これは過去のデータだ」と判定したので表示できん訳ですね。
しかし、西暦設定された iPad はそういう誤解が起きないので正しく処理できる、と。
アプリ側が西暦以外の暦に対応できていない場合は、こういう残念なことが起きる訳ですね。