GitHub Code Search (Preview) の カスタムスコープ は強力 - cs.github.com

どこが新しくなったのか謎でしたが。

👉 GitHub Code Search (Preview) hatena-bookmark

「カスタムスコープ」機能が強力です。

分かりづらいとこにあるので見逃していました。

https://cs.github.com/

記述例に従って作成した自分のお気に入りスコープを複数保存することができます。

GitHub Code Search - cs.github.com

デフォルトに指定しておけばページを開いたときはそれが既に指定されています、

GitHub Code Search - cs.github.com

ちなみに、以前は検索できなかった記号も検索できるようになってます!
GitHub Code Search - cs.github.com

GitHub Code Search は、検索結果の並び替えをつけないことなど、こだわりのポリシーが感じられます。

期待できます。


【Kotlin】そのアプリが、フォアグラウンドになったとき、フォアグラウンドであるかどうか、を検知・検出する

現在、絶賛?キャンペーン中ですかね。

アプリ起動時広告は、アプリの読み込み画面を収益化することを望むパブリッシャー様を対象とした広告フォーマットです。この広告は、ユーザーがアプリをフォアグラウンドに移動すると表示され、いつでも閉じることができます。

アプリ起動時広告は、アプリの読み込み画面を収益化することを望むパブリッシャー様を対象とした広告フォーマットです。この広告は、ユーザーがアプリをフォアグラウンドに移動すると表示され、いつでも閉じることができます。

👉 アプリ起動時広告  |  Android  |  Google Developers 

眺めてましたよ、おぼつかないサンプルコードを。

複数のコールバックたちに苦しみながらサンプルコードを容赦なく大幅改変していく様子が、API設計の難しさを表してると思います。

今回は、

「アプリがフォアグラウンド(可視状態)になったら何らかの処理をする。」

というやつ関連を抽出しておきます。


class MyApplication : Application(), Application.ActivityLifecycleCallbacks, LifecycleObserver {

  override fun onCreate() {
    super.onCreate()

    ProcessLifecycleOwner.get().lifecycle.addObserver(this)

  }


  @OnLifecycleEvent(Lifecycle.Event.ON_START)
  fun onMoveToForeground() {
    // Show the ad (if available) when the app moves to foreground.

    // do something

  }

👉 googleads-mobile-android-examples/MyApplication.kt at master · googleads/googleads-mobile-android-examples 

Deprecated なのを置き換えて、継承から外します。


ProcessLifecycleOwner.get().lifecycle.addObserver(
  object : DefaultLifecycleObserver {
    override fun onStart(owner: LifecycleOwner) {
      // do something
    }
  }
)


便利ですねこれ。

あと、

「アプリがフォアグラウンド(可視状態)かどうか。」

というやつ。


val foreground: Boolean
  get() = ProcessLifecycleOwner.get().lifecycle.currentState.isAtLeast(Lifecycle.State.RESUMED)

ここは、「RESUMED」でいいのか知らんが、試せばいいか。

👉 DefaultLifecycleObserver や LifecycleEventObserver の使い方 


【Google Admob】Inline Adaptive Banner (インラインアダプティブバナー)

今、現在日本語での説明ページはありませんが登場しています。

Inline adaptive banners

👉 Inline adaptive banners  |  Android  |  Google Developers 

 

特徴

バナーの幅を指定する。画面全幅に最適。

バナーの高さがこれまでのアダプティブバナーより大きくなる。最大値で制限も可能。

スクロールする画面にも配置できる。

300x250 サイズのバナーの代替を担うのでしょうか。

スクロールする縦長の文章画面などにいいと思われます。

 

実装

変わるのは AdSize の取得部分のみ。


// Adaptive Banner
adSize = AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(context, 320)

↓

// Inline Adaptive Banner
adSize = AdSize.getCurrentOrientationInlineAdaptiveBannerAdSize(context, 320)

その他はすべて、これまでの Admob アダプティブバナー実装と同じ。

AdSize.getCurrentOrientationInlineAdaptiveBannerAdSize
👉 顔文字/絵文字辞書 単語リスト - Google Play のアプリ 

最近、SDK APIの仕様設計とか説明とか雑になってないか。

👉 公式 android デベロッパー の英語ページに日本語ページが遅れてる件 hatena-bookmark