【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 の使い方 


@SuppressWarnings て使っていますか。

@SuppressWarnings

GitHub で調べてみると以下が多く見られます。


@SuppressWarnings("unused")


@SuppressWarnings("deprecation")


@SuppressWarnings("unchecked")


@SuppressWarnings({"unchecked", "deprecation"})

引数の文字列には他にもいろいろかいてますけども。コンパイラにもよるのだろうけど。

認識されない警告名があってもエラーにはなりません。コンパイラは、認識しないすべての警告名を無視しなければいけません。

👉 SuppressWarnings (Java Platform SE 8 ) 

以下、数個ぐらいは頭に入れておきます。

unused :
使用されていない変数やメソッドが存在した場合の警告を無視する。

deprecation :
使用すべきでないクラスやメソッドを使用したときの「unchecked」警告を無視する。

unchecked :
安全でない型のカーストなどの場合の「unchecked」警告を無視する。

serial :
直列化可能なクラスにserialVersionUIDが未定義の時の警告を無視する。

👉 eclipse - What is the list of valid @SuppressWarnings warning names in Java? - Stack Overflow 

しかし、まあ、あんまり使わないほうがいいですよね。

suppress
他動 〔好ましくないものを力ずくで〕鎮圧する、抑圧する

👉 suppressの意味・使い方・読み方|英辞郎 on the WEB 

👉 java - @SuppressWarnings vs @SuppressLint - Stack Overflow 

👉 Opt-in requirement marker annotation on override requires the same marker on base declaration 


iPhoneアプリ ランキング まとめ【2022】

どこで人気アプリ探したらいいのか分からないのでメモ。

ランキングのみ。

app.sensortower.com
👉 Top Grossing Apps | JAPAN | Top App Store Rankings for iOS 

 

Japanで最も人気のあるiPhoneアプリランキング | シミラーウェブ
👉 Japanで最も人気のあるiPhoneアプリランキング | シミラーウェブ 

 

App Store Top Charts Ranking for iPhone Apps | AppFollow
👉 All categories — App Store Top Charts Ranking for iPhone Apps in JP | AppFollow 

 

Top Apps for iPhone on the iOS App Store in Japan · Appfigures
👉 Top Apps for iPhone on the iOS App Store in Japan · Appfigures 

 

Today’s Top App {chart} | data.ai
👉 Today’s Top App {chart} | data.ai 

 

iPhoneアプリランキング
👉 iPhoneアプリランキング 

 

人気の無料iPhoneアプリランキング - Top App Ranking 400
👉 人気の無料iPhoneアプリランキング - Top App Ranking 400 

 

無料アプリランキング - iPhoneアプリの世界ランキング | APPLION
👉 無料アプリランキング - iPhoneアプリの世界ランキング | APPLION 

 

APP STORE AWARDS 2021 トップApp ランキング:App Store ストーリー
👉 APP STORE AWARDS 2021 トップApp ランキング:App Store ストーリー 

 

APP STORE AWARDS 2021 トップゲーム ランキング:App Store ストーリー
👉APP STORE AWARDS 2021 トップゲーム ランキング:App Store ストーリー 

 

APP STORE AWARDS 2021 トップApple Arcadeランキング:App Store ストーリー
👉 APP STORE AWARDS 2021 トップApple Arcadeランキング:App Store ストーリー 

 

BEST OF 2020 トップApp ランキング:App Store ストーリー
👉 BEST OF 2020 トップApp ランキング:App Store ストーリー 

 

BEST OF 2020 トップApple Arcadeランキング:App Store ストーリー
👉 BEST OF 2020 トップApple Arcadeランキング:App Store ストーリー 

 

BEST OF 2020 トップゲーム ランキング:App Store ストーリー
👉 BEST OF 2020 トップゲーム ランキング:App Store ストーリー 

情報を一画面に圧縮したような国産のサイトが人気のようですね。

👉 iOS App Store の最も使えるアプリURLはどれ?