#29-20180812-20180818
Google I/O 2018のAndroidアプリのソースコードが公開、UberがDagggerを簡単に使えるDIライブラリMotifを公開、Firebaseが大幅アップデート、など。
Kotlinでのcompositionとdelegation
GitHubで見るKotlinの拡張関数を乱用するには
https://www.philosophicalhacker.com/post/how-to-abuse-kotlin-extension-functions/
釣りっぽいタイトルですが、こういう拡張関数の使い方は間違ってるよ、というのをGoogle I/Oアプリのコードを例にして示しています。
拡張関数云々、というよりも本質的には設計よりの話です。GitHubで見る-
去年の記事なので、参考にしているGoogle I/Oのコードはこのあいだ公開されたものではないようですね。何も考えずに拡張関数を生やすのは Utils クラスや Helper クラスを作るのと変わらないというもっともな話でした。
-
coroutinesのKotlin Native実装(WIP)
GitHubで見るhttps://github.com/Kotlin/kotlinx.coroutines/commit/ebbea841082aee40eaa49db6bd7861004a7dc961
待望(?)のKotlin Native向けのcoroutines実装が始まっているようです。
RxAndroid 2.1.0で追加されたパフォーマンス向上の仕組み
GitHubで見るhttps://medium.com/@sweers/rxandroids-new-async-api-4ab5b3ad3e93
https://androiddagashi.github.io/issue/24-20180708-20180714/ でも触れた VSYNC をスキップする変更がRxAndroid 2.1.0で入ったようです。ところで、さいきんのUberを見ていると、やはり力があるなと感じます。
Firebaseが大幅アップデート
GitHubで見るhttps://firebase.googleblog.com/2018/08/in-app-messaging-crashlytics.html
https://jp.techcrunch.com/2018/08/17/2018-08-16-google-firebase-adds-in-app-messaging-jira-integration-new-reports-and-more/In-App Messagingの追加やCrashlyticsのデータをBigQueryにエクスポートできるようになったり、いろいろはかどりそうです。
BLE経由で難聴をサポートする音声ストリーミングのスペックに対応
GitHubで見るhttps://android-developers.googleblog.com/2018/08/streaming-support-spec-for-hearing-aids_16.html
詳しくは理解していませんが、補聴器用のスペックをサポートしているようです。とくに音声ストリーミングを提供している開発者は興味を持つかもしれません。
趣味のプロジェクトでモチベーションを維持するには
https://ninichimusic.com/blog/2017/5/30/how-to-stay-motivated-to-complete-your-indie-project
https://www.reddit.com/r/androiddev/comments/9775vv/how_to_stay_motivated_to_complete_your_indie/GitHubで見る-
趣味プロジェクトを投げ出してしまう気持ちはすごく分かります(自分の趣味プロジェクトのToDoを眺めながら)
-
UberがDagggerを簡単に使えるDIライブラリMotifを公開
ちゃんと読んでいませんが、ネストしたスコープを簡単に扱いたいという動機のようです。
GitHubで見る-
コード生成のためのコードを生成する、というのもなんか面白いですねw
redditでの反応はこちら
https://www.reddit.com/r/androiddev/comments/97g7fg/motif_new_di_library_from_uber_abstraction_over/
-
compositionでdelegationを使うのはとてもいいと思いますが、dataクラスはopenにできないから、という理由はちょっと不安になりました。また、そのあとのgetValue/setValueを実装するハックもやややり過ぎに見えました。SuperheroとPersonがis-a関係かどうか、ということを考えてinheritanceにするかcompositionにするか決める方がいいのではないでしょうか。