小專案從0到1之跨平臺方案選型
對於初創型企業,即使專案規模不大,但其總體的時間成本卻仍是重要的考慮因素。作為一個小開發,近期就完整經歷了一個初創小專案從0到1搭建、推向市場的過程。在這過程中也深深體會到即使產品開發只是一小部分,也需要同時間賽跑,推動專案高效進行。
由於我們專案的特殊性,最初的產品demo透過微信小程式的形式跑通了基本功能,然後就到了正式研發階段。老闆對產品的要求就是需要包含:微信小程式、H5、Android、ios、windows、
macos並且儘可能多的覆蓋其它平臺。本系列文章先站在公司的的角度對產品技術選型進行分析,然後再根據我們專案實際開發經驗進行彙總,供大家參考。
目前大前端技術也非常豐富,可以實現 ,一次開發,打包多個平臺。 團隊針對幾個不同技術方案裡進行了討論:有比較老牌的Cordova、Xamarin、NativeScript, 也有近幾年比較火:React Native 、Flutter、 FinClip 、Election
Cordova
Cordova勝在架構簡單,比如一個簡單的Activity,上面搭載一個CordovaWebView Component,他是一個改造過的WebView,加裝了一些Cordova API,讓你藉此和Native的部分互動。App基本上就是一個Mobile Web,多了一些跟Native互動的能力。
優點是好上手,寫程式碼快。有豐富的外掛去銜接Native平臺、社群完善。使用Ionic可以一套程式碼在安卓端、iOS端、網站端、小程式端通吃。
Cordova(Ionic)缺點也明顯,終究是個Web,效能體驗太差了!
Xamarin
Xamarin是Cordova的老對手, Xamarin的產品簡化了針對多種平臺的應用開發,包括iOS和 Android。總體比Cordova複雜多了,大致上分成幾個部分:Xamarin.Android、Xamarin.iOS、Xamarin.Mac(後來才出現的)以及Xamarin.Forms。
Xamarin.Mobile有很多優點。在這一框架內,開發 Android 和 iOS 應用可以不用轉到 Eclipse 或者額外購買 Mac 並使用 Xcode,而繼續在Visual Studio之中使用 C# 與 .NET Framework 進行。而且效能效能接近原生、內建功能豐富(數千個自定義UI控制元件)。
缺點:
稍微延遲支援最新的平臺更新、對開源庫的訪問受限、Xamarin生態系統不大、與第三方庫和工具的相容性問題等等
Flutter
Flutter是近兩年風很大的一款開源、跨平臺移動端開發框架,由 Google 開發。Flutter 使用 Dart 作為開發語言,這是一門簡潔、強型別的程式語言。它允許使用同一個程式碼庫構建高效能、漂亮的 iOS 和 Android 應用,Flutter還提供了兩套視覺庫,可以針對不同的平臺有不同的展示效果。此外,透過自定義的 Flutter 引擎可以將其嵌入到其他平臺。
團隊沒有選擇Flutter 的主要原因是Flutter on desktop也還是beta版本。Windows PC和linux平臺的相容支援官方正在持續研發中。
FinClip
與上面Flutter、Cordova、Xamarin這些框架技術比起來 FinClip 實在是一款輕便簡潔的小工具,我們驚歎於它的靈活性!整體靈活又體積小巧(大概3M)。
FinClip 是一套小程式容器技術,也可以說是小程式SDK Runtime/Engine,提供 Runtime 基於瀏覽器核心,採用動態語言(JS)和宣告式 View 構建(XML),並且相容網際網路主流小程式技術,可採用 vue、react 基礎上的 DSL 框架。
這種容器技術與上述的跨端技術不僅不衝突,還可以相容。不管是透過Flutter、Reactive Native、uni 、Taro等開發出來的小程式都可以透過 FinClip 執行。
小程式執行時方案的高價效比,主要體現在應用體驗、應用框架支援以及宿主環境結合等方面。
應用體驗方面,小程式技術是前端容器技術的一種應用,其元件及UI都有明確的規範,開發者不用考慮相容性及類似H5開發時複雜工具及框架的選擇。同時,由於元件及UI都是預設的,展示體驗也會更佳。
應用框架支援方面,執行時方案不僅支援純 wxml 微信小程式執行,還支援包括Flutter、Reactive Native、 uniapp等第三方框架整合的小程式。
宿主環境結合方面,小程式是基於App端實現的應用,其獲取系統(App)的許可權也會多於H5;目前小程式技術的發展已經趨於成熟,市面上小程式以執行時已經開始出現多智慧終端裝置的適配(基於Andriod系統的多終端螢幕適配)。
目前我們團隊選擇了
FinClip
這樣一款,靈活性輕量較高的技術方案,並且透過官方IDE裡自帶的“小程式轉APP”功能將前期在微信上跑通的demo轉成了APP應用上架到了應用市場。目前還在實現PC端的適配。該技術應用的情況,後續再給大家做分享。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70023421/viewspace-2925735/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- DNSLOG平臺搭建從0到1DNS
- 從0到1搭建自助分析平臺
- 回顧·大資料平臺從0到1之後大資料
- node專案從0到1實戰
- 從0到1搭建DeltaLake大資料平臺大資料
- 從 React Native 到 Flutter,移動跨平臺方案的真相React NativeFlutter
- 《從0到1搭建一個IM專案》專案初始化
- 從0到1實現專案Docker編排部署Docker
- 做產品,選擇從0到1還是從1到N?
- 中原銀行如何從0到1建設敏捷BI平臺?敏捷
- 從0到1:React專案中的Webpack配置實戰ReactWeb
- WPF跨平臺方案?
- 從0到1完成nutch分散式爬蟲專案實戰分散式爬蟲
- nodejs+koa2+mongodb 從0到1搭建自己的專案NodeJSMongoDB
- 小程式跨平臺開發解決方案探索
- webpack 4 :從0配置到專案搭建Web
- 【實戰分享】從選型到專案落地,漫談 gRPCRPC
- 五個篇章講明白如何從0到1搭建大資料平臺大資料
- PHash從0到1
- flutter跨平臺開發之App升級方案FlutterAPP
- 教你從0到1搭建小程式音視訊
- 某二手交易平臺大資料平臺從 0 到 1 演進與實踐大資料
- 從 0 到 1,打造新一代開源函式計算平臺函式
- 專案0到1的一些感想
- 圖文教程:從0到1將專案釋出到 Maven 中央倉庫Maven
- Vue3 全家桶,從 0 到 1 實戰專案,新手有福了Vue
- 從 0 到 1 再到 100, 搭建、編寫、構建一個前端專案前端
- Flutter實戰 | 從 0 搭建「GitHub」APP(一、專案簡介、技術選型)FlutterGithubAPP
- [譯] Flutter 從 0 到 1Flutter
- 從0到1上線一個微信小程式微信小程式
- 基於 OPLG 從 0 到 1 構建統一可觀測平臺實踐
- Weex小冊—從0搭建一個Weex專案
- 思否開源專案推介丨Remax:使用 React 構建跨平臺小程式REMReact
- 阿里工業網際網路平臺“思考”:一場從0到1的蛻變阿里
- 如何使用Photino建立Blazor專案進行跨平臺Blazor
- 跨平臺、跨主機共享鍵鼠方案(KVM)
- 工業「嫁衣」,從0到1
- 從 0 到 1 認識 TypescriptTypeScript