SwiftUI學(xué)習(xí)100天(Day52 - 項(xiàng)目 10,第四部分)

原創(chuàng)鏈接:https://www.hackingwithswift.com/100/swiftui
以下內(nèi)容僅供學(xué)習(xí)參考:

我們?cè)谶@里開展的每個(gè)新項(xiàng)目都會(huì)單獨(dú)向你介紹新概念,然后在真實(shí)應(yīng)用程序的上下文中再次介紹,目的是在不同情況下向你展示同一件事兩次,以幫助它更深入地進(jìn)入你的長(zhǎng)期記憶。
但是今天,隨著我們的應(yīng)用程序的完成,是時(shí)候進(jìn)行長(zhǎng)期過程的另一個(gè)重要部分了:測(cè)試你的記憶力,以及一些幫助你走得更遠(yuǎn)的挑戰(zhàn)。不管你喜不喜歡,這一步很重要——正如宇航員約翰·楊曾經(jīng)說過的,“進(jìn)步最大的敵人是知識(shí)的幻覺?!?/p>
相信我:知道你理解某件事比你認(rèn)為你理解它要好得多。這就是為什么我不斷地向你灌輸要點(diǎn):我希望你厭倦到Form
幾乎可以自己編寫這門課程。我想讓你看到Codable
并確切地知道它的含義以及它在幕后是如何工作的,永遠(yuǎn)不要認(rèn)為它有某種魔力。
我們?cè)谶@里建立的所有這些基礎(chǔ)將持續(xù)多年,這意味著你在此基礎(chǔ)上建立的一切——你在未來學(xué)習(xí)或創(chuàng)造的一切——不是建立在對(duì)你讀過一次的東西的一知半解之上,而是相反,你可以擁有真正、持久的信心。
今天你應(yīng)該完成項(xiàng)目 10 的總結(jié)章節(jié),完成它的回顧,然后完成它的所有三個(gè)挑戰(zhàn)。

紙杯蛋糕角:總結(jié)
希望這個(gè)項(xiàng)目向你展示了如何運(yùn)用你所知道的技能——SwiftUI 的表單、選擇器、步進(jìn)器和導(dǎo)航——并將它們構(gòu)建到一個(gè)應(yīng)用程序中,該應(yīng)用程序?qū)⑺杏脩魯?shù)據(jù)發(fā)送到服務(wù)器并處理響應(yīng)。
你可能還沒有意識(shí)到這一點(diǎn),但你在這個(gè)項(xiàng)目中學(xué)到的技能是絕大多數(shù) iOS 開發(fā)人員最重要的技能:獲取用戶數(shù)據(jù),將其發(fā)送到服務(wù)器,并處理響應(yīng)可能占重要任務(wù)的一半存在的應(yīng)用程序。是的,發(fā)送什么數(shù)據(jù)以及如何使用它來更新 UI 千差萬別,但概念是相同的。
回顧你學(xué)到的東西
任何人都可以聽完教程,但要記住所教的內(nèi)容需要實(shí)際工作。我的工作是確保你從這些教程中獲得盡可能多的知識(shí),因此我準(zhǔn)備了一個(gè)簡(jiǎn)短的評(píng)論來幫助你檢查呢的學(xué)習(xí)情況。
單擊此處查看您在此項(xiàng)目中學(xué)到的知識(shí):https://www.hackingwithswift.com/review/ios-swiftui/cupcake-corner

挑戰(zhàn)
最好的學(xué)習(xí)方法之一是盡可能多地編寫自己的代碼,因此你應(yīng)該嘗試通過以下三種方式擴(kuò)展此應(yīng)用程序,以確保你完全理解正在發(fā)生的事情。
我們的地址字段目前被認(rèn)為是有效的,如果它們包含任何東西,即使它只是空白。改進(jìn)驗(yàn)證以確保純空格字符串無效。
如果我們調(diào)用
placeOrder()
失敗——例如,如果沒有互聯(lián)網(wǎng)連接——為用戶顯示信息警報(bào)。要對(duì)此進(jìn)行測(cè)試,請(qǐng)嘗試注釋掉request.httpMethod = "POST"
代碼中的行,這會(huì)強(qiáng)制請(qǐng)求失敗。對(duì)于更具挑戰(zhàn)性的任務(wù),看看你是否可以將我們的數(shù)據(jù)模型從一個(gè)類轉(zhuǎn)換為一個(gè)結(jié)構(gòu),然后
ObservableObject
圍繞它創(chuàng)建一個(gè)類包裝器來傳遞。這將導(dǎo)致你的類具有一個(gè)@Published
屬性,即其中的數(shù)據(jù)結(jié)構(gòu),并且應(yīng)該使Codable
對(duì)該結(jié)構(gòu)體的支持更加容易。


