操作
機能 #165
未完了Androidアプリケーション(検温記録)を古典MVC構造で作成する
開始日:
2020/08/31
期日:
進捗率:
50%
予定工数:
説明
目的¶
毎日の体温計測をスマートフォンのメモ機能で記録していたが、記入が結構面倒であった。
また、昨今のAndroidアプリケーション開発事情を把握するため、5年前の古典的なMVC構造と対比したい。そこで、まずMVC構造で作成してみる。
条件¶
- アプリケーション名は、「Temp.Recorder」
- 単独のアプリケーションでデータ永続化機能を持つ
- 開発言語はJava、完成後Kotlin版作成
- ActivityとContentProviderで構成する
- データ永続化はSQLiteを使う
- 開発環境は、Windows 10、Android Studio 4.0.1、APIレベル29
- 古典的MVC版では便利ライブラリは極力排する
- レイアウトイメージ
+---------------------+ |Temp.Recorder | <-- TextView, title of input region | 08.31 07:10 | <-- TextView, date and time to be record | [+10min] [-10min] | <-- Button x 2 wrapped by LinearLayout(Horizontal) | 35 4 | | ---- --- | <-- NumberPicker x 2 +- wrapped by LinearLayout | 36 . 5 [Submit] | <-- Button + (Horizontal) | ---- --- | | 37 6 | |Temp.Record | <-- TextView | 08.30 08:05 36.6 | <-- RecyclerView | 08.29 07:30 36.4 | | : | +---------------------+
完了条件¶
リポジトリにビルド・実行可能なアプリケーションを登録する。
結果¶
ソースコードリポジトリ
source:learn/android/TempRecorderClassic
No. | ファイル名 | ステートメント数 |
---|---|---|
1 | MainActivity.java | 81 |
2 | TempAdapter.java | 66 |
3 | TempProvider.java | 58 |
4 | TempColumns.java | 11 |
5 | TempDbHelper.java | 23 |
課題、残件¶
- NumberPickerはフォントのサイズを指定する属性がない
→ ぐぐると、NumberPickerを継承しサイズを変更する回避方法がちらほら見つかる - RecyclerViewは変更箇所(インデックス番号)を指定すると最小限の表示更新処理をするが、Cursorの場合変更箇所(インデックス)を取るのが面倒(新旧Cursorの差分を取る等)なので丸ごと変更としている
操作