這是我將寫的一系列關於 Swift 和 iOS 應用程式開發的新教程的開端。

幾個月前,我已經做了一系列關於 Swift 的入門教學,你可以在這裡 連結文字找到。

對於 iOS / Mac 開發我並不陌生。在 Swift 出現之前的 2011 年左右,我使用 Objective-C 開發了幾個 iOS 應用程式和遊戲,以及一些在 Swift 初期開發的應用程式。Swift 只有六年的歷史。

我還開發了幾個基於 Web 技術堆疊(HTML + CSS + JavaScript)的 Mac 應用程式,但我不把它們算作原生應用程式。

創建運行原生程式碼的應用程式真的很特別。

相比於 JavaScript,Swift 是一種更低層次的語言,因此本質上更加複雜,但它也讓我們有機會做到在 JavaScript 和網頁上無法實現的事情。整個 iOS 框架和基礎設施生態系統更加廣泛和複雜。

這並不意味著其中一個比另一個更好。它們是完全不同的工具,存在於完全不同的環境中。讓我們來簡單比較一下網頁和 iOS 之間的差異。

網頁是開放的。沒有任何阻止你創建網站或網頁應用程式並在網頁上發布的限制。而 iOS 應用程式則存在於 Apple 的圍牆園地中。這提高了平台的品質和安全性,但代價是牽制了一些自由(以及每年的開發者費用)。Apple 可能會認為你的應用程式不符合其質量要求或政策。

他們可以拒絕發佈,或在未來下架應用程式。每次你想要發布更新,你必須等待他們的審核,這可能需要幾天的時間。

在網頁上,我們不需要處理這些。在網頁上,我們是我們作品的主人。

網頁不是一個單一的組件,而是由不同公司擁有並追求不同目標的一系列工具組成的生態系統。你無法掌控用戶的設備和瀏覽器。在 iOS 上,你可以決定支援哪些設備,而且只有一個供應商:Apple。

使用原生代碼的一個無價之處是你的應用程式會以第一類公民的身份運行在 iPhone、iPad 或 Apple Watch 上。在這些精美的設備上運行你的應用程式和代碼感覺很棒。

另外,在網頁上有很多不同的供應商獨立開發一個特定領域的功能。有瀏覽器按照不同的路線圖實現功能。有組織制定標準。

在 Swift/iOS 開發中,只有 Apple 為我們決定 Swift 的未來,設備的未來以及未來幾年中的新功能。

一方面,只有一家公司為你的未來工作和你如何為他們的平台開發做出決定。他們可以更快地推進事物的進步,以及大規模地改進。另一方面,這是一個由不同公司混合的大熔爐。這可能是好事,也可能是壞事,這要看你如何看待它。

在 Web 上,我們可以創建可以在桌面和筆記型電腦上使用的有用應用程式,也可以在移動設備上使用。問題在於,由於平台的限制,移動體驗通常是次優的。 Apple 執行了一些出於安全原因的限制。網頁應用程式可以部分訪問硬體,像是 GPS、感應器、相機等等,但一些使原生 iOS 應用程式優秀的特性只有原生 iOS 應用程式才具備。

漸進式 Web 應用程式的推廣有助於改善 Web 應用程式與系統的整合,但我認為它在 Android 上的效果比 iOS 上好,因為推廣主要是由 Google 推動的。

在讓人發現你的應用程式方面,無論是在 Web 上還是在 iOS 上,你都必須注意分發、配置和管理伺服器。

對於 iOS 應用程式,Apple 來處理這些。

而且,你可以接觸到 10 億的 iOS 使用者市場,只需要在 iOS App Store 中進行一次搜索就能找到你的應用程式。

這並不意味著你的應用程式會因為在應用程式商店中而被任何人使用。儘管觀眾很廣泛,但大部分人都只使用那五到十個著名的應用程式。這是另一個與市場營銷相關而不是與構建應用程式相關的話題。

這只是一些我想談談的點子,一個總體上關於 iOS 對於網頁開發者的介紹。

在我看來,Web 和 iOS 之間沒有競爭。它們都是絕對偉大的平台,某些應用可能更適合其中的一個而不是另一個。