#61 2019-03-31
Google I/O 2019のスケジュールが公開、お気に入りのAndroid Studioプラグイン、Android Qにおける外部ストレージの死、など。
Kotlin拡張関数を使った設計
GitHubで見るhttps://medium.com/@elizarov/extension-oriented-design-13f4f27deaee
Kotlinの拡張関数によって、自分達で定義したユーティリティメソッドがあたかも標準で提供されたインスタンスメソッドのように使えるだけではなく、たとえばinterfaceを定義するときにも有用である、という話のようです。
Emulator 29.0.0 Canary
GitHubで見るhttps://androidstudio.googleblog.com/2019/03/emulator-2900-canary.html
AR用に事前に記録したモーションを実行できるようになったようです。
一時的なLogメソッドを書かずにデバッグする方法
GitHubで見るhttps://medium.com/@elye.project/debug-without-using-temporary-log-in-android-studio-91d9394a1e94
Android Studioの機能(正確にはIntelliJの機能ですが)でブレークポイントにヒットしてもスレッドを止めず、かわりに任意のコードを実行する機能があるそうです。いちいちコンパイルし直すのも面倒、しかしブレークポイントで止めると再現しない、という場合に便利そうです。
Android 8+でUIスレッド以外からViewを触れたバグ
すでに修正されたようですが、Android 8で入った変更により
View#invalidate()
がUIスレッド以外から実行されても例外を起こさないケースがあったようです。Kotlin推しだったGroovyのコミッタがプロジェクトを降りる
GitHubで見るhttps://melix.github.io/blog/2019/03/goodbye-groovy.html
ややゴシップめいた情報ですが、Kotlin推しでGradleチームのGroovy PMCだったソフトウェエンジニアが、Groovyコミュニティからの批判を受けてGroovyプロジェクトを降りたそうです。
書きやすいエディタのUIデザイン
GitHubで見るhttps://techlife.cookpad.com/entry/2019/03/29/115500
iOSの事例ですが、サジェストやUIの見せ方などでレシピ入力の簡素化をしており、参考になりました。
お気に入りのAndroid Studioプラグイン
GitHubで見るhttps://www.reddit.com/r/androiddev/comments/b61fkr/whats_your_favorite_android_studio_plugin/
ADB IdeaやAndroid Drawable Importerに混じってnyan-progressbarやRainbow Bracketなどが挙げられています。
経済的なコード生成
https://jakewharton.com/the-economics-of-generated-code/
コード生成時のメソッドカウントやdexサイズを減らすための工夫について書かれています。
GitHubで見る-
なお、economicsの訳語としてこのタイトルが適当か自信がありませんが、たまたま日本語の「節約」に近い感じがしておもしろかったので「経済的」と訳しました。英語の単語としては「系」に近い意味もあるので、ちょっと乱暴な訳かもしれません :bowing_man:
-
Android Qにおける外部ストレージの死
https://commonsware.com/blog/2019/03/25/death-external-storage-what-now.html
https://commonsware.com/blog/2019/03/26/death-external-storage-can-haz-file.html
https://commonsware.com/blog/2019/03/27/death-external-storage-stay-away-files.html
https://commonsware.com/blog/2019/03/28/death-external-storage-why.html
https://commonsware.com/blog/2019/03/29/death-external-storage-where-google.htmlやや過激なタイトルですが、安定のThe Commons BlogがAndroid Qにおける外部ストレージの権限まわりの変更と、それへの対応、さらになぜこういう変更が入ったと思われるか、についてまとめてくれています。
GitHubで見る-
自分の理解が及んでいないのかもしれませんが、だいたいのユースケースでは
MediaStore
経由で共有の写真/動画フォルダにファイルを読み書きできそうに思えました。
-
ObservableFieldからLiveDataへ移行する
LiveDataが
Transformations
をサポートしていること、RoomやWorkManagerなど多くのArchitecture Componentsがサポートしていることなどから、ObservableFieldからLiveDataへの移行が推奨されているようです。なぜKotlin Nativeが必要なのか
GitHubで見るhttps://medium.com/android-things/why-we-need-kotlin-native-adacc03e988c
Flutter, React Native, Kotlin Nativeを比較して、著者はKotlin Nativeが既存のSDKを補完しコードを共通化するための一番良い方法であると結論づけているようです。
61歳の方がnyan-progressbarを入れて、なんでこんなのが人気なのか分からないと言っているのが微笑ましかったです