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


Gboard 日本語 12キー 左右のカーソルキーを使ってすばやく上下移動する方法

今まで、左右にしか動かなったカーソルキーが上下方向にジェスチャー(スワイプ)することで、縦方向にも移動できるようになっています。



英語キーボードのスペースキーのジェスチャー機能(左右のみ)に続いて、日本語12キーもすばやくカーソル移動できるようになりました。

まだまだ、この先の機能改善も期待できそうです。

Gboard - the Google Keyboard - Apps on Google Play