AC/UserData
ユーザデータを設定する基本クラス
複数のViewで扱えるようにObservableObjectにする
class UserData: ObservableObject {
...
}
変更した場合に自動的にUserDefaultsに入れられるように以下のようにdidSetを使ってメンバー設定
@Published var member:XXX {
didSet {
UserDefaults.starndard.set(value, forKey: key)
}
}
メンバーリスト
- currentLanguage:String
- アプリの言語設定。現在は、'en', 'ja' のみ対応
- historyData:[String]
- 資産の履歴。将来的にチャート化するために履歴を残す。日付と金額(構造未決定)
- lastUpdate: Date
- 最終更新日
- dollerRate: Double
- ドル/円のレート
- vcChecked: Bool
- 仮想通貨を更新対象にするかのチェック
- pmChecked: Bool
- 貴金属(現物資産)を更新対象にするかのチェック
- fcChecked: Bool
- 外国通貨を更新対象にするかのチェック
- vcAsset: Int
- 仮想通貨の総額(円)
- pmAsset: Int
- 貴金属の総額(円)
- fcAsset: Int
- 外国通貨の総額
- binanceAsset:Dictionary<String,Double>
- binanceの資産 [通貨:金額]
- poloniexAsset:Dictionary<String,Double>
- poloniexの資産 [通貨:金額]
- coincheckAsset:Dictionary<String,Double>
- coincheckの資産 [通貨:金額]
- sbivcAsset:Dictionary<String,Double>
- SBI VCの資産 [通貨:金額]
- vc: VcAssetClass = VcAssetClass()
- 仮想通貨取引所のAPI key, secret の構造体
struct VcAssetClass {
var isChecked:Bool = true
var keySecs:Dictionary<String, KeySec> = [
"Binance":.init(name:"Binance"),
"Poloniex":.init(name:"Poloniex"),
"Coincheck":.init(name:"Coincheck"),
"SBIVC":.init(name:"SBIVC")
]
}
KeySecは、API key, secret を格納する構造体。 メンバーは、以下ですべてキーチェーンに格納する。
- 更新対象か示す isChecked:Bool
- API keyを格納する apiKey:String
- secretを格納する secret:String