防災速報をアプリの通知で取得するかブラウザのアクセスで取得するか - Yahoo自治体向け 災害協定

私の場合、アプリの通知など受動的に待ってられません。

そんな「防災速報」や「災害情報」。

官公庁のサイトよりヤフーのサイトやサービスが利用しやすく間違いないように思います、

Yahoo!天気・災害 - 天気予報 / 防災情報

実際、インターネットを知り尽くしたYahooが作成するサービスです。

官公庁や地方自治体のセミプロが外注して作成するものとは、機能性、利便性で違いすぎますし、リアルタイムなデータを持っている地方自治体と協定を結んでいるので元々のデータ自体も間違いありませんし、最速でしょう。

Yahoo! JAPAN - 自治体様向け 災害協定

例えば、ある河川の水位情報も10分ごとに取れます。

河川水位情報 - Yahoo!天気・災害

自分の欲しい場所を表示したらブラウザショートカットをホームにアイコンとして置いておけば、ワンタップでいつでも見ることができます。

井野川の水位情報 - Yahoo!天気・災害

スマホが苦手なおじいちゃんやおばあちゃんにも最適です。

[Chrome]
|
[右上の3ドットボタン]
|
[ホーム画面に追加]

通知は全アプリOFFでもいいように思ったりします。

知らない番号からの電話や覚えのないインターホンなど意図せずアクセスしてくる情報にアクションしてもろくなことはありませんよね。

あと、おすすめは、ドコモユーザなら、無料で docomo Wifi を利用できるようにしておくべし。

ドコモユーザーが無料「docomo WiFi」を契約すべき3つの理由


Google Pixel3 の日本上陸のパターン

素のまま国内キャリアが販売

ドコモやソフバンの料金プランだけでの値引き競争になる?

日本国でのiPhone優勢な空気にGoogleの強制的なムチが入るか?

キャリアカスタムの Pie を載せて販売

NexusやPixelシリーズのAndroidのフラッグシップ端末で、これまで国内各キャリアは「素」でAndroidを出したことがあったか?

Galaxy Nexus のときは、ブロートなアプリをプレインストールしてドコモから販売された。

Nexus5(X) は1-2年後にイオンか知らんがマイナーSIMキャリアから販売された。

各キャリア開発陣が複雑になりすぎたAndroid OSを短期間にフォローできるか。

ベンダーカスタムで不具合頻発のソニエリ端末の衰退とかな。

GoogleのサイトからWEB直接販売されるか

割引なしの一括8-10万円程度で売るか?

売れると思う。

Google Pixel - 新しいスマートフォンがやってくる。

まとめ?

素のSIMフリー的なAndroidフラッグシップな端末Nexus/Pixel シリーズを使い続けてから、ベンダー&キャリアの手が入ったGalaxyを購入してみたときのクソ感。

明らかに、無駄な機能やアプリでユーザーを混乱させてる。

シンプルで洗練されたAndroid OSを日本国内で見せてやれよ。

なんつってな。

プレインストールアプリを削除する


関連ワード:  AndroidGoogle評判速報


Kotlin 1.3 で CoroutineScope

Kotlin 1.3 RC is Here: Migrate Your Coroutines! | Kotlin Blog

新しくこんなの出てます。


public interface CoroutineScope {

  /**
   * Returns `true` when this coroutine is still active (has not completed and was not cancelled yet).
   *
   * Check this property in long-running computation loops to support cancellation:
   * ```
   * while (isActive) {
   *   // do some computation
   * }
   * ```
   *
   * This property is a shortcut for `coroutineContext.isActive` in the scope when
   * [CoroutineScope] is available.
   * See [coroutineContext][kotlin.coroutines.experimental.coroutineContext],
   * [isActive][kotlinx.coroutines.experimental.isActive] and [Job.isActive].
   *
   * @suppress **Deprecated**: Deprecated in favor of top-level extension property
   */
  @Deprecated(level = DeprecationLevel.HIDDEN, message = "Deprecated in favor of top-level extension property")
  public val isActive: Boolean
    get() = coroutineContext[Job]?.isActive ?: true

  /**
   * Returns the context of this scope.
   */
  public val coroutineContext: CoroutineContext

}

新しいコルーチンのスコープです。

すべてのコルーチンビルダーは CoroutineScope の拡張となり、これを継承したコルーチンコンテキストは自動的にすべての要素にキャンセルを伝えることができます。

これを使って、アクティビティのライフサイクル周りを実装します。


class MyActivity : AppCompatActivity(), CoroutineScope {

  lateinit var job: Job

  override val coroutineContext: CoroutineContext
      get() = Dispatchers.Main + job


  override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    job = Job()
  }


  override fun onDestroy() {
    super.onDestroy()

    // すべての子ジョブが destroy されたあと
    // 自動的にキャンセル
    job.cancel() 
  }


  // Activity が destroy されるか、このメソッド内で、例外が
  // 発生すると、すべてのネストしたコルーチンはキャンセルされる

  fun loadDataFromUI() = launch { // メインスレッドで起動

    val ioData = async(Dispatchers.IO) { // IOコンテキストで起動
      // ブロッキング I/O 処理
    }

    //  I/O の結果を wait
    val data = ioData.await()

    // メインスレッドで描画
    draw(data) 
  }
}

簡単な記述で、ネストしたコルーチンすべてを自動的にキャンセルしてくれるのです。

Kotlin 1.3 RC is Here: Migrate Your Coroutines! | Kotlin Blog

Using Kotlin Coroutines in your Android App