iOS の家計簿アプリをつくる(月画面作成編)

advent_calendar アドベントカレンダー

はじめに

こちらは個人開発アプリができるまで by am10 Advent Calendar 2024の 8 日目の記事です。

8 日目は月画面を作成します。
完成形はこんな感じです。

グラフ 一覧
1 2

タブ切替

まずはタブを作成します。MonthView.swift ファイルを作成し下記のように year を追加します。

ContentView.swift を下記のように修正します。

ExpenseLogApp の ContentView の生成処理を下記のように修正します。

これでタブ切替は完成です。

年選択

次に年を選択するためのピッカーを作成します。これは年画面と同じです。
MonthView を下記のように修正します。

月選択

次に月を選択するためのピッカーを作成します。
年選択と同じように MonthView に下記を追加するだけです。

項目選択

次に項目選択をするピッカーを作成します。これも年画面と同じです。
MonthView に下記を追加するだけです。

登録ボタン

登録ボタンは年画面作成時にすでに ContentView に追加済みなのでやることはありません。

データ取得

次にデータ取得処理です。年画面作成時とほぼ同じです。

サーバーからデータ取得

サーバーから取得する処理は下記のようにします。

ローカルにデータを保存

ローカルにデータを保存するには Database.swift に下記を追加します。

MonthView を下記のように修正します。

年画面と同じように下記を追加しすればそれぞれのピッカー選択時に指定のデータを取得できるようになります。

合計金額表示

年画面同様に下記を追加して合計金額を表示します。

グラフ・一覧切替

次にグラフ表示と一覧表示を切り替えられるようにします。
MonthView に下記を追加してセグメントコントロールで切り替えられるようにします。

円グラフ

まずは円グラフ表示を作成します。
円グラフを表示するには項目(もしくはサブ項目)ごとにデータをわける必要があります。
年画面と同じように MonthChartFormatter.swift ファイルを作成して下記のように実装します。

グラフ表示は複雑になりそうなので MonthView とはクラスをわけます。
MonthChartView.swift ファイルを作成して下記のように実装します。

MontView を下記のように修正したら円グラフ表示は完成です。

一覧

次に一覧表示です。Category に下記を追加します。

円グラフ表示を別クラスにしたので一覧表示も別クラスで行います。
MonthListView.swift を作成して下記のように実装します。

これで一覧表示もできました。

ソート

一覧表示はできたのですが一覧をみたらソート機能がほしいなと思ったのでソート機能を追加します。
MonthListView を下記のように修正します。

これで一覧表示で購入日と金額の昇順・降順でソートできるようになりました。

余白など調整

最後に余白などを調整し MonthView の body はこんな感じです。

おわりに

これで月画面も完成です。SwiftUI なら一覧表示もサクッとできちゃいます。

明日は登録画面を作成予定です。

1人でアプリを作る人を支えるSwiftUI開発レシピ | 佐藤 剛士 |本 | 通販 | Amazon
Amazonで佐藤 剛士の1人でアプリを作る人を支えるSwiftUI開発レシピ。アマゾンならポイント還元本が多数。佐藤 剛士作品ほか、お急ぎ便対象商品は当日お届けも可能。また1人でアプリを作る人を支えるSwiftUI開発レシピもアマゾン配送商品なら通常配送無料。

コメント

タイトルとURLをコピーしました