付費限定

🤕開發者職業傷害──Dependency 的故事、事故與世故

13-avatar-img
發佈於🧠 軟體開發思維 個房間
更新 發佈閱讀 11 分鐘

今天來分享一個我個人 iOS 開發職涯早期遇到的重大傷害,以及它教會我的事情。

故事

大約在 2015 年初,也是我接觸 iOS 開發不到三年的時候,我正在幫自己的第一個獨立開發 iOS App,「快速筆記軟體 NoteBox」 ,升級雲端同步的功能。

NoteBox 本來就有雲端同步,只是我最開始偷懶使用 iCloud Key-Value Store

你可以把 iCloud KVS 當作一個沒有衝突解決機制的雲端版 UserDefaults。當然,它的容量限制也絕對不是很好的長期儲存方案。

當時 Apple 已經發表 CloudKit,有著不需要使用者額外登入的好處,自然是重要選項之一。

另一方面,NoteBox 本來就有整合 Dropbox SDK,以利使用者一鍵把筆記輸出成檔案放在 Dropbox。

當時 Dropbox 有個叫做 Datastore API 的服務,提供給 mobile app 開發者很方便能同步非檔案的資料,類似後來推出的 Firebase Realtime Database,而且使用起來非常簡便。

它內建自動同步、衝突處理、離線儲存等功能。

重點是,它的同步速度非常迅速。兩台手機開著 NoteBox 在前景,在一台手機新增筆記,不到半秒就可以在另一台看到。

Datastore API 簡便且高效能,並且在各種多裝置 + 離線操作的測試條件之下,它都能正確合併資料。讓我對它十分有信心。

而且它還沒有跟開發者收費呢(!)

不過因為不是每個使用者都會登入 Dropbox,所以我同時做了 CloudKit 與 Dropbox Datastore 兩套方案,打算讓使用者自行選擇。

CloudKit 同步要寫得好不容易,需要考慮很多錯誤處理(這個情況,直到 2023 年 Apple 推出 CKSyncEngine 才變得比較簡單)。所以,雖然 Datastore 三兩下就串接完畢,我還是得在 CloudKit 上面花費大量時間開發及除錯。

還有,在兩種雲端儲存方案之間切換的機制也要做到好,也花了我不少力氣。

事故

好不容易,就在我開發完畢兩套全新的同步機制、自行測試完畢,準備要把新版送審上線的時候,

以行動支持創作者!付費即可解鎖
本篇內容共 4060 字、0 則留言,僅發佈於🧠 軟體開發思維、😔 開發者職業傷害你目前無法檢視以下內容,可能因為尚未登入,或沒有該房間的查看權限。
留言
avatar-img
留言分享你的想法!
avatar-img
13+
2.0K會員
117內容數
13 以 10+ 年 iOS 開發經驗為基礎撰寫,助你在 AI 時代成為更有自信的技術工作者。 ❤️ 支持 13 創作! 🤖 AI 工具實戰經驗與深度思考 🧠 軟體開發思維、職涯發展建議 💡 實用技巧與踩坑經驗分享 😔 開發者身心健康與職業傷害
13+的其他內容
2025/04/18
最近跟家人聊到 AI 的發展,產生一段有趣的對話,於是寫了這篇短文。
2025/04/18
最近跟家人聊到 AI 的發展,產生一段有趣的對話,於是寫了這篇短文。
2024/10/01
一個免費的小工具,改變了我看待問題與分配資源的方式。從清硬碟開始,延伸到程式效能、時間管理、甚至人生選擇。這篇文章分享我怎麼從 GrandPerspective 學到的事情,以及它為何值得成為長青工具的代表。
Thumbnail
2024/10/01
一個免費的小工具,改變了我看待問題與分配資源的方式。從清硬碟開始,延伸到程式效能、時間管理、甚至人生選擇。這篇文章分享我怎麼從 GrandPerspective 學到的事情,以及它為何值得成為長青工具的代表。
Thumbnail
2024/09/25
我常常覺得 iOS 開發者就像農耕文化,有著以年為單位的工作週期。不同的是,我們不看天氣吃飯,而是 Apple 的產品發布慣例。從 WWDC 到新版 iPhone、Xcode、iOS 發表,每年都有週期可掌握。這篇文章是我多年經驗歸納出的年度工作節奏,幫助你在對的時間做對的事。
2024/09/25
我常常覺得 iOS 開發者就像農耕文化,有著以年為單位的工作週期。不同的是,我們不看天氣吃飯,而是 Apple 的產品發布慣例。從 WWDC 到新版 iPhone、Xcode、iOS 發表,每年都有週期可掌握。這篇文章是我多年經驗歸納出的年度工作節奏,幫助你在對的時間做對的事。
看更多
你可能也想看
Thumbnail
雙11於許多人而言,不只是單純的折扣狂歡,更是行事曆裡預定的,對美好生活的憧憬。 錢錢沒有不見,它變成了快樂,跟讓臥房、辦公桌、每天早晨的咖啡香升級的樣子! 這次格編突擊辦公室,也邀請 vocus「野格團」創作者分享掀開蝦皮購物車的簾幕,「加入購物車」的瞬間,藏著哪些靈感,或是對美好生活的想像?
Thumbnail
雙11於許多人而言,不只是單純的折扣狂歡,更是行事曆裡預定的,對美好生活的憧憬。 錢錢沒有不見,它變成了快樂,跟讓臥房、辦公桌、每天早晨的咖啡香升級的樣子! 這次格編突擊辦公室,也邀請 vocus「野格團」創作者分享掀開蝦皮購物車的簾幕,「加入購物車」的瞬間,藏著哪些靈感,或是對美好生活的想像?
Thumbnail
雙11購物節準備開跑,蝦皮推出超多優惠,與你分享實際入手的收納好物,包括貨櫃收納箱、真空收納袋、可站立筆袋等,並分享如何利用蝦皮分潤計畫,一邊購物一邊賺取額外收入,讓你買得開心、賺得也開心!
Thumbnail
雙11購物節準備開跑,蝦皮推出超多優惠,與你分享實際入手的收納好物,包括貨櫃收納箱、真空收納袋、可站立筆袋等,並分享如何利用蝦皮分潤計畫,一邊購物一邊賺取額外收入,讓你買得開心、賺得也開心!
Thumbnail
分享個人在新家裝潢後,精選 5 款蝦皮上的實用家居好物,包含客製化層架、MIT 地毯、沙發邊桌、分類垃圾桶及寵物碗架,從尺寸、功能到價格都符合需求,並提供詳細開箱心得與購買建議。
Thumbnail
分享個人在新家裝潢後,精選 5 款蝦皮上的實用家居好物,包含客製化層架、MIT 地毯、沙發邊桌、分類垃圾桶及寵物碗架,從尺寸、功能到價格都符合需求,並提供詳細開箱心得與購買建議。
Thumbnail
需求情境: 在設計畫面時,資料來源是後台的 api,每一次畫面細節的修修改改,都會觸發 Xcode Preview 程序,導致不斷呼叫後台。此時若資料結構和大小都具有一定規模,就會導致效率低落,不斷等待,且消耗伺服器資源甚鉅。 解決方案: 將後台傳回的資料以檔案形式暫存在本地端,每次 pr
Thumbnail
需求情境: 在設計畫面時,資料來源是後台的 api,每一次畫面細節的修修改改,都會觸發 Xcode Preview 程序,導致不斷呼叫後台。此時若資料結構和大小都具有一定規模,就會導致效率低落,不斷等待,且消耗伺服器資源甚鉅。 解決方案: 將後台傳回的資料以檔案形式暫存在本地端,每次 pr
Thumbnail
Part.1 搞定基本的 UI 開始開發 iOS App。 首先準備一台 Mac,然後安裝 Xcode,新增專案,系統即刻生成基本的專案結構。coding 的起點在檔案 ContentView.swift: import SwiftUI struct ContentView: View {  
Thumbnail
Part.1 搞定基本的 UI 開始開發 iOS App。 首先準備一台 Mac,然後安裝 Xcode,新增專案,系統即刻生成基本的專案結構。coding 的起點在檔案 ContentView.swift: import SwiftUI struct ContentView: View {  
Thumbnail
實際就業後,會發現收集與分析需求,通常都不是工程師在做,會有另一群人,以非工程的角度收集及分析需求,然後在開發過程中蹦出不同的火花,於是很好奇另一群人的想法是什麼?我不敢說這本書能完全代表另一群人的想法,但確實能夠得到很多有用的思維。推薦給所有的軟體工程師。
Thumbnail
實際就業後,會發現收集與分析需求,通常都不是工程師在做,會有另一群人,以非工程的角度收集及分析需求,然後在開發過程中蹦出不同的火花,於是很好奇另一群人的想法是什麼?我不敢說這本書能完全代表另一群人的想法,但確實能夠得到很多有用的思維。推薦給所有的軟體工程師。
Thumbnail
1.設計系統不用從頭開始 在設計產品時,有一個觀念可能會顛覆我們對於產品設計的傳統想法。這是初期在 AlleyPin 擔任一人設計師,負責各種產品或視覺設計工作時才逐漸領悟到的一點。 當時,我在購買UI Kits這件事情上猶豫不決,擔心使用現成的設計資源會使我的設計變得無聊或是缺乏創造。後來面臨
Thumbnail
1.設計系統不用從頭開始 在設計產品時,有一個觀念可能會顛覆我們對於產品設計的傳統想法。這是初期在 AlleyPin 擔任一人設計師,負責各種產品或視覺設計工作時才逐漸領悟到的一點。 當時,我在購買UI Kits這件事情上猶豫不決,擔心使用現成的設計資源會使我的設計變得無聊或是缺乏創造。後來面臨
Thumbnail
軟體系統的發展歷程大多相似,首重解決基本需求、提供操作介面,進而提升安全性、擴充功能、優化操作。
Thumbnail
軟體系統的發展歷程大多相似,首重解決基本需求、提供操作介面,進而提升安全性、擴充功能、優化操作。
Thumbnail
經過這麼多年的觀察與實踐,一個成熟的軟體工程師還需要第四個要素,它是讓決定你通往熟手的重要關鍵沒有之一。
Thumbnail
經過這麼多年的觀察與實踐,一個成熟的軟體工程師還需要第四個要素,它是讓決定你通往熟手的重要關鍵沒有之一。
Thumbnail
今天來分享一下我自己開發的 iOS App,以及為什麼會有這個 App 的產生。 這個 App 是在 AppWorks School 時開發的個人專案,從構思到實際開發完畢大約四週左右。而在去年底的時候稍微整理了一下,終於把它上架到 Apple 的 AppStore。
Thumbnail
今天來分享一下我自己開發的 iOS App,以及為什麼會有這個 App 的產生。 這個 App 是在 AppWorks School 時開發的個人專案,從構思到實際開發完畢大約四週左右。而在去年底的時候稍微整理了一下,終於把它上架到 Apple 的 AppStore。
Thumbnail
這篇文章介紹了 iOS 中常用的 Design Patterns,包括 MVC、MVVM、Singleton、Delegation、Observer 等。同時比較了 Delegate 和 Notification 的使用時機。參考資料中還有更多相關資訊。
Thumbnail
這篇文章介紹了 iOS 中常用的 Design Patterns,包括 MVC、MVVM、Singleton、Delegation、Observer 等。同時比較了 Delegate 和 Notification 的使用時機。參考資料中還有更多相關資訊。
Thumbnail
第一份正職工作 在iot公司擔任後端工程師,一上工就使用先前沒用過的php/laravel,也馬上負責公司產品的架構規劃,先前資料庫只有簡單記載使用者跟使用者的一些設定,很多地方有資料不一致的問題,產品內容還有很多實體的關係沒有被定義進資料庫都是這次改版我要做的事情。 改版納入公司、機器
Thumbnail
第一份正職工作 在iot公司擔任後端工程師,一上工就使用先前沒用過的php/laravel,也馬上負責公司產品的架構規劃,先前資料庫只有簡單記載使用者跟使用者的一些設定,很多地方有資料不一致的問題,產品內容還有很多實體的關係沒有被定義進資料庫都是這次改版我要做的事情。 改版納入公司、機器
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News