プロジェクト

全般

プロフィール

活動

2020/09/01から2020/09/30まで

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は未実装だが目的は達しているので本チケットは解決とする。 高橋 徹

2020/09/21

高徹 12:02 リビジョン 7ca59fbf (swe_primus): refs #166 Fix type of AUTHORITY
高橋 徹
高徹 11:50 リビジョン 0406a46c (swe_primus): refs #166 Add Content Provider
高橋 徹
高徹 11:48 機能 #166: Androidアプリケーション(検温記録)を古典MVC構造で作成する(Kotlin編)
アプリを実行するとすぐに落ちてしまう。 高橋 徹
高徹 11:19 機能 #166: Androidアプリケーション(検温記録)を古典MVC構造で作成する(Kotlin編)
MainActivity.kt にコンテントプロバイダアクセスを追記 高橋 徹
高徹 09:22 機能 #166: Androidアプリケーション(検温記録)を古典MVC構造で作成する(Kotlin編)
h4. コンテントプロバイダの作成(続)
h5. ContentProviderのサブクラス作成
コンテントプロバイダとして次の2種類のリクエストに対応する。
# すべての検温記録を取得
# 指定したIDの検温記録1件を取得
利用者は、次のコンテントURIでリクエストを指定する。
# "content://com.torutk.temprecorder.kt.provider/temperatures"
# "content://com...
高橋 徹

2020/09/20

高徹 10:51 機能 #166: Androidアプリケーション(検温記録)を古典MVC構造で作成する(Kotlin編)
h4. コンテントプロバイダの作成
* コンテントプロバイダの利用者とのインタフェースを決める
* コントラクトクラスの作成
* SQLiteOpenHelperのサブクラス作成
* ContentProviderのサブクラス作成
h5. 利用者とのインタフェースを決める
コンテントプロバイダの利用者は、次を指定する必要があるので、それらを決める。
* コンテントのURI
* データの構造(メタデータ)
Cursorから値を取り出すため...
高橋 徹

2020/09/19

高徹 08:29 機能 #166: Androidアプリケーション(検温記録)を古典MVC構造で作成する(Kotlin編)
RecyclerViewの実装については、次のWikiページに記載
[[Androidプログラミング-RecyclerView]]
高橋 徹

2020/09/15

高徹 22:01 機能 #166: Androidアプリケーション(検温記録)を古典MVC構造で作成する(Kotlin編)
h4. コントローラのロジック
h5. 検温日時の保持と表示
* 画面が表示されたときに、現在日時を検温日時として表示する
* 10分前/10分後ボタンを押すと、検温日時を変更する
日時(java.time.LocalDateTime)をフィールドに持ち、ボタンをクリックするとフィールドに保持した日時を±10分増減する。
日時を表示のために文字列化するには、java.time.format.DateTimeFormatterを用いる。
高橋 徹
高徹 15:02 機能 #166: Androidアプリケーション(検温記録)を古典MVC構造で作成する(Kotlin編)
h4. 画面に表示する文字のリソース化
レイアウトで使用する文字列は、国際化リソースとして定義する。
app/src/main/res/values/strings.xml に、IDと文字列の組み合わせで定義する。このファイルには英語文字列を定義する。
次に、日本語文字列を定義する。まず、Android Studio 上でstrings.xmlを開いた状態で、[Open editer]をクリックし、
{{thumbnail(clipboard-20200915075...
高橋 徹
高徹 15:45 リビジョン 4caca8db (swe_primus): refs #166 Add TempRecorder with classic MVC and Kotlin
高橋 徹

2020/09/14

高徹 08:23 機能 #166: Androidアプリケーション(検温記録)を古典MVC構造で作成する(Kotlin編)
レイアウトの確認をするため、実行(Android Device上で実行)したところ次のエラーに。
> Installation did not succeed.
> ...
アプリケーションのIDが、Java編とかぶっているため、アプリケーションIDは次に定義
* appモジュールのbuild.gradle
高橋 徹
高徹 07:41 機能 #166: Androidアプリケーション(検温記録)を古典MVC構造で作成する(Kotlin編)
h3. 画面レイアウトの作成
先のJava編[#165]では、ルートレイアウトをデフォルトのConstraintLayoutからLinearLayoutに変更し、入れ子構造で「古典的な」レイアウトを実施した。その後、入れ子構造のレイアウトは画面描画が重くなるのでフラット構造のレイアウトができるConstraintLayoutがよいという意見を見かけた。成程...、では今回はデフォルトのConstraintLayoutをルートレイアウトとして作成してみる。
h5. 入...
高橋 徹

2020/09/13

高徹 11:06 機能 #166 (進行中): Androidアプリケーション(検温記録)を古典MVC構造で作成する(Kotlin編)
h3. プロジェクトの新規作成
Android Studioで新規プロジェクト「TempRecorderClassicKt」を作成
* [File]メニュー > [New] > [New Project] で「Create New Project」画面を開く
* [Empty Activity]を選択し、[Next]ボタンをクリック
* 以下を記載し[Finish]ボタンをクリック
** Name欄に @TempRecorderClassicKt@
...
高橋 徹

2020/09/12

高徹 22:51 機能 #166 (解決): Androidアプリケーション(検温記録)を古典MVC構造で作成する(Kotlin編)
[#165]の仕様で、Kotlin言語で実装する。
開発環境は次
|_. OS | Windows 10 1909 Pro 64bit 日本語版 |
|_. IDE| Android Studio 4.0.1 |
結果
リポジトリ
source:learn/android/TempRecorderClassicKt

ファイル毎のコード行数(clocツール調べ)
|_. No.|_. ファイル名 |_. コード行数 |_. Jav...
高橋 徹

2020/09/07

高徹 23:25 リビジョン 9401aae1 (swe_primus): Add japanese resource
高橋 徹
高徹 08:48 リビジョン 06ec8581 (swe_primus): Add android TempRecorder project (Classic Java)
高橋 徹
高徹 08:37 リビジョン cf0a3eee (swe_primus): Add android directory under learn, and first project directory(empty)
高橋 徹
高徹 08:17 リビジョン ce9ac998 (swe_primus): modified for renewed url
高橋 徹
高徹 02:13 機能 #165: Androidアプリケーション(検温記録)を古典MVC構造で作成する
RecyclerViewの実装が結構大変そうである。
レイアウトファイル、関連クラスの実装が必要
* レイアウトXML
1行のViewのレイアウトを定義
* RecycleView.Adapterの派生クラス
1件のデータを1行のViewに設定
* RecycleView.ViewHolderの派生クラス
1行のView(ウィジェット)参照を保持
h5. activity_main.xmlにRecyclerViewを追加
Android Studio 4.0.1の...
高橋 徹
 

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