Ethan Huang

FoundationDB

蘋果今天將一套 noSQL 資料庫軟體 FoundationDB開源出來。這個名字很蘋果。釋出的版本是 5.1.5,看來有點歷史了,但之前沒聽過。出於好奇查了一下它的背景。

FoundationDB 本是一間 startup,以及同名開源資料庫軟體。蘋果在 2015 年把這間公司買下後把軟體閉源,作為內部使用。現在又重新開源起來。

(根據當年 Business Insider 的報導,蘋果收購與閉源 FoundationDB,造成不少公司的麻煩啊…)

至於 FoundationDB 軟體本身是幹嘛呢?資料庫我實在不是很懂,不過看了一些介紹,它擅長做大型分散式服務,不僅高效、有彈性,而且還具有硬體成本優勢。

據說蘋果是把它用在 iMessage 等大型服務的設施上(品質應該比什麼 UIKit、Swift、Xcode 之類的好得多吧 😂)。既然重新開源了,可以觀察一下。

GitHub 10 年歷史 github.com/ten

Sony 還繼續做電子書啊。這個大小,黏在 iPad Pro 10.5’ 背面剛剛好(誤) www.theverge.com/circuitbr…

OMG! 世界迷霧開發者的專訪!My favorite and the most inspiring indie app dev in Taiwan. ❤️❤️❤️ www.cbnweek.com/articles/…

原來是蘋果的五十度灰啊 9to5mac.com/2018/04/1…

這兩天正在進行的 @appbuilders_ch 似乎有很多好料 😉 appbuilders.ch

還有一個就是自動追蹤睡眠、存入 HealthKit 的 AutoSleep itunes.apple.com/tw/app/au…

背景智慧追蹤的 app,另外一個是 Sleep Cycle 他們家的 Life Cycle。主要統計你人在什麼地方的時間分佈 itunes.apple.com/tw/app/li…

App Store 編輯今天精選的 Moment 是挺不錯的 app,目的是幫你戒手機成癮,之前試過一陣子。它可以記錄每天用多久手機、解鎖幾次,甚至用一個巧妙的方式統計個別 app 使用時間。不過對我來說,重點是原來還可以從 iOS 抓出這些資訊啊 itunes.apple.com/tw/story/…

每次解鎖都跟我講一次…

NSPredicate 真的是很有意思。不要因為它不很 Swift 就小看了它

Wow, Facebook app still not support iPad Pro 10.5’ yet. Just wow.

Some Error can be catch but not thrown in Swift

There are SKError/HKError in StoreKit/HealthKit. They have errorCode, errorUserInfo, and errorDomain, which means they could conform to CustomNSError. You can catch them, but to throw them as Swift Error, you need to “extension SKError/HKError: Error { }” youself.

Why? 🤔

Sample code is here.

WWDC 將至。獨立開發者前輩總會叮嚀這個季節不要做大型的功能開發,或是基於 iOS 特性的重大的商業決策,因為 WWDC 之後恐怕整個都會翻掉。對於 indie dev 來說,此時最適合調調效能、修修 bug、發發 radar,或是去學點別的東西,不然就是去度假吧。6 月以後又有得忙了。

生平第一個 app 是電子書(聖經),用網頁排版,本來是打算用 web 來做。後來還是學習 Xcode、Objective-C 跟 UIKit,做成完整的 native app。但現在看到 PWA,總覺得可以用 PWA 重新做一次。

iOS 11.3 的 PWA 還不是完整的 PWA。比如說離線瀏覽就不支援、每次「app 回到前景」就重新讀取。目前也只有用過 Twitter Lite 比較好用。繼續觀察

This article about iOS IAP subscriptions is fantastic! So helpful, thank you @iKenndac. ikennd.ac/blog/2018…

A quick reminder for iOS dev: git status clean != everything the same between 💻 machines 🖥:

  • Files in .gitignore: Non-shared Scheme/Workspace settings 🛠
  • Empty folders: Search Paths 👀
  • Case-insensitive FS: Change name case of files in .xcassets, crash on #imageLiteral 💥

git 不能保證每台電腦上的狀態完全一樣。以我曾遇過的坑為例:

  • 列在 .gitignore 的檔案:scheme 或 workspace 的設定,如果不是 shared,每台電腦可以完全不一樣。天差地遠
  • 空的資料夾:同事換了 framework 的位置,但 Header Search Paths 設定沒拿掉舊的。他的電腦可以 build,我 pull 後卻不行,因為我的空資料夾還在
  • 檔名不區分大小寫的檔案系統(Mac 預設):把 xcassets 底下的檔案大小寫改掉。git 看不出來差異,build 得過,但是 runtime 時 #imageLiteral 這種 code 會 crash

不是要提出解法,只是講一下有這些坑

Try different Twitter clients on iOS these days. And the mobile web app is swifter than official app. (Don’t let the name Twitter Lite fool you.)

Do a quick experiment 🔬: Add it to homescreen from Safari, then show it to your friends. Chances are they thought it’s native. 😉

Modern iOS dev life:

  • Xcode 9.2 for main project until its next release⌛️
  • Xcode 9.3 for iOS 11.3 dev and Swift 4.1 side projects. High Sierra required⛰️🧗‍♀️
  • Xcode 9.4 beta for iOS 11.4 beta⚠️

Also, never get Xcode via MAS🚫 Directly download from /download/more/