iOS の家計簿アプリをつくる(要件定義編)

advent_calendar アドベントカレンダー

はじめに

こちらは個人開発アプリができるまで by am10 Advent Calendar 2024の 1 日目の記事です。
このカレンダーでは個人開発の iOS アプリを作って App Store Connect に提出するまでの私がやってる工程について書いていきます(今回は実際に提出まではしません)。

目的としては勢いでなんとなくやってることを 1 度整理してみようというのと他の人の個人開発アプリの工程てあんまり見る機会がないのでまとめてみようと思いました。
私はこの工程はこうしてる!とかあればコメントなどで教えていただけるとありがたいです。

対象読者は Swift, SwiftUI でなにか作ったことがある人を想定していますが初学者でもこのカレンダーを見ればアプリを作成して申請するまでできるようになっているでしょう(たぶん)。副産物として家計簿アプリを作れるようになっています!

1 日目は要件定義の工程について書きます。

下記について 25 日にわけて書く予定です。

  • 要件定義
  • サーバー選定
  • サーバー実装
  • アプリ作成
  • ローカライズ対応
  • ダークモード対応
  • アクセシビリティ対応
  • 単体テスト作成
  • スクショ作成
  • 申請準備

動機

今回は家計簿アプリをつくります。動機としては下記です。

  1. 支出のみを入力するアプリがほしい
    (多機能なアプリが多い印象でした)
  2. 自作のアプリなら家計簿をつけるという行為が続けれるのではないかと思った
    (何回か家計簿をつけようと思ったけど続かなかった)
  3. 食費などのカテゴリーを食品、飲料などさらに小カテゴリーとしてわけたかった
    (なんとなくもうちょっと細かい分類でみたかった)

機能

欲しい機能は下記です。

  1. 年ごとにグラフ表示ができる
  2. 月ごとにグラフ表示ができる
  3. 食費などカテゴリーにわけれる
  4. 食費などのカテゴリーを食品、飲料などさらに小カテゴリーにわけれる
  5. 端末間でデータの同期ができる
    (機種変したときもデータ保持しといてほしい)
  6. できるだけ手入力を減らしたい
    (レシート読み取りと交通系 IC カードの読み取りがしたい)

1 ~ 5 までは必須機能で 6 は追加機能でもいいかもしれないです。

開発など細かい要件は下記です。

  1. 対象 OS は iOS 17, 18
    (最新から 2 つでシェアは 80% 以上になるはず)
  2. iPhone, iPad に対応(画面は縦固定)
    (iPad mini などもあり横対応はむずかしいので)
  3. Xcode 16.0 で作成
  4. SwiftUI を使う
  5. サードパーティのライブラリはできるだけ使わない
    (ライブラリでエラーになったときにメンテがめんどくさいので)
  6. ローカライズは日本語と英語対応
    (ローカライズ対応してないアプリにあとから対応するのは手間なので英語のみ対応しておく)
  7. ダークモード対応
  8. アクセシビリティもできる限り対応
    (Voice Over と Dynamic Type に対応したい)

5 に関してはなかなか判断のむずかしいところです。ライブラリを使うことで得られる恩恵は大きいですが何でもかんでもライブラリを使用するとメンテコストが増大するおそれがあります。自作した場合とライブラリを使用した場合のコストを比較して判断していきたいところです。私は自作するのも好きなのでできるだけライブラリは使わないという指針でいきます。

おわりに

これで作るものは決まりました!明日は「端末間でデータの同期ができる」の機能を実現するためにサーバー選定をしたいと思います。

Amazon.co.jp

コメント

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