[Swift] 52 BBS閲覧アプリiOS版製作 その6 スレッド表示 / datファイル取得

[Mac M2 Pro 12CPU, Ventura 13.6, iOS 17.0.3, Xcode 15.0]

掲示板サイトからdatファイルをダウンロードするところで、結構時間がかかりました。

ちょっとした手違いで非同期関数が非同期的に動作せず、ダウンロード完了の手前で終わっていました。

今はdatファイルの内容をそのまま表示しています。次はこれをHTMLに加工します。

datファイルはiPhone内のコンテナに保存しています。エディタで内容を確認するため可視ファイルにしたいのですが、今のところできていません。

掲示板名(横線)スレッドタイトル(横線)スレッド内容、を縦に並べている
import SwiftUI

struct datView: View {
    var board: Board?
    var thread: Thread?
    @State var datPath: String = ""
    @State var datContent: String?

    var body: some View {
        VStack(spacing: 8) {
            if let board = board {
                Text(board.name)
                    .font(.system(size: 16))
                Divider() // 横線
            }
            if let thread = thread {
                Text(thread.threadTitle)
                    .font(.system(size: 16))
                Divider()
            }
            // datファイルの内容を表示する
            if let content = datContent {
               Text(content)
            }
            Spacer()
        }
        .padding(.horizontal, 0)
        .padding(.top, 0)
        .padding(.bottom, 0)
        .task {
            if let thread = thread, let board = board {
                datPath = await makeDat(id: thread.threadID, url: board.url)
                datContent = await readDatFile(path: datPath)
                if datContent?.isEmpty ?? true {
                    print("datなし")
                }
            }
        }
        .refreshable {
            if let thread = thread, let board = board {
                datPath = await makeDat(id: thread.threadID, url: board.url)
                datContent = await readDatFile(path: datPath)
                if datContent?.isEmpty ?? true {
                    print("datなし")
                }
            }
        }
    }
}

struct datView_Previews: PreviewProvider {
    static var previews: some View {
        datView()
    }
}
今のところアプリ本体は852KB