機能 #165
高橋 徹 さんが3年以上前に更新
h4. 目的
毎日の体温計測をスマートフォンのメモ機能で記録していたが、記入が結構面倒であった。
また、昨今のAndroidアプリケーション開発事情を把握するため、5年前の古典的なMVC構造と対比したい。そこで、まずMVC構造で作成してみる。
h4. 条件
* アプリケーション名は、「Temp.Recorder」
* 単独のアプリケーションでデータ永続化機能を持つ
* 開発言語はJava、完成後Kotlin版作成
* ActivityとContentProviderで構成する
* データ永続化はSQLiteを使う
* 開発環境は、Windows 10、Android Studio 4.0.1、APIレベル29
* 古典的MVC版では便利ライブラリは極力排する
* レイアウトイメージ
<pre>
+---------------------+
|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 |
| : |
+---------------------+
</pre>
h4. 完了条件
リポジトリにビルド・実行可能なアプリケーションを登録する。
h4. 結果
ソースコードリポジトリ
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 |
h4. 課題、残件
* NumberPickerはフォントのサイズを指定する属性がない
→ ぐぐると、NumberPickerを継承しサイズを変更する回避方法がちらほら見つかる
* RecyclerViewは変更箇所(インデックス番号)を指定すると最小限の表示更新処理をするが、Cursorの場合変更箇所(インデックス)を取るのが面倒(新旧Cursorの差分を取る等)なので丸ごと変更としている
* 画面が英語
→ app/res/values-ja フォルダを作成し、その中に strings.xml ファイルを設け、キーに対する値を日本語で記述
Android Studioの場合、元の app/res/values/strings.xmlを開き、編集領域右上の[Open editr]をクリックし、「Translations Editor」を開く。地球に+のアイコン(Add Locale)をクリックし、Javanese(ja)を選択。するとキーに対してDefault Value列の右側にJapanese(ja)列ができるのでそこに日本語名を記載する。
戻る