検索の仕方、ググり方 〜検索に困った集〜
もしも、技術系で「これ調べたいのに、なかなか出てこなかったけど、これで調べたら(検索ワードやサイトなど)すぐに出てきた!」という検索に対する知見を広め深める試みです。
もしも、見ている方で「これ、検索に困ったけど、こう工夫して上手く行った!」というのがあれば、是非投稿いただけると幸いです。宜しくおねがいします。
Q) .performKeyPress()の引数に何を入れて良いのかわからない。
A) 「performKeyPress compose uitest」とググっても、10件ほどしか検索に引っかからず、しかも結果が「performKeyPress(KeyEvent)」などといった、分かりきった答えしか出てこない…
結局、虱潰しに値を入れて解決した。ちなみに、この方法は以下の記事。
Jetpack Composeを使って、Twitterアプリの右下にある作成ボタンみたいなのを作りたい。
「Jetpack Compose 追加ボタン」でググると、それっぽいものが出てきて、このボタンのことを「FloatingActionButton」と呼ぶことを知る。後は「FloatingActionButton Jetpack Compose」とググれば、いっぱい出てくる。
こことか
こことか
参考になる。
Jetpack ComposeのUI Testで「戻る」の動作をしたいけど、見つからない。
「Jetpack Compose back key UI Test」で調べても出てこない。
とりあえず、無駄なあがきだが、以下のように、Command+backspace(delete)をやってみる。
composeTestRule
.onRoot()
.performKeyPress(
KeyEvent(
NativeKeyEvent(100,100,ACTION_DOWN, KEYCODE_COMMA, 1)
)
)
composeTestRule
.onRoot()
.performKeyPress(
KeyEvent(
NativeKeyEvent(100,100,ACTION_DOWN, KEYCODE_BACK, 1)
)
)
composeTestRule
.onRoot()
.performKeyPress(
KeyEvent(
NativeKeyEvent(100,100,ACTION_UP, KEYCODE_COMMA, 1)
)
)
composeTestRule
.onRoot()
.performKeyPress(
KeyEvent(
NativeKeyEvent(100,100,ACTION_UP, KEYCODE_BACK, 1)
)
)
動かない(KEYCODE_BACKをKEYCODE_DELにしても駄目)
これが一番近く、惜しい。確かに、以下の記事を参考にしたらKEYCODE_BACKが、戻るボタンだった(backspaceではない)。
JUnit4 ハードボタンと調べた。そしたら、この戻るボタンのようにデバイスにあるボタンを「メディアボタン」というらしい。
色々と試したが、どうにも出来ない。
各ページの上でback button (KEYCODE_BACK)が押された時にBackHandler(enable=true){}
を使って、前のViewを表示しようとした。手動で操作するときは動く。しかし、JUnit4 + Composeだと動かない。
そこで、Activity(MainActivity)上にdispatchKeyEventでback buttonが押されたときの挙動を調べた。すると、back buttonが押された時に、ViewModelのViewの状態を書き換えに入っているけど、それがView側で反映されていない、ということが起こっているらしい…
分からない…
Q) Android kotlinでDIするときの@InstallInに何を入れたら良いのか分からない
普通に「@InstallIn DI」で調べてみると、以下の記事が出てくる
この記事の中に
Hilt モジュール
AnalyticsModule
に@InstallIn(ActivityComponent::class)
というアノテーションが付いています。これは、依存関係をExampleActivity
に注入させるためです。このアノテーションは、AnalyticsModule
内のすべての依存関係が、アプリのすべてのアクティビティ内で使用できることを意味します。
と書いているので、ActivityComponentがActivityに対する注入に使われることは分かった。
じゃあ、ViewModelComponent,SingletonComponentの違いは何なのか調べようと
「ViewModelComponent SingletonComponent difference」
でググるとDaggerのサイトを発見
これをいい感じにまとめれば分かりそう。
例外処理を纏めようとしたときに、予期せぬ動きがした。調べても、なかなか出てこないが、以下の検索ワードで期待する記事にたどり着いた。
「javascript コールバック関数 try catch」
詳しい経緯は以下の記事に書いた。
MySQL(mariaDB)でinnoDBかAria(MyISAM)かを確認したいとき、どうすればいいか。
「データベース 型 確認 mariadb innoDB MyISAM」と確認して、以下の記事が出てきた。
engineというらしい。確認方法は、information_schema
に移動して
select table_schema, table_name, engine from tables where table_schema = 'your_db_name';
を実行する。
docker-composeで入れたmariadbのmysql_secure_installationについて、コンテナがたった時点で、すでにmysql_secure_installationで行われるリモートアクセス不可、テストデータベースの削除は行われているらしい。
確かに、以下のソースを見ると、実行されていそう。