大阪市中央区 システムソフトウェア開発会社

営業時間:平日09:15〜18:15
MENU

SwiftUI沼でゆっくり浸る 郵便番号Zipからリスト化へ・・

著者:川上洋
公開日:2022/07/10
最終更新日:2022/07/10
カテゴリー:技術情報 雑記
タグ:

こんにちは、川上です。

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 から・・

// 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 へと続くのでした。。。

ではでは、

    上に戻る