bankids-ios

FamiBank (ファミバンク)

Bank + Kids の造語から生まれた、子供のお小遣いを管理するiOSアプリです。

どんなアプリ?

インターネットバンキングとATMを一体化したような、お小遣い管理アプリです。

子供がお年玉やお祝いで大きな金額をもらったとき、全額を渡すと使いすぎてしまうことがあります。FamiBankを使えば、親がお金を預かりながら残高を管理し、子供が必要なときだけお金を渡すことができます。

使い方の例

  1. 子供がお年玉で1万円をもらったら、アプリに1万円を入金して親がお金を預かる
  2. アプリには残高1万円と表示される
  3. おもちゃ屋で子供が1,000円使いたいとき、アプリから1,000円を出金して渡す
  4. アプリの残高は9,000円になる

主な機能

口座の仕組み

子供A
├── 親口座      (親が管理するお金)
└── 財布口座    (子供に渡したお金)

子供B
├── 親口座
└── 財布口座

親口座から財布口座へ1,000円を振り替えると、親口座は-1,000円、財布口座は+1,000円になります。銀行の口座振替と同じイメージです。

技術スタック

機種変更・バックアップ

  1. 旧iPhoneのホーム画面右上にあるバックアップアイコンから「バックアップと復元」を開きます。
  2. 「バックアップを書き出す」を選び、JSONファイルを「ファイル」に保存します。
  3. iCloud Driveに保存するか、「ファイル」アプリの共有からAirDropで新しいiPhoneに送ります。
  4. 新しいiPhoneにバックアップ機能対応版のFamiBankをインストールし、初回画面の「バックアップから復元」を開きます。設定済みの場合はホーム画面右上から開けます。
  5. 「バックアップを選ぶ」でファイルを選び、日時・子供・口座・履歴の件数と残高を確認します。
  6. 「このバックアップで復元する」から置き換えを確認して復元します。残高と履歴を確認するまで、旧iPhoneのデータを残してください。

復元すると、新しいiPhoneにある全データがバックアップの内容に置き換わります。追加・統合は行いません。現在の記録も残したい場合は、復元前に書き出してください。読み込み・検証・保存に失敗した場合、現在のデータは保持されます。

バックアップには子供名、口座、全取引履歴、メモ、日時、振替の対応関係、選択中の子供と口座が含まれます。ファイルは暗号化されません。保存先と共有相手にご注意ください。対応するファイルサイズは20MBまでです。自動同期は行いません。

開発・テスト

XcodeでBankids.xcodeprojを開き、Bankidsスキームを選択します。バックアップ処理のSwift TestingテストはBankidsTests/、画面操作のXCTest UIテストはBankidsUITests/にあります。

xcodebuild -project Bankids.xcodeproj -scheme Bankids \
  -destination 'platform=iOS Simulator,name=iPhone 17 Pro,OS=26.0' \
  -derivedDataPath build/DerivedData CODE_SIGNING_ALLOWED=NO test

利用可能なシミュレータに合わせて-destinationを変更してください。テストでは書き出し・復元の往復、重複防止、不正ファイルの拒否、保存失敗時のロールバック、永続ストアの再読み込みを確認します。UIテストは初回設定、入出金、残高不足、振替、メモ編集、子供と口座の切り替え、再起動、バックアップのファイル選択画面を操作します。

UIテストはDebugビルドでテスト専用の保存先を使用します。同じシミュレータで他のアプリを操作するとテストに干渉するため、検証中は専用端末を使ってください。データ処理だけを確認する場合は-only-testing:BankidsTestsを追加します。

iOS 27の検証方法と確認範囲はOS互換性の確認を参照してください。