site-icon Hong Cheung
Sep 13, 2025

我最終的技術棧選擇。

終於定案了……

Expo——同時涵蓋網頁與行動端

雖然我原本想要享受開發純網頁應用程式的便利,再用 Capacitor 之類的工具(包括 Tarui)包裝起來,但我一直很難讓它在 Android 上順利運作,因為 webview 的運作方式與現代技術差異太大。

Tarui 可以專注於桌面端,這是個優點。然而,它充其量只是各平台的包裝層。它會受制於網頁技術的限制,包括手機上的拖曳手勢需要額外變通處理,以及離線儲存容量等問題。

總之,如果之後想要桌面應用程式,我也可以把 Expo React Native 專案包進 Electron 裡。

LegendState

號稱比 MobX(我過去的最愛)更有效率、更現代。不過,我在這個專案使用它的主要原因是它內建了與 Supabase 離線同步的外掛。雖然有一些 bug 和需要變通的地方,但到目前為止運作得相當不錯。

我可以在網頁端使用 IndexedDB、在行動端使用 SQLite,這正是我想要的,好讓我能充分發揮各平台的優勢。

Supabase

純粹是因為 Postgres 是首選,而且它開箱即支援 Auth 與 Stripe 整合。我試過用 RxDB 搭配自架的 Appwrite,但出現了一些奇怪的狀況,而且那是在 Capacitor 專案上,所以我暫時先擱置了。那其實不是個壞主意。不過下次即使是用 Appwrite,我也會改用 LegendState,因為 RxDB 在行動端使用 SQLite 並非免費。

Stripe

線上 SaaS 的唯一解。而且有搭配 Supabase 的入門範本,所以我就在它的基礎上開發。

最後……

我很慶幸現在終於搞定了。我現在只需要用這套技術棧來打造我的應用程式,並熟悉它,就能建構我所有想做的其他應用程式。

太輕鬆了。

上一條動態
Copyright 2026
網站地圖
隱私政策
服務條款

主題由 Astro-Yi