SurfTideWatch v1.0.2 申請中!

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

アプリ側処理のミスでタイドデータの更新が正しく処理されないケースがありました。
修正した新しいバージョン v1.0.2 を申請中で数日でアップデート可能になると思います。

v1.0.1 を利用の場合は「設定」から「全てのキャッシュを消去」してからタイドデータをアップデートすることで回避できます。
修正版が公開されるまでは上記の処理で回避して下さい。

SurfTTideWatch リリースしました

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

「SurfTideWatch」はAppleWatchでタイドグラフを表示するアプリです。
世界中の約10,000ヶ所のタイドポイントから利用するポイントをiPhoneで選択しAppleWatchと同期します。

簡単な使い方の動画を作成しました。
手っ取り早く使ってみたい方は、まず上記の動画で操作を確認してみて下さい。

タイドデータの同期はこの動画で説明している直接送信の他に、iCloudを利用してiPhoneとWatchが未接続でも同期できる方々もあります。詳しくはこちらのマニュアルを確認して下さい。

Watchにはそれほど多くのデータを保存できません。なので、Watchに保存できるタイドデータは5件までで、それぞれ2週間分のタイド情報を保存するようにしています。
なので、保存期間が終了する前に、iPhone側でタイドデータを再取得してWatchと同期する必要があります。

期間の終了が近づくと、Watchのタイドグラフ右下に数字で残日数が表示されます。iPhoneで管理しているWatchに送る必要のあるデータの中で残日数が2日になると対象データのアップデートが可能になります。
また強制的にキャッシュをクリアして更新することもできるので、旅行などのスケジュールにあわせて調整して下さい。

SurfTide for AppleWatch いけそうな感じです!

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

s_stw_001.jpg

シミュレーターではテストしきれないので、結局実機を購入してテストすることにしました。
開発するのに、なかなか癖がありますが、とりあえずは思ったように動いています。

iPhoneからのデータ同期はウォッチが接続状態だとダイレクトにタイドデータを送れます。
iPhoneと未接続の場合はiCloudに一端保存し、ウォッチがネットワークに接続できたタイミング(iPhoneが無くても)でデータを同期します。このiCloud経由のテストが実機でなくては出来なくて面倒でした。

とりあえず、近々ベータ版を一般公開できるので、先行して使ってみたい人はメール下さい。TestFlightを利用するので使い方が解る人限定です。

タイドデータは世界中から約1万ヶ所のタイドを選択できます。もちろんウォッチにはそんなに大量データを持てないので、iPhoneからお気に入りの5ヶ所のデータを選択することになります。場所は必要に応じて選択やウォッチでのリスト表示順を変更できます。
場所の選択は e-tide と同じUIを使ってるので Googleマップから選択することになります。

SurfTide for AppleWatch 作成中ですが...

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

SurfTideΔの付属ではなく、独立したアプリとして作成しています。Watchの実機が無いので完全なテストができなくて、リリースはしばらく先になるかと。

ベースに「e-tide」のデータを利用しているので、ポイントは世界中の約1万ヶ所のタイドが表示できます。全てをWatchに入れられないので、iPhone側で選択した数件までをWatchに転送できるようにしています。

現在はダイレクトにデータを送る設計になってますが、実機テストできれば iCloud経由でのデータ転送が可能になります。
これ、途中まで作ったんですが、何故かWatchシミュレーターでは iCloudが使えない…
デベロッパーにも買わせようという魂胆なのかなぁ…
最終的には実機でテストするにしても、それくらいはシミュレーターで出来てもよさそうなもんだけど。

「全国の道の駅を検索 - RS Station」のデータベースを2020年3月版に更新しました。
合わせて iOS版/Android版のアプリもアップデートしたので、データ単体のアップデートでもアプリのアップデートでも、データが最新版になります。


更新されたデータは以下になります。第51回分の道の駅追加で6駅が追加になり、そのうち4駅はすでにオープンしています。
また、第51回分にて未オープンだった4駅も既にオープンしています。

---
閉館していた駅が再オープン2駅
高田松原(岩手/2019/9)
熊野きのくに(三重/2019より土日だけ)
---
第50回分の新規オープン4駅
おおさき(宮城/2019/7)
西いなば気楽里(鳥取/2019/6)
人吉(熊本/2019/8)
のつはる(大分/2019/11)
---
第51回分の新規オープン4駅
遠軽 森のオホーツク(北海道/2019/12)
グランテラス筑西(茨城/2019/7)
野沢温泉(長野/2019/8)
伊豆月ヶ瀬(静岡/2019/12)
---
第51回分の新規オープン予定2駅
たかねざわ 元気あっぷむら(栃木)
筑前みなみの里(福岡)
---
以下2駅は引き続き休館中
フォーレスト276大滝(北海道)
風の丘米山(新潟)
---

Android10での問題(SurfTideΔ / RS Station)

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

s_Screenshot_1583387886.png

現在Android10で、アプリインストールの起動で、上記の画面のときに「常に許可」以外を選択すると、次の画面で操作不能になる問題が発生しています。  
「使用中のアクセス維持」を選択すると先に進みません。
「次回から表示しない」を選択すると次の画面で操作不能となります。
「常に許可」を選択すれば問題は出ません。

もし、「次回から表示しない」を選択してしまった場合は一端アプリを終了し、アプリのアイコンを長押しして「アプリの情報」を表示します。次に「ストレージとキャッシュ」を選んで「ストレージを消去」し、再度アプリを起動して下さい。
インストール後の状態に戻るので、「常に許可」を選択して下さい。

現在この問題を調査&解決中です。
Android9以下では発生しません。Android10のみの現象です。

追記:2030/03/05
対応済のバージョンをアップロードし公開しました。Android10を利用している場合は以下のバージョン以上を利用して下さい。

SurfTideΔ v1.2.2-R32
RS Station v1.6.1-R72

これらのバージョンからどれを選択しても正しく機能するように修正されています。

SurfTideΔ for iOS版で天気情報取得中希に落ちるバグに対応

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

s_std_sad_20200305.png

天気情報取得時に希に異常終了していたバグが特定できまし。現在 v1.2.4 を申請しているので数日で公開できると思います。
他、News取得時、ターゲットのニュースURLに不正なキャラクタ(主には漢字)が有る場合にも異常終了してバグも合わせて修正しました。(これはサーバ側でも対処済)
何れもiOS版のみのバグ修正になります。

この「希に」ってのが曲者で、毎回落ちるなら原因特定も早いんだけど「希に」だと問題の特定に時間がかかります。原因さえわかれば修正するのは簡単なんですけどね。

ここからはちょっと開発者向け

天気情報取得時のバグは完全にケアレスミスでした…
WEBサービスから取得した天気情報をCoreDataにキャッシュしている部分で、このメソッドそのものがスレッドなのに、それを考慮した作りになってませんでした。
同じような処理をしている「e-tide」では正しく実装しているにもかかわらずです(笑)

// appDelegate の抜粋
lazy var persistentContainer: NSPersistentContainer = {
    let container = NSPersistentContainer(name: "SurfTideDelta")
    container.loadPersistentStores(completionHandler: { (storeDescription, error) in
        if let error = error as NSError? {
            fatalError("Unresolved error \(error), \(error.userInfo)")
        }
    })
    return container
}()
---
これはミス(メインスレッドならOK)
↓
let context = self.appDelegate.persistentContainer.viewContext
---
Backgroundではこちらが正しい
↓
let context: NSManagedObjectContext = NSManagedObjectContext.init(concurrencyType: .privateQueueConcurrencyType)
context.parent = self.appDelegate.persistentContainer.viewContext

あともう1点ニュースの件
こちらは想定外というか、イメージURLに漢字(実際には①とか)があるときに「URL」でインスタンス化すると nil に…
ファイル名にそんな文字使うこと自体が変だとは思うんだけど(某官公庁のサイトデータ)落ちるのは頂けない…。なので、サーバーで不正文字を含むイメージURLは無効にするとともに、アプリの方でも対処ロジックを入れておきました。

SurfTideΔ / SurfTide7 での天気情報について

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

std_whether_20200305.png

現在(2020/3/5 AM10)天気情報の表示が3時間単位になっているかと思います。
これについての説明です。

過去に何度か報告したことがありますが、SurfTideΔ / SurfTide7 / SurfTideDeltaWidget のアプリは、iOS版Android版ともに WorldWeatherOnline のウェザーデータを有償で購入して利用しています。
このサービスですが年に何度かこのような状態になりますが、大抵は数日で復旧します。
毎回個別に何件が問合せがきますが、これはサービスの問題でアプリ側では対処しようがありません。
天気情報が表示表示されない場合はしばらく待って見て下さい。

リロードしてもサーバーキャッシュが有効な期間(約3時間)はサービスからデータを取得しません。 また、気象サーバーを変更しても、やはり大元のサービスが1時間毎のデータを吐かない限りは同じ現象となります。