日々是好日

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

MVVM

AndroidでMiAuth実装してみた

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

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

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

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

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

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は使わない 正直これ↓…

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 クラスより、どのようにデ…

MVVM 完全に理解した - 10

前回は期せずして MVVM っぽく ViewModel を介してイベントをやり取りする実装を載せることができました。 View と ViewModel との関係はそこそこ書いてきたと思うので、今回は Model を見ていきます。 Model とは wikiる。 アプリケーションのドメイン(問…

MVVM 完全に理解した - 9

前回は、Activity 1枚と Fragment 1個の構成における Data Binding の基本的な構造について確認しました。 所感において「次は Navigator インターフェースを定義して、テキストのクリア機能と大文字化、小文字化機能を追加してみようと思います。」と書いて…

MVVM 完全に理解した - 8

前回は Activity 1枚だけの超簡単構成だったので、今回は Activity 1枚と Fragment 1個に少しだけ発展させてみます。 機能と外観 変更点 手順 MainViewModel.ktの確認 activity_main.xmlの修正 fragment_main.xmlの作成 MainFragment.ktの作成 View の infla…

MVVM 完全に理解した - 7

前回 Android Architecture BluePrints を読んで挫折した(早っ)ので、基本に立ち返り最もシンプルな構成で Data Binding を体験してみます。 作るのは、MainActivity 1枚だけのミニアプリです。 純粋にリファレンスに沿って実装しました。 機能と外観 手順…

MVVM 完全に理解した - 6

MVVM 理解するために、小さいテストアプリを作ってみます。 お題は前回投稿した簡易メモアプリ。 プロジェクトを作る MVVMPractice とでもしてプロジェクト生成。 Gradle の編集 Data Binding と Architecture Components を有効にするため、app.gradleに次…

MVVM 完全に理解した - 5

お待ちかね Two-way data binding(双方向バインディング) です。 Two-way data binding | Android Developers ホントは一つ前の Bind layout views to Architecture Components についても書いてみたいところですが、そろそろ双方向バインディングも書かな…

MVVM 完全に理解した - 4

前回、次は双方向バインディングと言いましたが、その前に Observable object というものをやらないとつながらないのでそちらを少しだけ。 今回はこちらのページから。 Work with observable data objects | Android Developers Observable fields 前回は不…

MVVM 完全に理解した - 3

今回は Data Binding について。 といってもなかなか一筋縄ではいかないので、本記事ではデータをバインドするところまで。 ちょっと長いので目次付けてみる。 Data Binding Library の概要 ライブラリの導入 レイアウトファイルへの記述 データをバインドす…

MVVM 完全に理解した - 2

今回は ViewModel について。 ViewModel とは developer.android.com The ViewModel class allows data to survive configuration changes such as screen rotations. Activity が破棄・再生成される画面回転などの操作について、(UI と関連した)データを…

MVVM 完全に理解した - 1

LiveData について調べたこと。 Observer パターンと総称型(ジェネリクス)について知っていると幸せになれるかもしれません。 LiveData とは LiveData | Android Developers LiveData is an observable data holder class. 監視可能なデータホルダークラス…

MVVM 完全に理解した - 0

タイトルは釣りです(マテ MVVM (Model - View - ViewModel) アーキテクチャの実践のために、Android Studio で 簡単なアプリを作ってみようと思います。 目標は、14日間で MVVM の構造の理解とそれを基にひとつアプリを作ること。ごくごく単純な入力と反映だ…