2022/08/06 ~ 2022/08/12 のもくもく日記
もくもく 前回までは
2022/07/30 ~ 2022/08/05 のもくもく日記 をご覧ください。
今回の目標
- レシピの整備
途中経過
その1
Kotlin Flow から流れてくるデータをAndroid UI に反映する時、ライフサイクルの考慮がいるのは何となく咀嚼できたのだけど、LiveData のようにViewModel 用のFlow ってそういえばないんやっけ?
Compose やKMM とかを考えると、素のものが良いのかもしれんと思うなど https://developer.android.com/kotlin/flow/stateflow-and-sharedflow?hl=ja
上手く言語化出来んけど、Flow ってAPI 通信実装には使わなくて良い気がしてきた 基本ワンショットだから通信結果が分かり次第データはそれ以上流れないし、それってsuspend で実装できるし 逆にそれらすべてを統一的に扱いたいならRx 系が良い
全部Flow というよりか、どっちかというと状態管理に絞って採用すると良い気がしてきた。LiveData の代わりってニュアンスに近いかな
……ってことで、Kotlin Coroutine 何も分らんw
その2
そいや昨日、なんだかんだ初めてAndroid Flash Tool を使ったのだけど、いろいろはまったw
- Chrome でしか動かんかった
- 端末に表示される"Do not" から始まる選択肢の意図を間違えたw
https://flash.android.com/welcome
ブラウザの話は、プライベートモードだったからかもしれんけど、何故かEdge で動かんかった
その3
Netlify CLI あるんかい👀 https://docs.netlify.com/cli/get-started/
その4
なんだかんだで1年くらい放置していた自作ブログ改修をやろうと思ったので、まずは以前に教えてもらったWord Press の記事レスポンスの確認から
確か自分の名付けがしっくりこなかったはずなので、基本踏襲したいかもw https://developer.wordpress.com/docs/api/1.1/post/sites/%24site/posts/new/
その5
「ソフトウェア品質を高める開発者テスト」のコラム、身に覚えがあることが多くて、苦笑するしかない……
自分、ソフトウェアエンジニアのはずなので頑張ります💪
その6
Retrofit って、そういえばKotlin Coroutines のどのスレッドで動いているんだろと思って実装を読んでみたのだけど、Java コードのラッピングしているだけだった
……ってことでJava 実装を読んでみる https://github.com/square/retrofit/blob/master/retrofit/src/main/java/retrofit2/KotlinExtensions.kt
とりあえずAndroid はMain スレッド上でコールバックを実行しているっぽい👀
Retrofit .Builder のcallbackExecutor で任意のものを設定することができるっぽい https://github.com/square/retrofit/blob/master/retrofit/src/main/java/retrofit2/Platform.java#L92-L94
Retrofit はOkHttp 使っているので、OkHttp のenqueue からたどってみたら、ここに行きついた
で、この時のExecutor がスレッドプールになっているので、メインスレッド以外……って認識を持ったw https://github.com/square/okhttp/blob/master/okhttp/src/jvmMain/kotlin/okhttp3/internal/concurrent/TaskRunner.kt#L299-L301
その7
Web Component 実装時のボイラーテンプレートをいい感じにするライブラリっぽい👀 どこかで試してみよっと💪 https://twitter.com/googledevjp/status/1556460186767790080
その8
要求仕様の良否とプロジェクトの成功・失敗との関係の研究例らしい👀 興味が出てきたので、取り寄せてみるか💪 https://ieeexplore.ieee.org/abstract/document/4384169/similar#similar
この本のバッチ型(とオンライン型) の説明分かりやすいかも
「バッチとは必要な処理をまとめておいて後で一気に処理するという意味であり、」
実装時にじゃあ何で作れば良いのと昔思ったけど、上記を達成出来ればスクリプトでもコンソールアプリでも何でも良い……と腑に落ちたのでw
その9
Android 13 関連の話でJDK-11 が使えるようになるみたいな話があった気がするけど、desugar のリリースノート見たらAndroid Gradle Plugin 7.3.x が必要とあって、対応するAS Dolphin はまだベータなので、様子見したいと思った👀 https://github.com/google/desugar_jdk_libs/blob/master/CHANGELOG.md#version-120-2022-06-21
何か自分、めっちゃ勘違いしている気がしてきた
Java 11 を文法とライブラリの2つに分けて考えると、文法はAGP 7.0 でサポートされていて、ライブラリはちと怪しいって感じ
なんだけどKotlin で書くことが多いので、そのKotlin がJava 11 ライブラリをコールしていなければ、特に問題にならんかも
Kotlin stdlib の内部で使われているJava 標準ライブラリ?が何なのかを調べて見れば解決するかな🤔
てかそもそもdesugar のこと、分かっているようで分かっていなかったw
今回の進捗
- GitHub
- Nintendo Switch でトレーニングを進めた
- 本を読み進めた
※関連SNS
- https://x.com/shion_engineer/status/1555735352580911104
- https://x.com/shion_engineer/status/1555765351321059331
- https://x.com/shion_engineer/status/1555768092051275777
- https://x.com/shion_engineer/status/1555791819044450305
- https://x.com/shion_engineer/status/1555886438151258113
- https://x.com/shion_engineer/status/1556085908868575234
- https://x.com/shion_engineer/status/1556151443018891264
- https://x.com/shion_engineer/status/1556576433635753984
- https://x.com/shion_engineer/status/1556613053856493568
- https://x.com/shion_engineer/status/1556908042696163333
- https://x.com/shion_engineer/status/1557540692737785856
- https://x.com/shion_engineer/status/1557580425685778437