#90 2019-10-20
R8によるenumの最適化, Ionic React, Slackにおけるコード共有, Gesture Navigationサポートの手引, ユニットテスト書いてる人どれくらいいる?, など
!!はアンチパターンなのか論争
GitHubで見るPeople who tell you that !! is an anti-pattern in Kotlin but who don't also include ?. and ?: as anti-patterns aren't worth listening to. In reality, they're all fine and, like all things, you just need to learn when each is appropriate (including requireNonNull and checkNonNull)
— Jake Wharton (@JakeWharton) October 13, 2019Jakeが以前から主張していることですが、以前に比べると賛同者が多いように見えます。
R8によるenumの最適化
GitHubで見るhttps://jakewharton.com/r8-optimization-enum-ordinals-and-names/
JakeのR8 Optimizationシリーズです。今回はenumの
ordinal()
やname()
の最適化について解説しています。IonicがReactのサポートを発表
https://ionicframework.com/blog/announcing-ionic-react/
IonicはWeb技術でクロスプラットフォームなアプリ開発ができるフレームワークです
GitHubで見る-
以前はCordovaベースでしたが、最近はCapacitorという独自開発のエンジンの上で動いているようです
-
Now in Android エピソード6
GitHubで見るhttps://medium.com/androiddevelopers/now-in-android-6-dd7d1aca1361
- Room 2.2.0等今週リリースのAndroidXのステーブル/ベータ版紹介
- Droidcon NYCのビデオ
- Android Dev Summitのライブストリーミングや公式アプリ
- ジェスチャーナビゲーションの対応方法
- アクセシビリティのドキュメント改善
Slackにおけるコード共有
https://slack.engineering/client-consistency-at-slack-beyond-libslack-c9cfbe778fb7
以前AndroidDagashiでも紹介した、DropboxがC++でのロジック共有をやめた話に触発された記事のようです。
Libslackという名前のC++ライブラリでAndroid/iOS間のロジック共有を行っていたようですが、最近やめたそうです。
Slackの場合は、すでに存在したAndroid/iOSアプリをリファクタする形でコード共有を進めていったのが問題をややこしくする一因だったとか。GitHubで見るGesture Navigationサポートの手引き Part 3:干渉の回避
https://medium.com/androiddevelopers/gesture-navigation-handling-gesture-conflicts-8ee9c2665c69
前回から間が空きましたが、Chris BanesによるGesture Navigationをサポートする上での解説シリーズのパート3です。今回はアプリのUIとGesture Navigationが干渉する場合の回避方法についてまとめてあります。
GitHubで見る-
フローチャートが便利ですが、ViewPagerについて「対応の必要なし」になるのはちょっと不思議でした。自分はGesture Navigationをオンにしていますが、たまにViewPagerと干渉してすこしストレスを感じます。
-
Gesture Navigationサポートの手引き Part 4:Immersiveモード
GitHubで見るhttps://medium.com/androiddevelopers/gesture-navigation-immersive-modes-43f2d37a925d
Chris BanesによるGesture Navigationの解説パート4です。今回が最終回でStickeyとNon-Stickeyの2つのImmersive Modeについて解説しています。
Storage Access Framework (SAF)の基本
https://commonsware.com/blog/2019/10/19/scoped-storage-stories-saf-basics.html
Scoped Storageの導入によって今後重要性が増すと思われるStorage Access Framework (SAF)についての解説です。具体的なコードもあって分かりやすいです。
GitHubで見る-
ところで、恥ずかしながら、この記事を読むまでUriが1つのアクティビティ内でしか利用できないというのを知りませんでした……
-
KotlinのDelegatesを使ってカスタムViewを作る
https://blog.autsoft.hu/better-custom-views-with-delegates/
https://www.reddit.com/r/androiddev/comments/dj7c8f/better_custom_views_with_delegates/GitHubで見る-
一番最後に書いてある、カスタムDelegateを作って子Viewの振る舞いと親Viewのgetter/setterメソッドを紐付けるのはなかなかおもしろそうでした
-
Android NDK r21
GitHubで見るhttps://android-developers.googleblog.com/2019/10/introducing-ndk-r21-our-first-long-term.html
r21からLong Term Supportの概念が取り入れられるようです
なおUbieではコーディング規約で
!!
は禁止しているようですhttps://github.com/ubie-inc/kotlin-coding-style
背景についてはこちら。