日々是好日

プログラミングについてのあれこれ、ムダ知識など

AndroidでMiAuth実装してみた

リポジトリ Misskey Hub トークン取得フロー インターフェース定義 AuthUseCase MiAuthInteractor と OAuth2Interactor 雑なまとめ リポジトリ AndroidでMiAuthを実装しました。 手っ取り早くソース寄こせって人はこちらから。 developmentブランチです。 あ…

まとメモ プライバシーポリシー

まとメモ プライバシーポリシー 第三者に個人を特定できる情報を提供することはありません。 個人情報の管理には最新の注意を払い、以下に掲げた通りに扱います。 サポート時 サポートメールに、問題解決のための端末種類、OSバージョン等が本文として記述さ…

ICL手術レポ

眼内コンタクトレンズ(ICL: Implantable Collamer Lens)手術を受けてきたのでレポです。 ICLとは 手術前の視力や費用、モチベーションなど 今現在の状況 手術前後の流れと経過 手術前検査(2021年12月11日) 手術当日(1日目)(2021年12月29日) 手術前 …

特定のIdを含む全経路を取得する with 閉包テーブル

閉包テーブルにて「特定のIdを含む根~葉までの全経路」を取得しようとしたら、意外とめんどうだったのでメモ。 最適化全然出来ない。 サンプルデータ クエリ 分解 部分木の葉を取得する 全経路を取得する 参考

Android Room における隣接リストから閉包テーブルへのMigration

隣接リストにて作成してしまった木構造のデータを、深さ付きの閉包テーブルにマイグレーションしたのでそのときの備忘録です。 そもそもの木構造の表現方法には触れず、あくまでMigrationの手順についてのみ記載しています。 モチベーション サンプルデータ …

CoordinatorLayout+BottomNavigationView+NestedScrollView+その他諸々で画面構築してみた

次のぎじゅつを使って画面構築してみたのでメモ 見た目はToolbar+コンテンツ表示Fragment+BottomNavigationViewの画面構成 コンテンツ表示Fragmentは、BottomNavigationViewの選択により入れ替える Toolbarはコンテンツ表示Fragmentのスクロール動作により…

時刻をパラメータに使用する場合の実装メモ

時刻を扱う場合に、テスト性を持たせるための実装メモ。 インターフェースを介して時刻を実装してやる。 // Kotlin import java.util.* interface SystemClock { fun getTimeMillis(): Long fun getLocale(): Locale fun getTimeZone(): TimeZone } // 使う…

OpenCV for AndroidでJPGから透過付きBitmapを生成するときのメモ

前後のつながりも何もないメモ。 Imgproc.cvtColorでグレースケールを生成するとき、引数にはImgproc.COLOR_RGBA2GRAYを設定すること。 Imgproc.COLOR_BGRA2GRAYを選択すると、後でsrcMat.copyTo(dstMat, mask)でマスクするときに背景の透過がうまく行われな…

OpenCV for Androidで手書き文字をクロッピングする

概要 写真をOpenCVで二値化して、手書き部分のみクロッピングする Bitmapをアルファ付きPNGとして保存するとき、Bitmap#setHasAlphaをセットしないとアルファ値が捨てられる 読み込んだときに背景が黒に置換される模様 動きとしてはこんな感じ。 概要 OpenCV…

Android Studio 4.1 にOpenCV 4.5.0 をインポートするメモ

Android Studioのバージョン更新のためか、Qiitaや個人ブログの方法がそのままでは使えなかったのでメモ。 大筋は下記参照でいいと思うのでポイントだけ。 (まだインポートまでしかやってないけど←) qiita.com 環境 Android Studio 4.1 OpenCV 4.5.0(4系…

Mockito+kotlin-allopenプラグインでモックする

Kotlinでテストを書く場合、kotlin-allopenプラグインを使うと簡単にモックできるということですが、ネットに転がってる情報が思いのほか不親切だった(他責)ので個人的まとめ。 結論 kotlin-allopenとは リリースビルドではどうするのよ mock-maker-inline…

Androidアプリのアップロード鍵.keystoreの作成と管理について

Androidの署名ファイル(keystore)について個人的まとめ。 今のところ一番腑に落ちる配置の仕方かな? keystoreとは 環境 手順 /Users/user/.gradle/gradle.propertiesにパスを記述する .gradle/.signingフォルダを作る keystoreファイルを生成する keystor…

Pandoc+Dockerでドキュメント作成環境を整備する

Pandoc、MarkdownからHTMLでもPDFでも、Wordにだって出力できて便利ですね。 軽い気持ちでPandocを導入しようとしたら地獄を見たのでその備忘録です。 なお、筆者の環境は Windows10 Pro + Docker for Windows で構築しています。 Linux歴3週間程度のため、…

vue serve コマンドとカスタムパーサ設定の話

vue serve <vue file>が便利そうだったので使いたいと思ったら、思いのほかトラップがあったのでメモ。 .eslintrc.jsにおいてカスタムパーサを指定するのがキモだった模様。 実際何が必須で何が不要なのかわかってないので後で調べる。 手順 まず最初にnpm install -g </vue>…

Vueでプロジェクトを初期化したときのメモ

vue create <project-name>でVueプロジェクトを作成したとき、毎回同じところでハマっているのでいい加減手順をメモしておく。 構成は Vue+Firebase、UIにVuetifyを使用する(Vue 4系)。 あと、ついでにFirebase FunctionsではローカルのESLintを有効にする(グローバルイ</project-name>…

PowerShellスクリプトでbuild.gradleをオレオレ記述化

Android Studioでプロジェクトを初期化したときに生成されるbuild.gradleをオレオレ記述化したのでメモ。 書き換える動機はこちらの記事が基です。 android.benigumo.com 今まで手動で直していましたが、あまりにもめんどうだったのでテンプレート化してみま…

Androidのselectorタグの書き方について

Androidでボタンのチェック状態等でリソースを切り替えるDrawable Resourceについてメモ。 selectorやitemタグの記述の仕方について小一時間ハマった。

Firebaseの初期化でハマった

Firebaseの初期化でめちゃくちゃハマったのでメモ。 ネット上をさまよったが、どうもFirebaseの新旧のバージョンで書き方が変わったため、かなり情報がごちゃごちゃになってるっぽい。 環境 何ができなかったのか 何が原因だったか どうやって解決したか コ…

CLIP STUDIO PAINTファイルからプレビュー画像を生成する

CLIP STUDIO PAINT ファイル(.clip)のプレビュー画像を node.js で出力したのでメモ。 なお、fs.readFileSync/writeFileSyncを使用しているが、 テスト用に記述してるだけなので、実装する場合はfs.readFile/writeFile推奨。 コード 解説 clipファイルの読…

VSCode実践ガイドでWebアプリ開発環境を作ってみた

森下様の著書「Visual Studio Code 実践ガイド」をフラゲ()したので、 本書に従い初めてVue.js+TypeScriptで開発環境を作ってみました。 gihyo.jp Vueでの開発環境構築なんてコマンドライン一発でしょ? 環境構築 フォルダ構成 tscの導入 その他のパッケ…

MVVM+DataBinding+RecyclerViewでカレンダーを作る - 1

2021年7月12日 追記 RecyclerView.AdapterのアイテムにDataBindingを用いるため、コンストラクタで LifecycleOwner (FragmentのviewLifecycleOwner) を渡すのは誤った実装でした。 stackoverflow.com 発見に至った経緯 まったく別のアプリ開発でLifecycleReg…

Firebase Hosting+Functionsのメモ

Firebase Hosting プロジェクトを作成するフォルダに移動してinitコマンド cd /project firebase init Hosting: Configure and deploy Firebase Hosting sitesを選択してポチポチ。 するとプロジェクトフォルダに(デフォルトなら)publicというフォルダとin…

Twitterのフォロー一覧を取得してテストする

やったこと。 Twitter4Jで自身のフォロー一覧を取得 実装の手順 TwitterUserUseCase TwitterUserInteractor TwitterUserInteractorTest TwitterUserInteractor最終形 所感

FireStoreとローカルDBからのデータ取得についてメモ

FireStoreとローカルDBとのデータ取得・同期について、なんとなく動いた()のでメモ。 なお、リモートのデータソースはFireStoreを利用、ローカルはRoomで実装している。

StickyListHeaders風のライブラリを自作する-7

StickyListHeaders風のライブラリを自作する-6 - 日々是好日の続き。 ヘッダーオブジェクトを自動で挿入するようにしてみた。 リファクタしてみた どのように使いたいか ヘッダー抽出クラス 実装 ライブラリ公開先

CoordinatorLayout+Toolbar+BottomNavigation+FAB使用時のメモ

RecyclerViewのスクロールにあわせてToolbarやBottomNavigationView, FloatingActionButtonを隠そうとしたら、いろいろとハマったのでメモ。 何をしたいのか レイアウト CoordinatorLayout Toolbarの場合 AdView, BottomNavigationViewの場合 FABの場合 リポ…

RoomによるローカルDBの実装

先週某社の採用フローにエントリしたところ、1週間で簡易的な Todo アプリ作成の課題を与えられました。 その際、初めて Room を使用しローカルDBを構築、さらに ViewModel に埋め込んで連携したので、備忘的にメモしておきます。 Room とは 実装のステップ …

StickyListHeaders風のライブラリを自作する-6

StickyListHeaders風のライブラリを自作する-5 - 日々是好日の続き。 Bintray で Android のライブラリを公開するまでやってみた。 Kotlin ライブラリなのでだいぶはまってしまいました……。 Bintray 側の準備 Gradle の設定 API Key の保存 プラグインの追加…

StickyListHeaders風のライブラリを自作する-5

StickyListHeaders風のライブラリを自作する-4 - 日々是好日の続き。 ライブラリがとりあえず出せそうなレベルまで来たので、AAR ファイルの出力をしてみた。 ……ら、めっちゃハマったのでメモ。

StickyListHeaders風のライブラリを自作する-4

StickyListHeaders風のライブラリを自作する-3 - 日々是好日の続き。 override が必要なメソッドの整理。