アプリ開発日記 #209 リファクタリングはいったん完了
6月にやれたこと
ざっくり家計簿のリファクタリングを実施しました。
リファクタリングは6月中に完成せず、7月も少し作業が残ってしまいました。
なお、きりのいいところまで、ソースを修正できたため、後はテストを実施して完了とする予定です
今日の作業
ざっくり家計簿のリファクタリングしたソースコードに対してテストコードを実装しています。
アプリのけっこう広い範囲の修正を行ったこと、そしてもともと作成していたテストコードがテーブルを意識した大きな単位でのテストコードであったことから、テストコードについてもかなりの量修正が必要となりました。
しかし、今回の修正でドメインモデルのみを対象とした小さな単位でのテストコードも書けるようになったため、今後少しずつ小さい単位でのテストコードも追加していきたいと考えています。
(とりあえず今回は、小さい単位でのテストコードの追加はしない予定です。)
明日の予定
- 不要なロジックを削除する
- アプリをテストする
アプリ開発日記 #208 リファクタリングの続き
6月にやりたいこと
ざっくり家計簿のリファクタリングと、機能追加をしていきたいと考えています。
ざっくり家計簿は中途半端にDDDを取り入れた形にソースコードを直しているため、とてもソースコードが読みにくくなっています。
そのため、今後のことも考えてここでいったんリファクタリングを使用と思います。
また、ざっくり家計簿以外のアプリについても機能追加を行っていきたいと考えています。
今日の作業
ざっくり家計簿のリファクタリングをしています。
今回は、一部テストコードを作成していることもあり、かなり大胆な修正を行っています。
具体的には、クラス名の見直しや、フォルダ構成の変更を行っています。
そして、今までできるだけ触らないようにしてきた計算ロジックの修正にも手を付けています。
そのため、ロジックの記述場所が変わるなど、一時的に読みにくくなっているような気もしています。
本当にこのまま続けて大丈夫なのか?
正直、リファクタリングのやり方を間違えたなと感じています。
クラス名やフォルダ構成を見直すのであれば、見直す前に命名規則を決めるべきでした。
命名規則を決めて、命名規則に沿ってクラス名やフォルダ構成を変更していれば、リファクタリングの途中だからと言って、どこに何があるかわかりにくくなることもなかったのかなと思っています。
また、リファクタリングの範囲を明確にしていなかったのもよくなかった気がします。
リファクタリングの範囲を決め、その範囲の外側は極力変更しないようにしたほうがよかったような気がしています。
既に範囲が全体に及んでる今となっては遅いのですが。。。
明日の予定
リファクタリングを続ける。
アプリ開発日記 #207 リファクタリングをする
6月にやりたいこと
ざっくり家計簿のリファクタリングと、機能追加をしていきたいと考えています。
ざっくり家計簿は中途半端にDDDを取り入れた形にソースコードを直しているため、とてもソースコードが読みにくくなっています。
そのため、今後のことも考えてここでいったんリファクタリングを使用と思います。
また、ざっくり家計簿以外のアプリについても機能追加を行っていきたいと考えています。
今日の作業
ざっくり家計簿のリファクタリングを開始しました。
ざっくり家計簿は残金の差額を基に日々の収支を管理しています。
そのため、コアドメインとして日付とお金を定義することにしました。
そして、現在履歴情報のロジックをドメインサービスとしていましたが、これをドメインモデルのほうに順次移動していきたいと考えています。
現在履歴情報のロジックが1メソッドに100ステップほどある大きなメソッドとなっているのですが、これにより履歴情報の計算ロジックをシンプルにできるのではないかと考えています。
明日の予定
リファクタリングを続ける。
アプリ開発日記 #206 次に向けた準備
5月にやりたいこと
今後アプリをバージョンアップしていくために、自分の技術力を向上させる必要が出てきました。
そのため、5月は既存のアプリのバージョンアップのための準備を行っていきたいと考えています。
とりあえず、まずはAzure FunctionsとCosmosDBでサーバーレスなアプリを作れるようにしたいと考えています。
理由は、アプリ内課金を追加する際に検証サーバーを作る必要があるためです。
検証サーバーを作れるようにするために、Azure FunctionsとCosmosDBで何か簡単なAPI的なものを作成できるようにしようと考えています。
そして、アプリの画面デザインをよりおしゃれにするために、Xamarinのほうも新しく追加された機能など、いろいろと触ってみようと考えています。
今後のアプリの機能追加
ざっくり家計簿に今以上に家計簿っぽい機能を追加していこうと考えています。
また、「がんばる!!その前に」というSWOT分析ができるアプリを今以上に使いやすくできるように修正していきたいと考えています。
そして、今出しているアプリにサブスクリプションを追加したいと考えています。
機能追加以外でやりたいこと
既存のアプリのアプリストアに概要欄を修正したいと考えています。
理由は、ざっくり家計簿の概要欄の修正により、ざっくり家計簿のプロダクトページの訪問者が増えたためです。
まあ、おいおいかな。。。
Xamarinの本
- 作者:Charles Petzold
- 発売日: 2017/09/05
- メディア: Kindle版
プログラミングXamarin 下 Xamarin.FormsとC#によるクロスプラットフォームモバイルアプリ開発 (マイクロソフト関連書)
- 作者:Charles Petzold
- 発売日: 2019/01/31
- メディア: 単行本
アプリ開発日記 #205 ざっくり家計簿にヘルプをつけて審査に出した!!
ざっくり家計簿への機能追加
ざっくり家計簿にヘルプをつけることにしました。
また、金額の入力方法の変更も行いました。
今回ヘルプをつけることにした理由は、ヘルプをつけることでアプリを使い続けてもらえる割合を増やせないかと考えたためです。
以前ストア概要欄を変更したことで、若干新規流入が増えていました。
しかし、インストール後なかなか使い続けてもらえていないようでしたので、少しでも使い続けてもらえるようにするために使い方のページを追加してみました。
金額入力の変更のほうは、自分が使っていたときにいまいち使いづらいと感じていた箇所を修正しました。
こちらは、まだ修正の余地があるのですが、基本的な部分は完成したため、いったんリリース物に含めることにしました。
機能追加の進捗
ヘルプ画面の追加および、金額の入力方法の変更が完了し、審査に提出しました。
そして、無事審査も通過しリリースが完了したようです。
4月にやったこと
- ざっくり家計簿へリセット前の情報の表示/非表示の切り替えのための機能を追加
- ざっくり家計簿の金額の入力方法の変更
- ざっくり家計簿へヘルプ画面を追加
- その他ざっくり家計簿のバグ修正
Xamarinの本
- 作者:Charles Petzold
- 発売日: 2017/09/05
- メディア: Kindle版
プログラミングXamarin 下 Xamarin.FormsとC#によるクロスプラットフォームモバイルアプリ開発 (マイクロソフト関連書)
- 作者:Charles Petzold
- 発売日: 2019/01/31
- メディア: 単行本
アプリ開発日記 #204 ざっくり家計簿のリセット機能を強化する
ざっくり家計簿への機能追加
ざっくり家計簿のリセット機能を強化しようとしています。
現在は、リセットボタンを押下することで、リセット日以前の情報は非表示とするようにしています。
しかし、リセット前の情報も確認したい場合が存在すると思われるため、リセット前の情報の表示非表示機能を追加しようとしています。
機能追加の進捗
リセット機能の実装は、ほぼ完了しました。
そして、リセット機能の動作を確認している中で、早めに直しておきたいバグがいくつか見つかりました。
バグの修正については、いったん修正が完了しました。
そのため、残りはテストを実施して、今回の修正に問題がないことを確認するのみとなりました。
今回見つかったバグについて
今回見つかったバグは、月ごとの使用金額を登録しているテーブルに対して、削除不要なデータまで削除を行っているというものでした。
原因は、月ごとの使用金額を登録しているテーブルはDelete-Insertを行っているのですが、Insertデータは前回からの差分のみの登録であるのに対して、
Deleteのほうは全データを削除していたためでした。
なお、今回の問題が発生するのは、現在のバージョンのAPPで2か月以上使用する場合となります。
また、過去にも、計算が正しくできていないまま登録している場合があったため、再計算ボタンを設定に持たせることも検討したほうがいいかもと少し思っています。
(優先度はかなり低めですが。。。)
Xamarinの本
- 作者:Charles Petzold
- 発売日: 2017/09/05
- メディア: Kindle版
プログラミングXamarin 下 Xamarin.FormsとC#によるクロスプラットフォームモバイルアプリ開発 (マイクロソフト関連書)
- 作者:Charles Petzold
- 発売日: 2019/01/31
- メディア: 単行本
アプリ開発日記 #203 Todo Gachaアプリを多言語化しました
Todo Gachaへの機能追加
Todo Gachaの多言語化を行いました。
多言語化を行うこととした理由は、Todo Gachaをすでに日本以外の国に向けてもリリースしており、さらに海外でインストールしていただいた方がいたためです。
そのため、海外の人でも使いやすく、また使いたくなるアプリとしていくために、まずは多言語化を行いました。
今回行った多言語化対応は、2つの機能からなります。
1つ目は、スマホの言語設定を参照して表示言語を決定する機能、そしてもう一つは、設定画面で選択した言語での言語表示機能です。
多言語化の方法については、少し前にミニマムコードを作成していたため、今回はそれほど悩むことなく多言語化の実装ができました。
機能追加の進捗
Todo Gachaの多言語化対応が完了し、審査へ提出しました。
3月の成果
- ざっくり家計簿の入力履歴および月単位の金額表示の算出ロジックの変更
- ざっくり家計簿へのリセット機能の追加
(今回の機能追加ではリセット機能は、一度リセットを行うと過去の情報が見れなくなります)
4月にやりたいこと
- ざっくり家計簿のリセット前の情報の表示切替
- ざっくり家計簿の金額入力方法の変更
- ざっくり家計簿の金額入力のヘルプを追加