タイトルについて

タイトルはまぁ煽りです。
URLが固定の場合はテストで気付きますし、大したことないです。

ただ、パラメータが変動の場合、
これに気付かずにリリースしてしまうということは、結構クリティカルになる事例も多いと思います。


気をつけてほしいこと

WebViewのURLに日本語が含まれると、URLがnilを返します。
以下の場合、if内のWebViewのロードまで処理がいかないです。

let webView = WKWebView()
let urlString = "https://search.yahoo.co.jp/search?p=日本語"
if let url = URL(string: urlString) {
    let urlRequest = URLRequest(url:url)
    webView.load(urlRequest)
}


以下のように、こんな風に強制ラッピングしてしまうと、もう最悪。
クラッシュしてしまいます。

if urlString != "" {
    let urlRequest = URLRequest(url:URL(string: urlString)!)
    webView.load(urlRequest)
}



対応策

以下のように
addingPercentEncodingで日本語含めたURLをエンコードすることが必要。

let encodeString = urlString.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) ?? ""
let url = URL(string: encodeString)