Rive
Rive 使用 Flutter 完全重寫了其強大的動畫工具,讓開發者能夠建立精美、多平臺的插圖。
目標
Rive 允許開發者建立和釋出精美、互動式動畫到任何平臺。他們的開源執行時使得創作者只需動畫一次,即可在任何他們想要的平臺上釋出。
然而,情況並非總是如此。一開始,團隊花費了大量時間管理開發週期:為許多 UI 功能維護不同的客戶端 Web 包,一個自定義構建過程,自定義開發運維,自定義測試,程式碼檢查,語言伺服器等等——所有這些都來自需要維護和不斷更新的獨立包。
相反,團隊需要一個能包含所有這些功能的框架,確保工作流這些方面的相容性,這樣他們就可以更專注於開發,而不是維護。為了支援其強大的使用者介面,並實現無故障的即時動畫,Rive 需要一個能夠處理多個瀏覽器和平臺上的重度圖形渲染的工具。這時他們轉向了 Flutter。
為什麼選擇 Flutter?
Rive 的第一個版本完全用 JavaScript ES5 和 DOM 編寫,這對於 Web 來說很好,但對於其他方面則不然。所以接下來他們嘗試了 React 和 ES6。他們使用了 webpack 和 CanvasKit 的早期版本,但維護所有不同平臺需要付出巨大的努力。
大約在同一時間,Rive 與 Flutter 團隊合作舉辦了 Flutter Interact 活動。他們對 Flutter 瞭解得越多,就越覺得它適合 Rive。它提供了一個具有出色工具的統一平臺,一種強型別程式語言,以及強大的語言分析工具,包括標準化格式化程式、內建的程式碼檢查、適用於流行編輯環境的語言伺服器,以及直接從編輯環境進行測試的能力。
他們的解決方案
團隊決定嘗試一下 Flutter。他們用 Flutter 和 Canvaskit 構建了一個原型,並立即注意到了改進。除了提供真正的多平臺解決方案外,新工程師的上手也變得容易得多。他們還非常喜歡內建的測試功能,這使得維護應用程式的質量和穩定性變得更加容易。
成果
Rive 釋出了完全用 Flutter 構建的編輯器。他們的程式碼庫現在更容易維護,工程師可以立即上手並開始編寫程式碼。
他們還發現,在 Flutter 中新增自定義元件非常容易。功能構建更簡單、更有趣,設計師能夠更好地調整和構建原型。這使得他們能夠在 Rive 中開發出更豐富的體驗,包括動畫、互動式圖形以及流暢和響應式佈局。
應用程式的整體穩定性也得到了改善。得益於內建的測試功能,他們現在每次構建都執行數千個測試,這讓他們有信心轉向每日釋出週期。
基於他們的成功,團隊現在正致力於為 macOS 釋出桌面應用程式。團隊表示,對於這個版本,他們甚至不需要進行太多定製,因為抽象化工作已經完成。他們還發現,在 Flutter 中新增自定義元件非常容易。功能構建更簡單、更有趣,設計師能夠更好地調整和構建原型。這使得他們能夠在 Rive 中開發出更豐富的體驗,包括動畫、互動式圖形以及流暢和響應式佈局。