CSSモジュール

https://postd.cc/css-modules/
https://morishitter.hatenablog.com/entry/2015/09/28/103334
CSSファイル1つ1つをBEMで言うブロックにしてくれて、それをjavascriptでimportして使えるようにする仕組み。
Sassでいう所の @extends キーワードにあたるCSS拡張機能も含まれている。
1コンポーネントと1CSSを使いたいReactやVueで役立つ方式。
WebPackなどでビルドされることで、実際にブラウザに読み込まれるCSSとhtmlになる。
CSSは大規模化するとグローバルなネームスペースしか持たない問題が顕現化してくることに対する回答として生まれた。

Xamarin.Androidでキャッチされなかった例外を処理する方法

https://qiita.com/smi/items/28d9148e5fa97ed30658

AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(OnThreadException);

検索するとUncaughtExceptionHandlerを使えというのがいっぱい引っかかったがうまく行かず、上記の方法でうまくいった。

Xamarin.Androidで「UnauthorizedAccessException: Access to the path is denied」エラーが出て外部ストレージファイルにアクセスできない

https://developer.android.com/training/data-storage/use-cases?hl=ja#opt-out-scoped-storage
https://stackoverflow.com/questions/46911486/xamarin-system-unauthorizedaccessexception-access-to-the-path-is-denied
WRITE_EXTERNAL_STORAGE権限は追加して、ちゃんとRequestPermissionsで権限を与えているのに、アクセスが拒否されたと言われる。
原因はAPI 29(Android10)以降では「対象範囲別ストレージ」とかいう機能で、権限を与えていてもアプリ固有ディレクトリ以外にはアクセスできなくなったこと。
ちなみにGetExternalFilesDir()で取得できるフォルダに関してはアクセスできる。
対策は、androidmanifest.xml の<application>タグに android:requestLegacyExternalStorage="true" 属性を追加すること。

BEM

https://qiita.com/Takuan_Oishii/items/0f0d2c5dc33a9b2d9cb1
CSSクラスの命名規約。
例:「article-list__article-title--red」

Block Element Modifierの略で,
Block => でかい括り
Element => でかい括りの中にいる要素
Modifier => 上記2つの変化球
の3つに分けて考えていくことでCSSを設計・命名していく手法.



SCSSファイルは1blockにつき1ファイルで作成する。これによりブロック名重複が出来なくなる。
それぞれの単語はchain-caseで書く。
要素へのclass指定は基本的にシングルクラスで記述する。(うまくいかない場合は例外は許可)

Androidにはなぜモーダルダイアログが無いのか?

https://aharisu.hatenadiary.org/entry/20180815/1534348306
正確には同期で表示されるダイアログが無い。
これは端末回転やメモリ不足によって画面オブジェクトの再作成が行われることが想定されているからだと思う。
非同期で表示されるダイアログならDialogFragmentで復元できるが、「処理の途中で表示していたダイアログ」があると変数の状態や処理がどこまで進んだときに表示されたダイアログなのかを全部保存しないとそれを復元できない。