言いたいことはそれだけか

KotlinとかAndroidとかが好きです。調べたことをメモします。٩( 'ω' )و

Modifier.verticalScroll() を親に設定すると子のfillMaxHeight() が無視される仕組みを調べた

Android ComposeのModifier.verticalScroll()が親のcomposableに設定されていた場合に、子に Modifier.fillMaxHeight()を設定してもこれが無視される現象に遭遇した。どういった仕組みでそうなっているのか内部実装を読んだ時のメモを残す。 知りたいこと 例…

Typescript Tupleの実態を知りたくてcompilerのコードを読んだ時のメモ

タイトルの通り。TypescriptにはTupleがあると知って、どうやって普通の配列と区別しているのか知りたくてcompilerのコードを読んだ時のメモ。 TS compilerのコードを読むのは初めてなので、間違っているかもしれない。変なことを書いていたらコメント等で教…

2022 - React Native - Project作成の時のメモ

毎回忘れそうなので自分用のメモです。 projectをtypescriptで作成 reactnative.dev // setup react native env if you haven't brew install node brew install watchman // install typescript npm install -g typescript npm link typescript yarn global…

技術書を読み切る技術 〜読書会のススメ〜

本棚に分厚い技術書が並んでいるエンジニアの皆さんこんにちは。その技術書の中には「いつか読もう」と思っている未読のものはないだろうか。いつか読みたいと思っているうちに数ヶ月、あるいは数年放置されているものはないだろうか。半年後の年末、その本…

最近読んだジェンダー関連の本まとめ

はじめに 最近読んだジェンダー関連の本のメモ。 一般的なトピック ジェンダーについて大学生が真剣に考えてみた――あなたがあなたらしくいられるための29問作者:一橋大学社会学部佐藤文香ゼミ生一同明石書店Amazon これは教科書とか研究をまとめたものではな…

Pending Intentのrequest codeは注意が必要(PendingIntentの仕組み)

Notificationに設定するaction buttonで使うPending Intentについて、よくわかってなかった部分があったのでメモ。 現象 Notificationにactionを設定する際、Pending Intentを渡す必要があるが、複数のPending Intentで同じrequest codeを使いまわしていたら…

WorkManager.getInstance()に渡すContext

ちょっと気になったので調べたメモ。 Titleの通りWorkManager#getInstance()の引数のcontext1は何を渡すべきなのか、また何に使われるのか気になった。 developer.android.com 上記のAPI documentには Context: A Context for on-demand initialization. と…

「チームで育てるAndroidアプリ設計」を読んだ

[PR] 献本いただいた1「チームで育てるAndroidアプリ設計」を読んだので感想文です。 peaks.cc 全体を通して 本書は大まかに前後半に分かれていて、前半は新規開発について、後半は大規模チーム開発について、それぞれAndroidアプリ設計の勘所について述べて…

Kotlin 1.4からFlowのcombine()がより綺麗に書けるようになった(suspend conversion on callable references)

今回は小ネタ。Kotlinがますます可愛いという話をします。 Kotlin 1.4からsuspend conversion on callable referencesがsupportされました。 これ、Kotlin 1.4.0 にあげたらcompile通るようになった。リリース見てみたらSuspend conversion on callable refe…

私が出会った最高のEMたち

[2020.12.8 追記] ブコメでEMが何かわからないと書かれていたので補足。EM = Engineering Managerです。EM菌ではありません!!! [追記ここまで] 今の会社でお世話になったEMの人たちのマネジメントがとてもよかったので育休で全てを忘れる前にメモを残す。…

産休・育休中に読んで良かった本のまとめ

はじめに 産休・育休中に読んで良かった本を周囲の方々に教えてもらったので読んで良かったもののメモ。オススメしてもらった量がすごいので、特に自分の興味にあっているものや実際の育児に役立った(子どもの個性に合ったor親のライフスタイルに合った)物…

Datastoreのエラーハンドリングの仕組みを調べたメモ

Android JetpackのDatastoreがリリースされた。1 developer.android.com 非同期処理でread/writeができるshared preferenceみたいなものかというぼんやりした理解だったが、このつぶやきを拝見して SharedPreference 、ファイル IO がサイレントに失敗してて…

MotionLayoutでvisibilityを制御するときのメモ書き

MotionLayoutでvisibilityを制御するときにちょっと困ったのでメモを残す。 やりたいこと あるイベント契機でアニメーションを表示する イベントはコードからtrigger アニメーションとして画像を画面中央から上部に動かす(Twitterのお誕生日の風船みたいな…

Scoped Storageでパス指定してファイルにアクセスできなくなった

はじめに 見て見ぬふりをしてきたScoped Storageにハマったのでメモ書きを残す。 Android Q (10) から導入されたScoped Storage。「端末内部のfileやらのアクセス権限周りや保存領域が変わったんだろうなー」くらいの雑な理解で見て見ぬふりを続けてきたが思…

複数のsubscribersに対応したFlowとテストの書き方

MVVMアーキテクチャにおいて、一つのModelを複数のView Modelで共有している場合、あるイベントを複数のView Modelで同時に受け取りたいことがある。これをKotlin Coroutine Flowを使って書くとどうなるのかなぁと思ったのでやってみたメモ。テストも書いた…

Paging Library 3の内部実装読んだメモ書き

はじめに Paging Library 3が発表された際、Full Kotlinで書かれてCoroutineもたくさん使われているということで話題になった。せっかくなので内部実装を読んでみた時のメモを雑に残しておく。 今回みたバージョンは 3.0.0-alpha01 PagingLibraryをどう使う…

MotionLayoutの覚書き

はじめに MotionLayoutが発表されて随分経った。「Android Studio 4系が必須でMotion Editorが来るのを待っていた」という言い訳で長い間スルーしていたが、そろそろ4系が安定して来たという話をちらほら聞くのでちょっとさわってみた。結果、Motion Editor…

KoinのDIの仕組み

はじめに みなさん、Koinはお好きだろうか? KoinとはKotlin用の軽量DI Frameworkである。 insert-koin.io 基本的には下記の3 stepでお手軽にDIの仕組みを提供してくれる。 moduleの宣言 Koinのstart 任意の場所でinject Injectする際にinject()というcustom…

AndroidからGoogle Sign In経由、AWS Cognitoでuser管理してDynamo DBを操作する ~AWS Java SDKを添えて~

ふと、「そういえばNo SQLのDBって業務で関わったことないな」と思いついたのでAWS DynamoDBをさわってみることにした。 Androidから直接さわるためAWS Java SDKを利用したが、ググって引っかかる情報は結構古くてもう存在しないAPIを使っていたり、公式docu…

"Hacking with iOS Online" を完走した

産休中で暇だったので、オンラインの無料iOSハンズオンコース的なやつである "Hacking with iOS Online" をコツコツ進めており、無事本日完走した✌️ www.hackingwithswift.com よかった点 このコースには39個のプロジェクトがあり、平日一日一つずつ終わらせ…

保育園の新園開設情報ページの更新を監視したい

産休に入って時間があるので、今まで手動でチェックしていた保育園の新園開設情報ページの更新をスクレイピングして監視することにした。1 0. 注意事項 スクレイピングに関しては実行前に一度 こちらを読むことをお勧めします。 今回自分のケースでいうと、…

androidx.benchmarkの1.0.0がリリースされたので試してみる

Android Dev Summit 2019の下記のセッションで軽くふれられていた androidx.benchmark の1.0.0がリリースされたようなのでさわってみます。このセッションはbenchmarkの使い方を説明したものではないけど、色々と面白いのでおすすめです。 www.youtube.com …

ConstraintLayout 2.0でFlexboxLayoutとGridLayoutを代用する

はじめに ConstraintLayout 2.0から導入された Flow を使ってFlexboxLayoutやGridLayoutと同じようなことができるようになる。 androidstudio.googleblog.com developer.android.com こんな感じでできた。 (上がFlexboxLayoutっぽいやつ、下がGridLayoutっ…

Androidのdark theme

Androidのdark themeをさわってみたのでメモを残す。 Dark themeとは? 公式documentはこちら developer.android.com 電池の節約だったり、low visionなuser向けにより良いUIを提供することを目的に、黒背景のthemeがAndroid Q からサポートされた。 アプリ…

Activity Shared Element TransitionでActivityが多重起動されるとAnimationがおかしくなる

はじめに Activity Shared Element TransitionでActivityが多重起動されるとAnimationがおかしくなる現象を見つけて面白かったので調べてみた。 具体的に まずは下記のgifを見てほしい。リストアイテム押下時にわざと1秒のdelayを入れてstartActivity()して…

Javaのmethod referenceは初回しか評価されない

はじめに 言いたいことは掲題の通り。method referenceを渡しちゃうと実行時に毎度評価されるわけではない。 毎度評価されたければlambdaを渡した方がいい。 Reference 公式のドキュメントには以下のように記述がある。 Chapter 15. Expressions The timing …

AppBarLayoutを使う時にlayout_behaviorをFragmentに持たせるとviewが重ねて表示される

困った問題に出会ったのでメモ。 AppBarLayoutがActivityにいて、layout_behaviorつけたscrollableなviewがFragmentにいる場合、AppBarLayoutはちゃんと動くんだけど、scrollするviewの方がAppBarLayoutと同じ高さからlayoutされるので隠れてしまう…みんな同…

Kotlin Bytecodeを読みたいけど、何から勉強したらいいかわからないあなたへ。ASMのドキュメントを読みましょう。

はじめに このblog postは半年以上下書き放置していて自分の中では旬がすぎた話題ではありますが、最近Android系日本語技術podcastであるdex.fmのep.66でbytecodeが話題になったので、勿体無い精神で公開します :pray: それではどうぞ。 Kotlin書いていると…

TabItemをxml layout fileに記述してもview hierarchyからfindViewById()できない理由

TabItem、xml layout fileに書いててもViewHierarchyに追加されないの知らなくて昨日すごく時間を無駄にしたhttps://t.co/hc8WyqfHV2— むーむー/Atsuko FUKUI (@muumuumuumuu) January 31, 2019 Tweetにリンクを貼っている通り、公式ドキュメントによると Ta…

TabLayoutでいい感じにアイコンをつけたい時のメモ

ViewPagerとかと併用してTabLayoutを使う場合に、特定のタブにアイコンを表示する時にどうすればいいかなーという時のメモ。1 今のところは Tab#setCustomView() でcustome layout resourceをセットするのが大体のケースにおいて現実解となりそう。 また、こ…