Android

SQLiteでは集計とグルーピングの対象外のカラムでも、集計関数がMAXとMINの場合はそれらの行由来の値を返すことが保証されている(例外あり)

AndroidでSQLiteがバックエンドのJetpack Roomを使っていた時の話題。 SELECT column_a, column_b, column_c, MAX(column_d) FROM foo GROUP BY column_a このようなSQLにおいて GROUP BY に使われる column_a と、集計関数(この場合は MAX )に使われる co…

iOSシミュレーター・Androidエミュレーターにアプリをインストールだけする(起動までしない)方法

なぜ アプリの初回起動時専用の特別な処理や画面遷移を行うケースで、そのデバッグ実行・動作確認をするため。 iOS まずインストールするためのアプリは Build For Running でビルドしておく。次にシミュレーターを起動しておいて xcrun simctl install boot…

Accompanistの開発版のバージョニングが独特で、Renovateと相性が悪い

Accompanistとは Google公式の、Jetpack Composeを補完する拡張ライブラリーです。 Accompanistの開発版のバージョニング 直近の0.24系の開発版が次のようになっている。 v0.24.0-alpha v0.24.1-alpha v0.24.2-alpha v0.24.3-alpha v0.24.4-alpha v0.24.5-al…

AndroidのNotification Channels is 通知チャンネル OR 通知チャネル

Android O(Android 8.0)から追加されたNotification Channelsですが、これの日本語訳がぶれていてどっちで会話すればいいのか困っています。 「通知チャンネル」 https://developer.android.com/guide/topics/ui/notifiers/notifications.html?hl=ja#Manag…

2021年2月末でRxJava 2.xがEnd-of-Life (EoL)を迎えた

github.com ⚠️ This is the last planned update for the 2.x version line. After February 28, 2021, 2.x becomes End-of-Life (EoL); no further patches, bugfixes, enhancements, documentation or support will be provided by the project. これまでA…

`MenuItem.onNavDestinationSelected`と`android:menuCategory="secondary"`の関係

https://developer.android.com/reference/kotlin/androidx/navigation/ui/package-summary#(android.view.MenuItem).onNavDestinationSelected(androidx.navigation.NavController) By default, the back stack will be popped back to the navigation grap…

AndroidのFirebase Installations version 16.2.0で追加されたlintチェックがAndroid Gradle plugin 3.6と互換性がなくてビルドできない

Firebase OSSのこちらのIssueで報告されているように、Android Gradle plugin 3.6(Android Studio 3.6)以上のプロジェクトでFirebase Installations version 16.2.0が依存性に入るとlintでビルドが失敗するようになります。 追加されたlintというのはこち…

OkHttp 4.xと3.xでのバイナリ非互換の事例

Kotlinで書き直されたOkHttp 4.xはJavaで書かれた3.xと基本的にソース互換性・バイナリ互換性が保たれているが、バイナリ非互換でクラッシュするケースに遭遇した。https://t.co/ZE0VV1Gkwm— Sho Ikeda (@ikesyo) 2020年2月17日 具体的には、「OkHttp 3.xのJ…

Android公式のDagger導入ドキュメント

Android Dev Summit 2019の文脈でAndroid公式のDaggerに関するドキュメントやCodelabが出てきて取っ付きやすくなった感じがします。いいですね。 Dagger basics | Android Developers Using Dagger in Android apps | Android Developers Using Dagger in mu…

EpoxyでのモデルのID重複時の挙動

https://github.com/airbnb/epoxy/wiki/Epoxy-Controller#filtering-duplicates デフォルトではEpoxyは何もしなくて、DiffUtilが重複IDのものは無視するが、その時の動作は未定義、という感じの模様 Epoxy側で重複IDを検知して、後に登場したものを弾く(先…

Java Cryptography Extension(JCE)と、AndroidのBouncy Castleと、Spongy Castle

社内のSlackでSpongy Castleという名前を聞いて、知らなかったので少し調べてみました。 AndroidはJavaのJava Cryptography Extension(JCE)の仕組みに則っている AndroidではJCEのプロバイダーとしてBouncy Castleが提供されている Androidに乗っているBou…

関西モバイルアプリ研究会 in 関東で発表しました #関モバ

普段は京都や大阪で開催されている関モバが東京に上陸した!ということで発表してきました。 UISearchBar / UISearchController は結構カスタマイズしにくかったり、iOS 10とiOS 11で見た目が大きく変わり得たり、iOS 11で追加された UINavigationItem.searc…