DefaultLifecycleObserver や LifecycleEventObserver の使い方

あら。

DefaultLifecycleObserver や LifecycleEventObserver の使い方

Annotation that can be used to mark methods on LifecycleObserver implementations that should be invoked to handle lifecycle events.

Deprecated
This annotation required the usage of code generation or reflection, which should be avoided. Use DefaultLifecycleObserver or LifecycleEventObserver instead.

いつのまにか deprecated。

言われる通りに代わりのやつらを使います。

👉 DefaultLifecycleObserver  |  Android Developers 

👉 LifecycleEventObserver  |  Android Developers 

昔のコードを久々に開くといろいろな新しい発見があります。

👉 android - Do I need to call removeObserver for lifecycle, upon its onDestroy() event? - Stack Overflow 
👉 JakeWharton/timber: A logger with a small, extensible API which provides utility on top of Android's normal Log class. 


Error: ComponentProcessingStep was unable to process 'AppApplication_HiltComponents.SingletonC' because 'DefaultActivityViewModelFactory' could not be resolved.

Releases dagger-2.34
Dagger2.34 にアップデートしたら全くビルドが通らず。

Error: ComponentProcessingStep was unable to process 'com.example.eg.AppApplication_HiltComponents.SingletonC' because 'dagger.hilt.android.internal.lifecycle.DefaultActivityViewModelFactory' could not be resolved.

なんすかねこれ。

 

androidx.hilt:hilt-lifecycle-viewmodel が不要

Hmm, the androidx.hilt:hilt-lifecycle-viewmodel artifacts were deprecated in the Dagger 2.34 release in favor of native Hilt API. The missing DefaultActivityViewModelFactory class is no longer in the Hilt codebase.

You should be able to fix this using the instructions in the 2.34 release notes to upgrade to the new HiltViewModel API.

androidx.hilt:hilt-lifecycle-viewmodel アーティファクトはDagger 2.34リリースで非推奨となり、ネイティブHilt APIに切り替わりました。

👉 ComponentProcessingStep was unable to process '*Application_HiltComponents.SingletonC' · Issue #3257 · google/dagger

New breaking changes
The alpha androidx extension @ViewModelInject is no longer supported. @ViewModelInject has been deprecated since androidx.hilt 1.0.0-alpha03 and was removed in androidx.hilt 1.0.0-beta01. Hilt now falls back to the base activity/fragment default ViewModelProviderFactory (3778ee2)

Migration steps:
Users of @ViewModelInject can migrate to @HiltViewModel which was added in Dagger 2.31.

1. Add @HiltViewModel annotation to the class
2. Replace the @ViewModelInject annotation on the constructor with @Inject.
3. Remove @Assisted from the SavedStateHandle constructor parameter, if it exists
4. Remove the old androidx.hilt:hilt-lifecycle-viewmodel dependency from your build.gradle file

👉 Release Dagger 2.34 · google/dagger 

私の場合は、上記の手順を確認して build.gradle を修正でビルド通るようになりました。削除漏れです。

androidx.hilt:hilt-lifecycle-viewmodel artifacts were deprecated in the Dagger 2.34 release in favor of native Hilt API.

build ファイルの削除漏れが影響を及ぼすことが結構多くなりました、最近。


Play ストアから現在公開中のバージョンを取得する


アプリの更新を早く知りたいですよね!

現在公開されているバージョンを取得したいですよね!

HTMLに依存するのもアレなのですが、

やってみました。

jq にインスパイアされて作ったという

pup というのを使わせていただきました、便利です。

👉 ericchiang/pup: Parsing HTML at the command line 


~ % brew install pup

でフツーにいけますし。

そして、Playストア画面の下の方を目指してスクレイピングします。

fetch version name from google play store

いつものように curl -s から |(パイプ) でつないでパースします。

簡単にワンライナーで取得できます。

https://play.google.com/store/apps/details?id=com.ss.android.ugc.trill

弱点としましては、端末を広く細かく網羅してるアプリに対しては、

👉 Twitter - Apps on Google Play 

こうなる。

https://play.google.com/store/apps/details?id=com.twitter.android

https://play.google.com/store/apps/details?id=com.twitter.android

まあ、しかたないか。

おまけ

👉 macOS でスクリプトから通知を出す。 
👉 Google Play Console - Google Play のアプリ 
👉 【Playストア】今現在のアプリ更新時の審査日数を調べる方法