sky’s 雑記

主にAndroidとサーバーサイドの技術について記事を書きます

Android

LiveDataのこれまで

Coroutinesのアップデートが盛んに行われており、昨今のAndroid界隈でLiveDataからFlowへ乗り換える機運が高まっているように感じます。今一度Flowへの乗り換えをスムーズに行うためにもLiveDataが発表された経緯など歴史を振り返りたいと思います。 Archite…

kotlinx-coroutines-testのrunBlockingTestについて

前回に引き続きCoroutinesの単体テストの話です。 kotlinx-coroutines-testのDispatchers.setMainについて - sky’s 雑記 今回はrunBlockingTest[1]について取り扱いたいと思います。 ⚠理解が曖昧な状態で記述している可能性があります、間違いがあれば訂正お…

kotlinx-coroutines-testのDispatchers.setMainについて

Coroutinesの単体テストの話です、マルチスレッドな関数の単体テストを書いていると理解が曖昧なところがまだあるので改めて調べることにします。趣旨としてはCoroutineのテストを書くときに@BeforeでDispatchers.setMainを何故やる必要があるのかと何が行わ…

Kotlin 1.4.20-M2でDeprecatedとなったKotlin Android Extensionsを弔う

表題の通りKotlin 1.4.20-M2でKotlin Android ExtensionsがDeprecatedとなりました、個人的には好きな技術だったので弔いがてら記事にしたいと思います。 概要 Kotlin Android Extensions[1]はKotlin用のView参照機構で、findViewByIdによるViewの参照の問題…

AndroidにおけるJSR-310実装

ちょっとツイッターに流れてきた情報を見て気になったので改めて調べてみました。 これが凄く気になってて、本当に java.time API移行していいのかなぁ・・・ともにょってる https://t.co/XLwTNu9EuB— (@red_fat_daruma) June 3, 2020 TL;DL ThreeTenABPでJ…

ViewPagerからViewPager2に移行するときのちょっとした罠

ちゃんとした記事を書きたいけど投稿しないよりマシなので小ネタ投稿 ViewPagerを0以外のpositionで起動したいときに以下のようにすると思う. view_pager.currentItem = 1 内部的にはsetCurrentItemInternalのsmoothScrollという値にfalseが渡っていてこれ…

Firebase Remote Configの挙動について

Remote Configは便利なんですが雰囲気で使うと思ったように動かなかったりするのでちゃんとまとめようと思います. TL;DL fetchAndActivateをするとremoteの値がローカルに保存され参照可能となる ローカルキャッシュの期限は最短でも12分でそれ以上の頻度で…

KoinとDagger2のパフォーマンスについて その1

唯一Koinが優位に立っていたと思っていたラーニングコストについてもDagger Hiltがリリースされ消え去ろうとしていますが,引き続きKoin利用勢としてDIライブラリの仕組みについて見ていこうと思います. 導入 以下のライブラリでKoinとDagger2の速度につい…

koinのインスタンス管理について

Android開発していて体験的に特に不満はないんだが,単体テストの書き味だけはrspecに劣るなと思っている.特にfactory_botによるテスト用のオブジェクト生成はtraitによる拡張とか含めシンプルで好きだった.サーバーサイドだとDBという状態の塊をテストする必…

Spekラムダ内でKoinモジュールをinjectする

Androidのユニットテストネタ. TL;DL KoinTestを継承したRootクラスと、それをレシーバとするラムダを引数に持つ抽象クラスを実装する。 class KoinRoot(val root: Root) : KoinTest, Root by root abstract class KoinSpek(koinSpec: KoinRoot.() -> Unit) …

Android SDK platform toolsを手元でビルドするときの覚書

droidkaigiのissueにあがってたSHA256withDSAでapkに署名できない問題を調査したときの派生ネタ。 replace SHA256withRSA debug.keystore by sdsd08013 · Pull Request #536 · DroidKaigi/conference-app-2020 · GitHub Android SDK platform Tools android.…

フォースダークを支える技術でダークテーマ用style.xmlを生成する

qiitaに投稿したアドベントカレンダーの転載です。 https://qiita.com/iwsksky/items/dc27afab6a9a757ac5ba TD;DL Android #2 アドベントカレンダーの15日目の記事です。 下記レポジトリのスクリプトを実行すると生成できます。 https://github.com/sdsd0801…

Glide4系のDiskCacheStrategyについて

全然更新してないけどandroidネタ。 記事執筆時点でのglideレポジトリの最新masterです。 ギガを食うのを改善したいとの要望がありGlideのDiskCacheを調査したときのログ TL;DL /data/data/app_dir/image_manager_disk_cacheに保存される キャッシュアルゴリ…

javaとkotlinの世界のstaticとsingleton

javaでよくあるユーティリティクラスをkotlinに移植しようと思ったときに気づきがあったのでまとめておく。 javaユーティリティクラスのkotlin convert objectとcompanion objectのおさらい objectとcompanion objectはjavaでどう解釈されるか object compan…