為さねば成らぬ

retia.verno@gmail.com

RIP: タスクkill系アプリ

結論 Androidのタスクkill系のアプリがお亡くなりになりそうです 背景 Android 14 DP2出ました。DP1から以下の項目が増えています。 Apps can kill only their own background processes killBackgroundProcesses() というバックグラウンドプロセスをkillす…

2023 抱負

あけましておめでとうございます。既に仕事初めの時期ですが新年の抱負です。 九州旅行にて車で観光する 社会人になる直前に免許を取り、それ以来10年ほどペーパードライバーです。 都内に住んでいてそこまで旅行好きでもなかったので不要だったのですが、妻…

Android LintのDetectorを読む Day6: MergeMarkerDetector

ソースコード https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-checks/src/main/java/com/android/tools/lint/checks/MergeMarkerDetector.java Issue category: CORRECTNESS priority: 8 severity: E…

Android LintのDetectorを読む Day5: CallSuperDetector

ソースコード https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-checks/src/main/java/com/android/tools/lint/checks/CallSuperDetector.kt 背景 メソッドがoverrideされるときに、親クラスのメソッド…

[Android] Android LintのDetectorを読む Day4: AppCompatCallDetector

ソースコード https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-checks/src/main/java/com/android/tools/lint/checks/AppCompatCallDetector.java 背景 AppCompatのメソッドを使う時、 通常のものでは…

[Android] (WIP) Android LintのDetectorを読む Day3: AllCapsDetector

ソースコード https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-checks/src/main/java/com/android/tools/lint/checks/AllCapsDetector.kt 背景 TextViewでtextAllCaps=trueだとテキストに含まれるマー…

Android LintのDetectorを読む Day2: AlarmDetector

ソースコード https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-checks/src/main/java/com/android/tools/lint/checks/AlarmDetector.kt 背景 高頻度のアラームはバッテリーに悪いため、API 22からは最…

Android LintのDetectorを読む Day1: AddJavascriptInterfaceDetector

https://cs.android.com/android-studio/platform/tools/base/+/mirror-goog-studio-main:lint/libs/lint-checks/src/main/java/com/android/tools/lint/checks/AddJavascriptInterfaceDetector.kt 背景 WebView#addJavascripInterface によりアプリからオブ…

マルチモジュール勉強会に出て学んだこと

少し遅くなったが。マルチモジュール勉強会にでたので個人的に参考になったポイント。 詳細設計レビューで新規開発時にルールを徹底させる 普段詳細設計レビューすることがない。というのもそこのレビューのコストを重く見てしまっているのだろうと思う。 レ…

習慣継続の停滞期

年始以来しばらく順調に続いていた習慣だが、今週に入って途絶えてきている。 フィットボクシング 一番続けていたのがこれだった。が、先週ジムで筋肉痛がひどく、フィットボクシングができない。 「朝着替える」という最小の目標にしていたが割と当たり前過…

悪い習慣をやめる

年末年始で自分の習慣づくりに取り組んでいたが、良い習慣を続けるより悪い習慣をなくす方がずっと難しい気がする。 以前知り合いになにかやっている習慣はある?と聞いたことがあった。 悪い習慣の答えが多かったので、そちらを直す方が需要がありそうだと…

準備をするという習慣

verno3632.hatenablog.com とも関連して。 習慣にするぞ!といっても結構いとも簡単に忘れがちである。 例えば朝起きたら運動する、と決めていても、朝は頭が働かない・バタバタして忘れてしまったりする。 また悪い習慣を断つことを考えるときも、よく引っ…

習慣の手順書作成・自動化

習慣を明確にする 習慣にするとき、やることを明確にするのは非常に大事である。 研究者が「実行意図」と呼ぶもので、いつ、どこで行うか、予め立てておく計画である。 ... 多くの研究により、実行意図は目標達成に効果的だとわかっている。 ジェームズ・ク…

ハードルを下げる

ハードルを下げる 激短時間でできることを習慣とする。5分でできることとか1分でできること、とかも耳にするが、個人的には 10秒 で良いと思う。 その日の習慣を達成するまでなにか続けなければいけないではなく、本当にやれば終わるもの。 毎日したいことを…

習慣化に必要なこと: 頭を使わなくする

しばらく習慣化というものについて色々考えてきて、 頭を使わない ことが重要ではないかと思っている。 つまり毎日やることを予め決めておき、決まったタイミングでただやるだけにしておく。 頭を使ったり考えたりすることはコストが高い。まず 考えなければ…

Jetpack Composeを触る時は

結論 リリースノート開いておけ! 解説 Jetpack Composeは開発中のライブラリであり、新たな機能ができては名前を変えていきます。 あなたが見たJetpack Composeのドキュメントは書かれたときそのバージョンでは正しいものですが、今やろうとしてあなたが入…

useIRとは一体何か

課題 Jetpack Composeを利用する際に、kotlinOptionsに useIR を設定する必要がある。 kotlinOptions { useIR = true } これは何を表すのか。 調査 https://kotlinlang.org/docs/whatsnew14.html#unified-backends-and-extensibility intermediate represent…

最近行っている、悪い習慣を無くすための試み

習慣化は私の最近のテーマだ。怠惰な人間なので、放っておくと無限に時間を使って遊んでいる。最近はウマ娘だ。idは 939647895 。 いくつか習慣化に関する本を読んでいるがその中で取り入れて実行に移していったものを書いていく。 まだ始めたばかりのものが…

GitlabのMRのStatusを変える

課題 GitlabへのMRをフックしてBitriseでCIを回した時、MRに対してCIの状態を更新したい。 公式のステップだとGitHubは GitHub Status が存在するが、Gitlabは無いため。 解決 以下の curl コマンドを Script ステップに設定すると、Gitlabのpipelineに test…

jCenterクローズで影響が出るライブラリの一覧を出す

課題 今更ですが。 jfrog.com jCenterクローズの影響調査として、jCenterにだけ上がっててmavenCentralにないライブラリを一覧で出したい。 解決方法 build.gradleから buildscript.repositories に定義してある jcenter() を削除、定義していない場合は変わ…

スクロールしたらふわっと出るやつの実装

js

課題 LPとかによくある、スクロールされて画面に入ったらふわっと表示するアニメーションを実装したい。 実装 CSS+JS tech-dig.jp .slideup { opacity: 0; visibility: hidden; transform: translateY(40px); transition: all 1s; } .slideup.is-show { opac…

要素ホバー時にホバーしたことがわかるようなアニメーションを入れたい

css

課題 よくある、要素ホバー時にホバーしたことがわかるようなアニメーションを入れたい 特に今回は - 色が薄くなる - 若干下に下る アニメーションを実装する。 実装 a:hover{ opacity: 0.75; transition: all 0.25s ease; transform: translate(0px, 1px); }

Androidの最新バージョンのエラー状況を確認するURL

課題 弊社アプリは毎週リリースで、段階的リリースも行っているのでほぼ毎日リリースする作業が発生している。 リリース前にGoogle Play Console / Firebase Crashlyticsでクラッシュの確認をしているが、ぽちぽち開くのが地味に面倒。 実装 それぞれだいた…

Robolectric導入したけどエラーが出る

課題 Robolectric導入して、 @RunWith(RobolectricTestRunner.class) を書いたはいいが、 java.lang.UnsupportedOperationException: Failed to create a Robolectric sandbox: Android SDK 29 requires Java 9 (have Java 8) のエラーが出る 実装 @Config(s…

文字数カウンタを表示する

課題 社で自分の業績評価を記入する必要があるのだが、使用しているWebサービスがイケてなく、文字数制限があるにも関わらず現在入力の文字数を出してくれない。というか文字数が超えている場合は非同期的にダイアログを出してくるのでうざい。 適当な場所で…

Slackチャンネルの新着がどうしても気になるので整理する

課題 弊社では社内チャットにSlackを導入している。各所属チームのほか雑談用のチャンネルがあったり、また所属していないチームのチャンネルでも気軽に入れるので自ずと加入チャンネルが増えてしまった。 チャンネルにコメントが投稿されるとチャンネル名が…

PullRequestがマージされたときなにかする(Slackにメンションする)

課題 Pull Requestがマージされたとき、AuthorにSlackでメンションしたい。 実装 各ステップを以下のように設定する。 Trigger: Github Trigger Action: New Repo Event app: Filter by Zapier Payload Action Exactly matches closed Payload Pull Request …

SHA証明書フィンガープリントを取り出す

課題 Firebaseに設定する、証明書フィンガープリントを取得したい。 実装 apkから取得する keytool -list -printcert -jarfile target.apk keystoreから取得する keytool -list -v -alias name -keystore keystore.jks apkに署名する際に用いるalias / key s…

ビルド中に生成されたファイルを後からみる

背景 Bitriseにて新たなWorkFlowを組んでいて上手く行かないことがある。 コンテナの中で動作しているビルドの中をデバッグすることは難しい。 課題 内部で生成されるものを後からArtifactsとして参照できるようにする 結論 対象のファイルを $BITRISE_DEPLO…

GsonでtoJsonする時にフィールドをsnake caseにしたい

背景 Kotlinで書いてると通常クラス名やフィールド名はCamelCaseにする。 ネイティブのクラスをJavascriptに渡そうとする時にsnake_caseとして扱われることがある。 課題 JavascriptにわたすためにクラスをJsonの文字列に変換したいが、フィールド等がCamelC…