[Swift] 51 BBS閲覧アプリiOS版製作 その5 文字列分割 / TestFlight登録 / Vision Pro

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

手掛けている掲示板のHTMLから取得する文字列はスレッド番号、タイトル、投稿数が結合したものです。これを分割して、Viewに横並びさせました。

このアプリを公開する予定はないのですが、未経験のTestFlightに登録だけしてみました。内部テスターとして自分を登録し、iOSのTestFlightアプリからインストールしました。非公開のまま知り合いだけ内部テスターとして登録し、配布しても面白そうです。内部テスターは100人、外部テスター(アプリ要審査承認)は10000人まで登録できます。

Xcodeベータ版のVision Proシミュレータでも使ってみました。Vision ProではiPad版UIで使用できます。

import Foundation

struct ThreadContent{
    let threadNum: Int
    let threadTitle: String
    let threadPostNum: Int
}

func splitTitle(threadString: String) async -> ThreadContent {
    var threadContent: ThreadContent
    var colonIndex: String.Index?
    var openParenIndex: String.Index?
    var number: Int = 0
    var title: String = ""
    var postCount: Int = 0
    
    // 番号を取り出す(最初のコロンの左側)
    if let index = threadString.firstIndex(of: ":") {
        colonIndex = index
        if let colonIndex = colonIndex {
            number = Int(threadString[..<colonIndex]) ?? 0
            print("番号: \(number)")
        }
    }
    
    if let index = threadString.lastIndex(of: "(") {
        // タイトルを取り出す(最初のコロンの右が始点、末尾から最初の開き括弧の左が終点)
        openParenIndex = index
        if let colonIndex = colonIndex, let openParenIndex = openParenIndex {
            title = String(threadString[threadString.index(after: colonIndex)..<openParenIndex])
            print("タイトル: \(title)")
        }
        
        // 投稿数を取り出す(開き括弧右から末尾1文字を削除した数字)
        if let openParenIndex = openParenIndex {
            let postCountString = threadString[threadString.index(after: openParenIndex)..<threadString.index(before: threadString.endIndex)]
            postCount = Int(postCountString) ?? 0
            print("投稿数: \(postCount)")
        }

    }
    
    threadContent = ThreadContent(threadNum: number, threadTitle: title, threadPostNum: postCount)
    
    return threadContent
}
TestFlightにアルファ版を登録、配布可能にした
Vision Proシミュレータでテスト