#46 2018-12-16
Android Studio 3.4 Canary 8がリリース、再びJCenterまわりでトラブルが発生、悪意のある偽装ライブラリを意図せずにアプリに入れてしまった話、など
Android PieでのKeyStoreの新機能
GitHubで見る悪意のある偽装ライブラリを意図せずにアプリに入れてしまった話
GitHubで見るhttps://blog.autsoft.hu/a-confusing-dependency/
簡単に要約するとJitPackで提供されているライブラリを使おうとしたら、同じgroup ID、同じartifact ID、同じバージョンの悪意のある偽装ライブラリがJCenterにあったため、そっちを知らず知らずのうちに使ってしまったという問題です。
build.gradle
のrepositories
に書いた順にチェックするので、こういう問題は発生し得ます。Google DriveのAndroid向けAPI/SDKの提供が2019/12/06で終了
https://cloud.google.com/blog/products/application-development/sync-google-drive-files-to-apps-using-the-drive-rest-api-bidding-farewell-to-the-drive-android-api
https://www.reddit.com/r/androiddev/comments/a5mn2u/psa_google_drive_android_apisdk_will_shutdown_on/Drive Android APIではなくDrive REST APIを使ってね、ということのようです。
GitHubで見る-
https://developers.google.com/drive/android/deprecation
Drive Android APIのドキュメントの方をみると、「アプリのデータフォルダを同期する機能」は将来的に完全になくなるようです。移行先はCloud Firestoreなど、Driveでないソリューションになりそうです。
-
WorkManager 1.0.0 alpha 13がリリース
GitHubで見るhttps://developer.android.com/jetpack/docs/release-notes#december_12_2018
さいきん毎週のように出ている気がしますが、今回はKotlinの
Result
クラスと衝突しないように内部クラスにしただけのようです。中の人も大変ですね……。Android Studio 3.4 Canary 8がリリース
GitHubで見るhttps://androidstudio.googleblog.com/2018/12/android-studio-34-canary-8-available.html
Resource Managerという機能が追加され、drawableのbulk importやレイアウトの一覧が見れるようです。
AOSPにFuchsiaサポートが追加
https://9to5google.com/2018/12/11/aosp-fuchsia-sdk-device/
公式エミュレータのサポートに引き続き、AOSPにコードが入ったらしいです。近いうちに何かリリースがあるかもしれません。
GitHubで見る-
redditのr/androiddevの反応はこちら
https://www.reddit.com/r/androiddev/comments/a5bgvg/android_open_source_project_now_includes_the/ -
実際にSDKを使ってみた記事はこちら。
https://9to5google.com/2018/12/14/fuchsia-friday-sdk-download/
-
Google+の代替となるベータテスト用のコミュニティサービス
https://www.reddit.com/r/androiddev/comments/a550sn/alternative_to_google_for_beta_testers/
Google+のシャットダウンに伴い、ベータテスト用のコミュニティサービスの代替に困っているようです。Googleがベータテストに使いやすいと宣伝していたことを思うと気の毒になります。
GitHubで見る-
Redditで聞いたせいか、Redditという答えが多いのに笑ってしまいました
-
Foregroundサービス
GitHubで見るhttps://android-developers.googleblog.com/2018/12/effective-foreground-services-on-android_11.html
Power seriesの第4回です。今回はプロセスがkillされるときの優先順位とForegroundサービスをどういうときに使うべきかの解説です。一般にForegroundサービスを使うべきでない例が"Alternatives"に載っているので、自分のアプリの使い方が該当しないか見ておくと参考になりそうです。
再びJCenterまわりでトラブルが発生
GitHubで見るhttps://issuetracker.google.com/issues/120759347#comment27
https://twitter.com/bintray/status/1072275597315923971どうやらGoogleからJCenterに対してGoogleのレポジトリをホストしないように要求した結果、Google側のレポジトリでライブラリが見つからないという問題が発生したようです。
一時的な回避方法としては bintray のURLを直接指定する方法があります。
https://issuetracker.google.com/issues/120759347#comment24Daggerがビルド時間の短縮に関してアンケートを実施中
Help make #Dagger faster: a usability survey of generated code
— Ron Shapiro (@rdshapiro) 2018年12月10日
We're considering pursuing a new mode for code generation & we'd like to understand how users interact with generated code to inform our decision. Help us with this quick survey!https://t.co/MsYulJsmqJどうやらバイトコードを直接生成するモードの実装を検討しているようです
https://docs.google.com/forms/d/e/1FAIpQLSckB8JzYFdz3nONYn24nTVXibU3bbBuA8z46L8jgv0ULjUcUw/viewformGitHubで見る-
バイトコード生成のアイデア自体は2018年8月くらいからあったようです
https://github.com/google/dagger/issues/368#issuecomment-413064042 -
Daggerに関しては、自分はそんなに生成コードを見ることはないのでなくてもいいかなという気はしますね。ビルドが速くなるなら歓迎です。
-
なお Gradle 5.1 で導入された
Matching repositories to dependencies
を使えばこの問題は回避できそうです。詳しくはこちらの記事をどうぞ。https://satoshun.github.io/2018/12/gradle_deps_match/
余談ですが、さいきんのJCenterがらみの問題はJCenterだけの問題ではないにせよちょっと不信感を覚えます
ハッシュ値を確認して、間違ったライブラリをダウンロードしないGradleプラグインもあるようです。
https://github.com/signalapp/gradle-witness