SwiftUI と MVVM を題材に、メンテナンス・機能を拡張しやすいコードの書き方を考える
- とある鉄道会社のとある路線の駅を一覧で表示する
- 駅番号・駅名(日本語)・駅名(英語)を表示する
- 1つのみ
ファイル名 | 内容 | 備考 |
---|---|---|
Station_Kobe.json | 駅に関する情報を記録 | |
JSONLoader.swift | JSON ファイルからデータを取得・解析 | SwiftUI チュートリアルで JSON ファイルからデータを取得・解析するコードを流用した |
Station.swift | データモデル(駅)を定義 | |
Line.swift | 路線に関する情報を列挙型で定義 | 神戸線のラインカラーは青 |
StationViewModel.swift | JSON ファイルから取得したデータを画面に渡す | |
KobeLineApp.swift | アプリを実行すると、まず実行する(エントリーポイント) | |
ContentView.swift | アプリの画面を定義 | |
StationNumberView.swift | 駅番号に関するビューを定義 | |
StationView.swift | 駅名に関するビューを定義 |
矢印 (→) の方向が一方方向であること
JSONLoader
はStationViewModel
のことを知らないStationViewModel
はKobeLineApp
のことを知らない ... 以下同様
- 現在は JSON ファイルからデータを取得し、解析している。データの取得先をデータベースに変更する際に発生する問題はあるか
- 現在は 神戸線のみ JSON ファイルからデータを取得している。仮に、宝塚線・京都線のデータも表示したいとする。その拡張にその変更に耐えられるか
- アプリの名前は
KobeLineApp
にしない方が良かった。理由:今後、宝塚線・京都線のデータも表示するかもしれないから
https://developer.apple.com/tutorials/swiftui
https://qiita.com/tanakadaichi_1989/items/bf36fc12a3541877cc78