「全国の道の駅を検索 - 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時間毎のデータを吐かない限りは同じ現象となります。

全国の道の駅を検索 - RS Station for Android v1.6.0 リリース

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

s_rss_20200304.png

iOS版に続き、Android版もダークテーマに対応しました。
既に公開されているのでプレイストアにてダウンロード可能です。


国土交通省から、2020年(2019年度)の新駅も発表されており、前回データ整理した後でオープンした駅もいくつかあるので、そろそろデータを更新する時期です。
この作業結構面倒で… やろうやろうと思いつつもなかなか着手できません…
3月中にはなんとかやろうかと思ってます。

タイド&天気ウィジット - SurfTideDeltaWidget v1.2.0 公開されました

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

s_stdw_001.png

公開に手間取っていましたが本日公開されました。
Android版のSurfTideΔはウィジェットが別アプリとなっるので以下よりインストールして下さい。
このバージョンよりダークテーマに対応しているので、アピアランスを切り替えるとウィジェットも自動で変更されます。変更に少しタイムラグがあるので、即時変更したい場合はウィジェットをタップしてみて下さい。


手間取ってたのは、アップロードしたアプリのアイコンと、Store公開用のメタデータに設定したアイコンが微妙に違っていて(WIDGETの文字が有るか無いかの差異)それでGoogleよりストップがかかっていました…
もともと SurfTideΔ のオマケみたいなアプリだったので、同じアイコンにしていたのがマズかったみたいです。
いきなりの配信停止通知でビックリしましたが、Googleの担当とコンタクトをとって解決です。

見つかっちゃったらアウトみたいな感じですかねぇ??
最近はアップデートの度に審査が入るようなので発覚したのかも知れません。
ともあれ、無事に公開できてなによりです。

全国の道の駅を検索 - RS Station for Android ダークテーマ

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

s_Screenshot_1583232052.png

RS Station for Android も、まもなくダークテーマ対応版をリリースします。
ほぼ完了していて、現在最終ベータ版のアップロード待ちで、それでテストOKならリリースです。

iOS版では既に削除した近隣施設の検索機能ですが、Android版もPlacePickerが既にサービス終了となっています。現在のバージョンではかろうじて動いているけど、使えなくなるのは時間の問題だから、次にリリースするバージョンで削除しました。

これで最後のダークテーマの対応アプリとなります。iOSで3本、Androidで新規も含めると5本、全部で8本のアプリにダークモード(ダークテーマ)を実装しました。
さすがに、開発者がダークモードになりそうです(笑)

全国の道の駅を検索 - RS Station for iOS v1.6.0 リリース

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

s_Simulator Screen Shot - iPhone 11 Pro - 2020-03-02 at 06.30.43.png

ダークモードに対応した「RS Station for iOS v1.6.0」をリリースしました。
すでにAppStoreで公開済なので適時アップデートできます。

前回報告した通りで、このバージョンよりGoogle maps(PlacePicker)を利用した近隣の施設を表示する機能が削除されています。(iOS版のみ)

全国の道の駅を検索 - RS Station for iOS ダークモード対応中

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

s_Simulator Screen Shot - iPhone 11 Pro - 2020-02-29 at 10.50.34.png

さて、これでダークモード(ダークテーマ)対応アプリもiOS/Androidあわせて6本目です。いい加減同じような作業で飽きてきましたが、残りはこのアプリのAndroid版の1本のみです。 ってことで、iOS版については現在最終確認中なので近々公開できます。

それで1つ残念なお知らせです。
Google maps(PlacePicker)を利用して近隣の施設を表示する機能ですが、Googleでサービスが終了となり利用出来なくなりました。このバージョンではこの機能は削除しています。
Android版についてはそのまま利用できます。
Android版もサービス終了となっているので、次のv1.6.0で機能削除となります。

iOSダークモード対応でのTIPSというかメモを1つ。
特定のViewのレイヤーを角丸のボーダーをつけたりしてるのですが、XCODEのstoryboardのプロパティでボーダーやら角丸やらを設定することがあるかと思います。
これらプロパティも最終的にはレイヤーに作画されるので、アピアランスを切り替えるタイミングで自前で再作画をリクエストしないとダメです。気が付かずにちょっとハマった…
これも対象View(もしくはViewを保持するView/Controllerクラス)の「traitCollectionDidChange」でボーダーのカラー等を変更してやればOKかと。

// アピアランスの変更
override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) {
    super.traitCollectionDidChange(previousTraitCollection)
    if #available(iOS 13.0, *) {
        let hasChanged = previousTraitCollection?.hasDifferentColorAppearance(comparedTo: traitCollection) ?? false
        if (hasChanged) {
            // ボーダーを変更
            hogehogeView.layer.borderColor = UIColor(named: "hogehoge")
        }
    }
}