プロジェクト

全般

プロフィール

活動

2020/09/22から2020/10/21まで

2020/10/14

高徹 11:01 機能 #165: Androidアプリケーション(検温記録)を古典MVC構造で作成する
調査メモ
AdapterのswapCursorメソッドに、
notifyItemRangeInsertedを呼ぶコードを入れる? 次URLのコメント参照
https://gist.github.com/skyfishjy/443b7448f59be978bc59
高橋 徹

2020/10/13

高徹 08:21 機能 #165 (フィードバック): Androidアプリケーション(検温記録)を古典MVC構造で作成する
しばらく使用していると、検温履歴の表示で次の事象が発生するようになった。
* 順番がID逆順ではなく順不同で表示されることがある
* 同じ日時の検温が履歴上複数表示されることがある
状況から、onResumeが走るときに生じているように推測
RecyclerViewの使い方を事例調査すると、onResumeでは次の処理を記述する模様
* Adapterに変更通知(notifyDataSetChanged)
* RecyclerViewの表示を空にする ⇒ Cur...
高橋 徹

2020/10/04

高徹 08:04 機能 #167: Androidアプリケーション(検温記録)をJetPackを用いたMVVM構造で作成する(Kotlin編)
h4. ドメインオブジェクト v.s. エンティティクラス
View側(ViewModelおよびView)で扱うデータは、Roomへの依存性を持たないドメインオブジェクト(POJO)とするか、Roomのエンティティをそのまま流すか、のトレードオフが発生。
* リポジトリは永続化手段(SQLite、Realm、あるいはリモートに通信を介して)を抽象化するので、永続化手段の具象型(Entity)を扱うのは不適切では?
* ドメインモデルはRoomライブラリに依...
高橋 徹

2020/10/03

高徹 20:06 機能 #167: Androidアプリケーション(検温記録)をJetPackを用いたMVVM構造で作成する(Kotlin編)
h4. リポジトリとデータベース
JetPackでは、SQLiteデータベースのアクセスをRoomライブラリ(ORM)で行う。
h5. Roomで検温テーブル
Entity、Dao、Database の責務を持つクラスをそれぞれ用意する。
まずはEntityを担うクラス。これはSQLiteテーブルのスキーマとのマッピングを表現し、このクラスのインスタンスは1行のレコードを保持する。値を表す型なので、data class としている。
* Entityクラス T...
高橋 徹

2020/10/02

高徹 22:35 リビジョン f8c3ace7 (swe_primus): refs #167 Modify to provide an immutable property of MeasuredAt to an activity
高橋 徹
高徹 22:30 リビジョン 63aaca1a (swe_primus): refs #167 Move logic from activity to viewmodel
高橋 徹

2020/09/30

高徹 08:01 機能 #167: Androidアプリケーション(検温記録)をJetPackを用いたMVVM構造で作成する(Kotlin編)
h4. ViewModelの作成(1)
日時を保持し、日時を通知する機能を実装する。
通知機能はモデルとビューを分離する設計では必須であり、その手段としてJetPackではDataBindingとLiveDataの2つの仕組みが提供されている。ViewModelはLiveDataと組み合わせるのが定番なようで、そちらで実装する。
高橋 徹
高徹 08:00 リビジョン 4116efde (swe_primus): refs #167 Add ViewModel with measuredAt
高橋 徹

2020/09/27

高徹 23:08 リビジョン efb857f8 (swe_primus): refs #167 Add layouts, ViewBindings, and update Gradle version.
高橋 徹
高徹 23:05 機能 #167: Androidアプリケーション(検温記録)をJetPackを用いたMVVM構造で作成する(Kotlin編)
View周りのコード実装を行う
* TextView(日時表示)で現在日時を表示する
* NumberPickerの上限、下限値を設定する
* RecyclerView で空の時の表示(余力があればする、なくても可)
JetPack時代では、findViewByIdは使わず、DataBindingもしくはViewBindingを使ってXMLでレイアウトした部品とコードを紐づける。
[#166]では、Kotlin固有の仕組みで実現していたが、Javaでも...
高橋 徹
高徹 21:47 機能 #167 (進行中): Androidアプリケーション(検温記録)をJetPackを用いたMVVM構造で作成する(Kotlin編)
h4 新規プロジェクトを作成
* Android Studioで新規プロジェクト作成、名前は TempRecorderJetpackKt とし、言語はKotlin
* リポジトリに、ブランチ features/167 を作成し、初期生成物をコミット
commit:e44af410
* デバイス(Pixel 3)で実行 → OK
* Gradleのバージョンをデフォルトの6.1.1から6.6.1(最新安定版)に変更
[File]メニュー > [Projec...
高橋 徹
高徹 15:21 機能 #167 (解決): Androidアプリケーション(検温記録)をJetPackを用いたMVVM構造で作成する(Kotlin編)
[#165]の仕様で、但しアプリケーション構造をMVVM構造とし、ライブラリはJetPackで提供されるものからMVVM構造に必要なものを選択して使用する。
Kotlin言語で実装する。
h4. 結果
* リポジトリ
source:learn/android/TempRecorderJetpackKt
* Wikiページ
[[Androidプログラミング-RecyclerView]]
[[Androidプログラミング-Room]]
[[Andro...
高橋 徹
高徹 15:57 リビジョン e44af410 (swe_primus): refs #167 Add initial projects generated by Android Studio
高橋 徹
高徹 15:17 調査 #163 (解決): Windows 10 2004のWSL2にCentOS8を入れる
インストールして起動し、ユーザー環境が使用できたので解決とする。 高橋 徹
高徹 15:15 機能 #166 (解決): Androidアプリケーション(検温記録)を古典MVC構造で作成する(Kotlin編)
データベースはinsertとqueryのみ実装し、update、deleteは未実装だが目的は達しているので本チケットは解決とする。 高橋 徹
高徹 15:15 機能 #165 (解決): Androidアプリケーション(検温記録)を古典MVC構造で作成する
データベースはinsertとqueryのみ実装し、update、deleteは未実装だが目的は達しているので本チケットは解決とする。 高橋 徹
 

他の形式にエクスポート: Atom