什麼是 Svelte Native?
Svelte Native 基於 Svelte 的 Framework,它允許 Svelte 開發人員構建原生 Android 和 iOS 應用程序。最初由 Rich Harris 於 2021 年 11 月發布。難道 JavaScript 框架還不夠多嗎?為什麼要用另一個?Svelte 的構建是為了流暢、交互、簡單和高效。
Svelte Native 結合了 Native Script 和 Svelte 的優點
根據 Svelte Native 網站,它是由 Svelte 提供支持的移動應用程式框架,能夠使用 Web 框架構建移動應用程式。
什麼是 React Native?
React Native 是一個基於 React 的跨平台移動應用程式開發框架,可構建原生 Android 和 iOS 應用程式。它是頂級的移動應用程式開發框架之一,由 Facebook 為其內部開發設計和開發,在 2015 年成為了一個開源項目。
React Native 將原生開發的部分與 React 結合在一起,React 是用於構建用戶界面的一流 JavaScript 程式庫。在 React Native 之前,開發人員使用的是使用 HTML、CSS 和 JavaScript 等 Web 技術構建的混合移動應用程式。在性能、速度造成了許多問題。React Native 允許 JavaScript 代碼使用橋接器與 Native Code 對話,從而使應用程序更快、性能更高。
如果 Svelte 和 React Native 都完成相同的任務,那麼它們有何不同呢?
React Native 的工作原理
React Native 在應用程式和目標設備(Android/iOS)之間創建了橋樑,允許 JavaScript 代碼與 Native Code 對話,反之亦然。 它通過創建三個 threads 來解釋不同級別的 JavaScript 代碼來做到這一點:UI thread、Shadow thread 和 JavaScript thread
UI thread
這會運行您的應用程式,並且是唯一可以取得 UI 的 thread。 因此它可以更新 UI 畫面。
Shadow thread
這會計算 React 建立的 UI 佈局,並將它們發送到 UI thread 的 Native Code。 React Native 利用 Yoga 將 JavaScript UI 代碼轉換為宿主平台可以理解的佈局系統。
JavaScript trhead
JavaScript thread 處理 JavaScript UI 佈局並將它們發送到 Shadow thread,從而將它們發送到 UI trhead。
使用 Svelte Native
Svelte Native 利用 NativeScript,它允許使用 JavaScript 開發本機應用程式,並讓 JavaScript 代碼直接訪問 Native Code。 它沒有包裝,這意味著可以訪問所有受支持的設備 API。
Svelte Native 和 React Native 的採用
與 Svelte Native 相比,React Native 擁有龐大的社群。React Native 在 GitHub 上有超過 10 萬顆星,而為 Svelte Native 提供支持的 NativeScript 有 2 萬多顆星。
如果開發人員遇到錯誤,使用 React Native 比使用 Svelte Native 更容易找到幫助,因為可能有很多開發人員遇到了同樣的問題並分享了他們的解決方案。
學習曲線和發展速度
與 Svelte Native 相比,React Native 的學習曲線陡峭。任何了解 JavaScript 的開發人員都可以開始使用 Svelte Native,因為語法簡單、簡短且易於理解。
React Native 需要 React 知識,這並不容易立即進入,因為需要了解 JSX 是如何運作的以及生命週期是如何運行的。
開發速度在很大程度上取決於開發人員以及他們對如何使用該工具(React 或 Svelte)的了解程度。從 React Native 開發人員過渡到專注於 Svelte Native 的開發人員並不難,但是如果你從 Svelte Native 切換到 React Native,可能需要更多時間來學習。
React Native 與 Svelte Native 設置
為開發設置 React Native 很大程度上取決於您使用的工具。如果您使用 React Native CLI,則設置 React Native 更具挑戰性,因為您需要設置 Xcode 或 Android SDK 來編譯和運行模擬器。但是,使用 Expo 可以簡化設置過程,因為它可以實時編譯代碼。
對於 Svelte Native,需要設置 Android SDK 來運行 NativeScript,目前沒有工具可以像 Expo 那樣對 React Native 進行測試。
這兩個移動應用程式開發框架都很棒。與往常一樣,沒有最適合的正確答案。如果您打算開始一個新的移動應用並且使用熟悉的 JavaScript 並快速構建,請從 Svelte Native 開始。但是,如果您是 React 開發人員,您可能更喜歡使用 React Native 進行構建,因為它最適合 React 。
沒有留言:
張貼留言