SwiftUI沼でゆっくり浸る 郵便番号Zipからリスト化へ・・
こんにちは、川上です。
Mac上に郵便番号ZipをDLして、解凍したCSVファイルをPrjに組み込んで、一応、リスト表示はできました。
で、マスター&ディテール形式の都道府県名List(Master) → 郵便番号リスト(Detail) の形で表示したかったのです。
47件の都道府県名のCSVfileをPrjに組み込みは、解凍するCSVFileの容量も大きくなるし。。、。。。メンドイし・・・
DLするZipファイルだけのサイズ量ではあれば、ざっと1数MB位かな。で、全CSVFileを解凍したら、10数MBになるから、ダメすよね。
都道府県名の個別分をDLするZipはをサンドボックスに保存しても、解凍せず「Zipだけのなら、多分、大丈夫かな(?)
で、指定した都道府県分を表示するZipは、初回はDLして保存が必要だけど、2回目以降は保存したZipを読み込むだけで済むようにしたら、解凍からList化へは、きっと、早くなる(ハズと思う・・)
まずは、必要そうなネタ部品を作って、集めていきます。
ViewModelの
vm : PostNumberViewModel
に、都道府県名とそのzipのDL用URLの tofukenArry から・・
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | // MARK: == 都道府県名とDL用URL型 struct stTifuken:Identifiable,Hashable { let id:String = UUID().uuidString let name:String let dl_url:String } class PostNumberViewModel:ObservableObject { let LFmanager = LocalFileManager.instance @Published var tofukenArry: [stTifuken] = [] // 都道府県名とDL用URL型 arry init() { // getPostNumberArry() getTofukenArry() } // MARK: == tofukenArryの作成 func getTofukenArry() { self.tofukenArry.append (contentsOf: [stTifuken(name:"北海道",dl_url:"https://www.post.japanpost.jp/zipcode/dl/kogaki/zip/01hokkai.zip") ,stTifuken(name:"青森県",dl_url:"https://www.post.japanpost.jp/zipcode/dl/kogaki/zip/02aomori.zip") ,stTifuken(name:"岩手県",dl_url:"https://www.post.japanpost.jp/zipcode/dl/kogaki/zip/03iwate.zip") ,stTifuken(name:"宮城県",dl_url:"https://www.post.japanpost.jp/zipcode/dl/kogaki/zip/04miyagi.zip") ・・・・ ・・・・ } } |
tofukenArryの47都道府県名とURLのコード書きのガリガリは、 頑張らにゃね
でもって、Masterの ContentView に、tofukenArry を流したのでした。
郵便番号Listを表示するDetail用viewの detailPostNum へと続くのでした。。。
ではでは、