日々是好日

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

Android

AndroidでMiAuth実装してみた

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

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

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

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

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

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

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

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

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

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…

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

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

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

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

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

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

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 が必要なメソッドの整理。

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

StickyListHeaders風のライブラリを自作する-2 - 日々是好日の続き。 PinningListAdapter について考えてみる。 リポジトリ作りました。 github.com

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

StickyListHeaders風のライブラリを自作する-1 - 日々是好日の続き。 ItemDecoration でがんばって Sticky な動作を実現してみました。 次は、ごく簡単な機能を提供する記事を書きたい。 前回こんなこと言ってましたが、結局実装までやっちゃいましたね。←

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

StickyListHeadersが数年前からメンテ停止しているので、RecyclerView を拡張してそれっぽい View のライブラリを作ってみようという闇の計画。 現時点で、計画が成就するのかマジでわからない。 そして誰得でもある。 github.com Android ライブラリとは de…

RecyclerView + DataBinding がちょっとややこしかった件

2020/01/30更新 アダプタからリストを分離した。 ViewModel+DataBinding+RecyclerViewの実装ならこっちのがいいかも↓ kcpoipoi.hatenablog.com 参考 qiita.com medium.com 基本自分向けなのでやたら長いです。 環境 Android Studio 3.2.1 Kotlin 2018-01-12…

HeaderView に Animator を DataBinding で実装

参考 medium.com 前回に引き続き、HeaderView と DataBinding でいろいろやった話。 Android Studio 3.2.1 アーキテクチャ : MVVM 言語 : Kotlin やりたいこと NavigationDrawer の項目をタップすると、HeaderView の背景色(ConstraintLayout.background要…

HeaderView + DataBinding でハマった話

HeaderView に DataBinding でアニメーション実装しようとしたら意外とハマったのでメモ。 アーキテクチャ : MVVM 言語 : Kotlin ハマりポイント HeaderView は動的に生成しないとバインドされない NavigationDrawer のapp:headerLayoutは使わない 正直これ↓…

DataBinding で ViewHolder パターンを書き直してみた

ListView と DataBinding を組み合わせてガリガリ書いてましたが、RecyclerView に置き換えて使わなくなってしまったので供養のための投稿です。 完全にメモなので詳細な説明はなし……すみません(; ˘ω˘) 言語は Kotlin です。 data class 定義 ListView に表…

MVVM 完全に理解した - 11.5

DataBindingとViewModelについてまたもやクソ勘違いしてたので安らかな死( ˘ω˘)スヤァ— KC@MVVMでアプリ再考 (@kcpoipoi) December 22, 2018 ということで(?)、安らかな死因を述べます。 ViewModel + DataBinding + LiveData の重要なメソッド kcpoipoi.hatenab…

MVVM 完全に理解した - 11

前回は、 Android Architecture BluePrints の TasksRepository クラスについて見てきましたが、途中で Dependency Injection (長いので以下 DI )に関係してそうな Injection というクラスが出てきました。 今回はこの Injection クラスより、どのようにデ…