#62 2019-04-07
Android Q Beta2、Android開発でもっと早く知っておけばよかったこと、CameraX Support Library、ViewCompiler、Kotlin CoroutinesのFlow APIプレビュー版、など
Android Emulator 29.0.1 Canary
GitHubで見るhttps://androidstudio.googleblog.com/2019/04/emulator-2901-canary.html
Foldableデバイスが使えるようになって、Qに必要なRAMサイズが2GBに上がったそうです。
Androidのイースターエッグを見つけたがGoogleに採用はされなかった話
GitHubで見るhttps://www.reddit.com/r/androiddev/comments/b9q0rx/how_i_discovered_an_easter_egg_in_androids/
DroidGuardを解析していたら「よく見つけたね。ここにメールを。」というメッセージを発見してメールしたけれど、とくに就職はできなかったという話です。経緯もおもしろいですが、DroidGuardが何をしているかという説明も興味深いです。
Kotlin Coroutines 1.2.0-alpha-2にFlow(cold streams)のプレビュー版が追加される
GitHubで見るhttps://www.reddit.com/r/androiddev/comments/b9dvxe/flowpreview_cold_streams_in_kotlin_coroutines/
https://github.com/Kotlin/kotlinx.coroutines/releases/tag/1.2.0-alpha-2プレビュー版なのでまだまだ仕様変更も多そうですが、ついにやってきました。
結構RxJavaに似たAPIに見えます。ViewCompiler
https://www.reddit.com/r/androiddev/comments/b9fy2p/android_q_beta_2_contains_a_new_experimental/
https://android.googlesource.com/platform/frameworks/base/+/master/startop/view_compiler/README.mdAndroid Q Beta2でLayout XMLをJavaコードにコンパイルするコマンドラインツールが追加されたそうです。
まだいろいろ制約が多いですが、実際に使えるものになったら面白そうです。GitHubで見る-
redditのスレを読むまで知らなかったのですが、Jake Wharton氏もなにやら
R.id.*
やR.layout.*
を消すための"なにか"を作っているようです -
スレッドでRomain Guy氏も指摘していますが、素のXMLではなくバイナリ化されているんですよね。ただinflate時にリフレクションが走ることは確かだと思うので、そこが削減できるならいいかもしれません。余談ですが、JakeもRomainも初耳みたいなのがちょっと面白いですね。
-
Android Dev Summit 2019の日程が発表
🚨 Big Announcement 🚨
— Android Developers (@AndroidDev) April 4, 2019
Something awesome this way comes. Save the date! Wait ... pic.twitter.com/bjd1afXedCとても分かりにくいですがGIF画像を解読すると Android Dev Summit が 10/23-24 に開催されるという内容のようです。
GitHubで見る-
途中で止めると "#AndroidDevSummit" という文字列と "4f 63 74 6f 62 65 72 20 32 33 2d 32 34" という文字列が読み取れます。後者はASCIIコードで"October 23-24"と読めます。
-
今週のAndroidXの更新
GitHubで見る-
目立つところだと
Annotation
の@ContentView
の挙動が変わって、代わりにActivityやFragmentのコンストラクタでレイアウトIDを指定できるようになったことでしょうか。DataBindingとActivityのコンストラクタ Layout Id指定を一緒に使う - stsnブログも参考になります。
-
CameraX Support Library
GitHubで見るhttps://events.google.com/io/schedule/events/8d400240-f31f-4ac2-bfab-f8347ef3ab3e
詳細は不明ですが、Jetpackにカメラ向けのライブラリが入るようです。
Android Q Beta 2
https://android-developers.googleblog.com/2019/04/android-q-beta-2-update.html
Beta 2が出ました。いくつかのAPIが追加されていますし、Foldableのエミュレータも使えるようです。
GitHubで見る-
Bubbles APIは要注目かもしれません。使いたい人は多そうです。
-
Androidのセキュリティおよびプライバシーレビュー2018年版
GitHubで見る生成コードの最適化
https://jakewharton.com/optimizing-bytecode-by-manipulating-source-code/
前回の続きで、Annotation ProcessorのようなJavaコードを生成するときに、さらにどのような最適化が可能か詳述しています。なかなか興味深い記事でした。
GitHubで見る-
ふだんは意識する必要ないことですが、Javaコードをどう書くと最適化されたバイトコードが生成されるか、というのはおもしろいですね。
-
ARTプロファイルを使ったアプリ起動の高速化
GitHubで見るhttps://android-developers.googleblog.com/2019/04/improving-app-performance-with-art.html
ユーザーも開発者も意識しないうちにアプリを高速化する仕組みについての解説です。匿名のアプリ利用時のプロファイル情報を集めて高速化するそうです。
Kotlin 1.3.30 EAP3がリリース
https://github.com/JetBrains/kotlin/releases/v1.3.30-eap-125
以前紹介しましたが、kaptのインクリメンタルビルドサポートが入ったりしています
GitHubで見る-
AndroidのNonNull/Nullableアノテーションもサポートされるようですね。YouTrackの該当issueを見ると、どうやらQをターゲットにしていてKotlin 1.3.30を使っていると、nullnessが違ったときにコンパイルエラーにしてくれるようです。
-
ずっとKotlin Multiplatform環境でも使えるRxがほしかったのですが、これでだいぶ捗りそうです
いちおうReactive Streams準拠なんですね。自分はちょっと使う機会なさそうですが興味深いです。