日報16日目
自宅で作業。合間に前泊の宿とか引っ越しの手配とかをした。
ごみ収集カレンダー
土曜のstapyイベントの最中に、ドロップダウンで地区を選択してカレンダー一覧を表示するまでは実装した。
今日は設定画面の作成は完了。shared_preference というプラグインを使うとDartからSharedPreferenceを使える。今回作っているアプリは、前日と当日の通知をするしないと時刻を設定できるようにした。
残る機能のスケジュール機能を実装中。flutter_local_notificationsというプラグインが高機能で良さそうだったんだけど必要なときだけ通知する方法が分からない。android_alarm_managerがプリミティブで良いのかも。。実装量は多くなるけど。
今週早いうちに完成させたい。今日はこのへんで。
所感
自宅で作業すると頭痛になりやすいのは姿勢が悪いからと予想して姿勢を正しくしてみた。効果はよく分からない。
日報13日目
午前中は洗濯と引っ越しの見積もり。
午後は実家で借りた車の返却、掃除。あと以前からメンテしているアプリのメンテ。久しぶりにVisual Studioを開いた。
所感
時間がないこともなかったけど昨日の長距離運転の疲れが相当あり、これといった作業はしなかった。明日はできるはず。。。
日報11日目
アプリを実地でテストしてきた。2回しか試せなかったけど、期待した挙動になった。精度的には問題なさそう。もう少し長い距離で確認する必要もあるが。。。まあテスト初回としては大成功だし、MVPとして有効なアプリだと確認できたと考えている。
wrapじゃなくてlapだ。。。修正済み。
当然、課題もある。課題管理が必要になってきた。
- pixel3の画面サイズだと、明るさ最大にしてもさすがに泳ぎながらの視認性が厳しい。7インチくらいあれば良さそう。7インチタブレットあるけど、古いのでアプリをインストールできるか要確認
- ターンのしぶきで意図しないタッチが起きてしまい、設定メニューが開いてしまった。キオスクアプリ化する手もあるようだが、ケースに入れるのが現実的な対応だろうなぁ
- スタート時はカウントダウンしてほしい。スタートをタップしてすぐ泳ぎだすのは慌ただしい。
- 自分にしか使い方は分からないので、UIの改善。ラベルつけるとか。泳ぎながら見える必要があるので、必要な情報は大きく表示してそれ以外は表示したくないんだけど。。。
- リファクタリング
- 最後の停止時の考慮がまったくなく、stopをタップするしかないのがいまいち。あらかじめ泳ぐ距離を登録しておいて、その距離に達したらストップウォッチを止めるとかしたい。
- 静かな場所でやるなら現状方法の、音が最大になる瞬間をピークとすることで良いが、多くの人に使ってもらうには雑音があっても使えたほうが良い。となるともっと高級な音声認識が必要になるが。。。機械学習を適用したとして、学習モデルをdartから使うことってできるんだろうか。
- 有料で売るとなると、ターンの認識精度を確かめるための簡易アプリが必要になるのかも。。。
- ワークアウト管理サービス(stravaとか?)に投稿する機能がほしい
現状でも自分のニーズには合致するアプリになった。とても嬉しい。どうにかplayストアで公開するまでもっていきたい。
午後は実家の引っ越しを手伝う予定。
日報10日目
雪が降ったけどこの時期なのですぐに融けた。保育園に送ったあとにプールで練習。その後は終日自宅にてアプリ開発。途中、引越し業者に見積もり依頼をした。自己都合の引っ越しなのにこの時期に重なってしまった。。。
録音開始タイミングの調整、レイアウトの調整などをしてアプリはアルファ版としていったん完成した。
これでいったん現場で使ってみる。知らない人のために解説すると、クイックターン音を検知してラップを取ってくれるアプリである。水泳以外にも使えなくはないかも。
公開するには、以下の調整が必要と考えている。
- 自分にしか使い方は分からないので、UIの改善。ラベルつけるとか。泳ぎながら見える必要があるので、必要な情報は大きく表示してそれ以外は表示したくないんだけど。。。
- 停止時の挙動がイマイチ。録音を即時停止すべき。
- リファクタリング...
所感
- flutterのレイアウトシステムがまだよく分からない。Containerで適宜ラップしないと、widthやheightがinifinityだと怒られることがある
- setStateの無名関数内でmutationする。無名関数はasyncであってはならない。この辺はvueのmutationと同じだな