プロジェクト

全般

プロフィール

機能 #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)列ができるのでそこに日本語名を記載する。

戻る