我不想管理你的數據

在我的整個職業生涯中,我一直害怕管理數據。 當我想要開發一個應用程式時,我總是默默地想「我不想管理任何數據」。 幾個月前,我正在製作一個小型概念的專案管理應用程式,有一刻我想到「這應該可以成為一個真正的應用程式」。 於是我花了幾天的時間,試圖找到一種在不需要管理使用者數據的情況下開發專案管理應用程式的方法。 但是我找不到辦法,至少對於網頁應用程式而言是這樣。 對於桌面應用程式?當然可以。行動應用程式?也沒問題。 但在網頁上,我們有這個不尋常的負擔。作為開發者,我們不能只開發軟體,還需要管理使用者透過我們軟體處理的所有數據。 因為網頁沒有存儲和數據層。 這真是一個遺憾。 我不想管理使用者數據。 當你管理數據時,有很多負擔。首先,數據被集中在一個位置,所以隨著使用者和應用程式使用量的增長,你需要擴展它。 然後還有安全和隱私方面的顧慮。如果有人入侵我的伺服器並刪除或竊取數據,我該怎麼辦?你需要擔心正確的備份和恢復程序、審計等。 如果你使用的是多個網頁應用程式,就要為其乘以這麼多倍。 瀏覽器在臨時數據方面提供了一個解決方案,例如本地儲存和IndexedDB,但實際上不太實用。 我曾經見過一些在網頁上嘗試這樣做的專案,但真正有效的做法是由瀏覽器管理的數據層。每個應用程式都可以連接到這個數據層,然後有第三方服務與它接軌。 你知道「使用 Apple 登錄」是怎麼運作的嗎?我只需要點擊那個按鈕,整個註冊過程就會自動完成。這真是神奇。 舉個例子,如果蘋果提供了一種從任何應用程式存取 iCloud 的方式,那該有多好。 我可以使用 Trello、Basecamp 等任何應用程式,而這些應用程式使用的數據就是我的數據。我不需要將它們發送到第三方伺服器,它們將存儲在我信任的雲端數據供應商那裡。 瀏覽器將成為應用程式和存儲之間的橋樑,它可以管理所有權限和應用程式介面。 我提到了蘋果,但它也可以是 Google、DigitalOcean,或者任何其他服務商。甚至可以是完全由我們自己「自助託管」的伺服器。 當然,這只適用於某些應用程式的子集。 Facebook 是無法以這種方式建立的。他們需要自己的集中式存儲,因為數據是他們的核心業務。沒有數據,Facebook 什麼都不是。 Google、Gmail 或任何需要協作和多使用者體驗的應用程式也一樣。 但對於那些單用戶應用程式,也就是應該佔到創業者和獨立開發者所建立應用程式的 90% 的應用程式,這會簡化很多問題。 我現在正在使用的 Bear 是一個筆記應用程式,我是在 iPad 上撰寫這些筆記。 它透過 iCloud 與 iPhone 和 Mac 同步。 但它沒有網頁版本,因為… 你無法通過一個網站同步。如果是這樣,網站需要在他們的伺服器上存儲我的筆記。 現在 Bear 並不在乎我寫了些什麼。他們只是不斷地提供軟體更新,但他們並不一定在意數據。 當然,如果他們想要,在意也是可以的。但他們不必要。 所以,關於我之前提到的那個小概念專案管理應用程式,幾天前我想到了「我可以將它做成一個應用程式」。 我必須承認,這個想法已經在我腦海中浮現,因為我最初將它作為一個 Electron 桌面應用程式開始開發,但我停止了工作,因為我相信僅限於桌面可能太過局限? 但這次不同,我正考慮使用 Swift,並通過單一的程式碼庫製作一個 iOS、iPadOS 和 Mac 應用程式。 這樣一來,「夢想」就已經實現了。蘋果提供了儲存數據的工具,你只需要關注開發一個優秀的應用程式。 但是,當然還有一系列問題。第一個問題是,這是一個封閉的園地。 我們可以使網頁更像應用程式。但是肯定蘋果不會在乎。實際上,他們可能會關心相反的情況,因為這將成為他們自己 App Store 業務的競爭對手。也許 Google 也是一樣?...

為什麼選擇 iOS

為什麼我選擇深入研究 iOS 呢? 難道我放棄了 Web 開發嗎?當然不是。 Swift 為我帶來了一個全新且令人興奮的世界。 我不是一個 Web 開發人員,我是一個開發人員。無論最終形式是什麼,我的目標是幫助人們成為開發人員。 我有很多想要建立的應用程序的點子,我可以創建它們並解釋如何實現。 我認為很多人都想要建立一個 iOS 應用程序,但這並不是一件簡單的事情。 iOS 應用程序在很多方面都與 Web 應用程序非常不同。 首先,是分發方式。在 Web 上,你擁有自己的域名,你的應用程序就在那裡。而且你可以做任何合法的事情。在 iOS 上,只有 Apple App Store,而且 Apple 對其有很大的控制權。他們可以決定拒絕你的應用程序。 然後是技術堆棧。在 Web 上,你有 JavaScript、HTML 和 CSS,除非你使用一些小眾工具。而在 iOS 上,你有 Swift 和 SwiftUI。 再者,Web 是一個開放的平台,而 iOS 則是封閉的,完全受 Apple 控制。 還有一個很大的區別:你可以創造的類型。在 Web 上,你創建 Web 應用程序,它們存在於瀏覽器中。在 iOS 上,你創建的是移動應用程序,這些應用程序可以隨時隨地帶在身上。這些應用程序可以通過傳感器更好地融入你的生活,它們可以存在於你的手錶上(我說 iOS 但我的意思是所有的移動 Apple 平台:iPhone、iPad、手錶,不包括不同的 Mac)。 所以,對我而言,開始創建 iOS 應用程序更像是創建 Web 上無法實現的應用程序的一種方式,也是進入這個有趣的開發領域的途徑。