一個自訂 KOReader 書籍排序的腳本

我在 KOBO 電子書閱讀器上額外安裝了 KOReader 系統,它的眾多設定讓我可以調整出自己最喜歡的樣子來觀看電子書,無論是 ePUB、PDF、CBZ 格式,高度自訂化佈局讓閱讀成為一件舒服的事。

最近有一個困擾我的地方,就是它的書本排序方式雖然很多,但卻沒有我想要的排序方式,我想要讓書本「先按照作者排序,然後如果是系列套書就按照系列順序排序,最後再按照書名或是出版日期排序」,這樣才符合我整理書本的習慣。

還好 KOReader 提供了讓使用者開發與安裝 user patch 的功能,那就自己來寫一個 patch 滿足我的需求吧!

繼續閱讀 ➜

FormattedListKit: Elegant List Displays Made Easy

When developing iOS and macOS applications, formatting lists is a common requirement. Whether it's terms and conditions, setting options, or tutorial steps, we often need to present ordered or unordered list content. However, Apple's native frameworks have relatively limited support for list formatting, which often puts developers in a dilemma: existing solutions aren't perfect, while heavier solutions seem like overkill.

To solve this problem, I developed FormattedListKit, a lightweight yet fully-featured Swift Package specifically designed for creating beautifully formatted ordered and unordered lists.

繼續閱讀 ➜

在 KOReader 使用偽直排字體

我很喜歡閱讀中文書籍,有些類型的中文書在直排版面下閱讀總是特別有韻味。然而在電子閱讀器上,要享受直排閱讀的體驗並不容易。今天要分享一個在 KOReader 上實現「偽直排」的方法,讓我們能在電子書閱讀器上,也能享受傳統直排的閱讀樂趣。

繼續閱讀 ➜

如何建立 iOS Share Extension

在網路上已經有很多關於 iOS Share Extension 的教學,例如這裡就有一篇。有需要的人可以自行在網路上搜尋,這邊就不多作著墨。我這次想要分享的主要是在開發 share extension 的過程遇到一些要注意的事項,以及踩到的一些坑。

我的開發環境是 macOS Sonoma + Xcode 15,使用 Swift 開發。

要建立一個 share extension 很簡單,就是在你的專案新增一個 target 然後選擇 Share Extension 即可。Xcode 會自動幫忙產生必要的檔案,以及做好基本設定。

繼續閱讀 ➜

Repository Design Pattern

為何需要 Repository Design Pattern

在最近參與的專案當中,我們開始導入了 Repository Design Pattern,一句話總結它的用途就是「負責處理資料的新增、讀取、更新、刪除 (CRUD) 的角色」,建立這樣一個角色來負責處理資料能帶來什麼好處呢?

繼續閱讀 ➜

電子書閱讀器推薦字體

我是個很喜歡看電子書的人,我使用的是 Kobo 電子書閱讀器 搭配 KOReader,電子書閱讀器提供了許多便利之處。首先,它們輕巧易攜帶,讓我可以隨身攜帶我的閱讀清單,輕鬆切換不同的書籍。我通常會交替閱讀兩三本書,這讓我的閱讀體驗更加豐富,閱讀過程也更加放鬆。此外,我也很喜歡閱讀器可以自訂文字排版的功能。

對我來說,自訂文字排版是非常重要的,因為它可以大幅提升閱讀的舒適度。特別是字體的選擇,對閱讀體驗至關重要。以下是我必裝的幾款字體:

繼續閱讀 ➜