隨著跨平臺開發在軟件交付市場上的迅速流行,全球頂尖的移動應用開發公司也聚焦到了該領域。近年來,各種簡化了跨平臺開發的工具也如雨后春筍般層出不窮。其中,最知名的工具之一當屬Flutter。它不但可以讓您通過簡單的數行代碼,快速地開發出適用于Android和iOS平臺的原生應用程序,而且可以減少專業開發人員的工作量與用時,以便加快交付可擴展的移動應用。
什么是Flutter?
由Google創建的Flutter,是一種被用作開發原生Android和iOS應用的開源技術。其Flutter SDK允許開發者在較短的時間內,通過協同使用各種工具、小部件、以及綜合框架,來創建和部署直觀的移動應用。目前,Google App Store中的Flutter應用已超過50,000個,其中不乏eBay和Alibaba等大廠應用。Google甚至將Flutter工具包放到了Google Home Hub UI、及其各種Google Assistant模塊中,以便大型組織利用Flutter來開發出用戶友好的Web和移動應用。
Flutter概覽
據??統計??,目前有大約三分之一的移動開發人員正在使用Flutter作為跨平臺移動開發的技術與框架。其主要特性包括如下方面:
- Flutter自帶有多種部件和UI元素。
- 您不但可以免費使用Flutter,還能自定義其功能。
- Flutter是全球開發人員正在使用的第二最受歡迎的跨平臺技術。
- Flutter不但易于學習、支持快速且面向對象的編程語言—Dart,而且帶有用戶友好的UI。
- Flutter使用了C++渲染引擎。
- 建立在響應式編程基礎上的Flutter架構,足以與React Native相媲美。
Flutter對于應用開發的優勢
商業級應用的平臺穩定性和整體性能,對于任何企業都是至關重要的。而Flutters恰好能夠通過如下方面,來實時支持和及時調整,以保證客戶的滿意度:
高性能
由Flutter開發的應用程序,可以被直接編譯成機器代碼,并通過代碼解釋來抑制各種錯誤。這為跨平臺技術的實現提供了高性能的基礎。
節約資源
定制化的應用開發往往需要在渲染引擎中加入高級的編譯。而Flutter可以通過調整用戶界面,并將其轉移到某個平臺上,來輕松地實現編譯,并節省渲染資源的使用。
開發競爭力
與其他跨平臺語言相比,Flutter可以提供更有價值、成本更低的工作流程。而與原生開發相比,建立Flutter移動應用所需的工時則會更少。
高效穩定
由于Flutter的語法需要更少的代碼量,且更易于調試和升級,因此它可以協助開發人員更快地編寫出具有較高生產力的代碼。據此,由Flutter制作出的即用型工具往往能夠提供出色的平臺穩定性。
更快的面市時間
與使用其他編程語言創建應用程序相比,開發Flutter應用所需的時間會更少,當然也就加快了應用程序的編碼交付、以及面市時間。
什么是Flutter開發框架?
自2017年5月面市以來,Flutter是GitHub上增長最快的??存儲庫??之一。其改進版框架--v2.0于2021年3月發布。目前,Flutter框架包含了一個完整的UI軟件開發工具包(software development kit,SDK)、以及一個擁有包括:滑塊、文本輸入、以及按鈕等各種可重用UI元素的小部件庫。它的這些組件和工具包都是免費且開源的。
Flutter的應用開發服務可以支持那些具有完整的Flutter元素的Android、iOS、Windows、Linux、以及Mac系統。由于它能夠模仿平臺獨有的原生體驗,因此您可以在任何設備(如移動設備、電視、平板電腦等)上運行Flutter應用。此外,借助Flutter的各種測試和集成API、渲染引擎、現成的小部件、以及命令行工具,您還可以開發出性能卓越的應用。
Flutter基于何種編程語言?
如前所述,Flutter采用的是一種旨在取代經典的JavaScript的Dart編程語言。在Dart程序的幫助下,開發人員可以直接在服務器上運行某個應用程序。而在瀏覽器中,程序代碼會被反編譯器Dart2js轉換為JavaScript。例如,Google新的操作系統平臺—Fuchsia上的各種應用程序,就是使用Dart創建的。Flutters的結構完全可與著名的、面向對象的編程語言Java和C#相媲美。
Flutter應用開發的優點
每種編程語言都有自身的優、缺點,Flutter也不例外。除了對開發人員十分友好以外,Flutter還具有如下各種源于編程語言和開發工具的固有優點:
一個適用于所有平臺的代碼庫
與傳統的Android編寫方法、以及在iOS設備上調用其他代碼庫的方式不同,Flutter只需一個代碼庫。Flutter代碼的可重用性功能,方便了開發人員僅編寫一個代碼庫,并將其運用到Android、iOS、Web以桌面等環境中。如此單一的代碼庫不但有助于減少開發時間和成本,而且能夠更快地啟動您的應用程序。
小部件(Widget)的概念提供了無數的可能性
Flutter的自定義小部件,非常適合為您開發出色的應用視覺效果。同時,Flutter應用開發服務提供器(service provider)也會協助您構建出一個精良的應用程序,而且您不必擔心自己的應用是否會在其他設備上存在的UI問題。
豐富的庫
Flutter使用了流行的框架--Skia圖形庫。這是一個小巧而成熟的開源圖形庫。每次視圖設計出現更改時,它都會重新設計應用程序中的UI。因此,用戶會獲得快速加載和流暢使用的體驗。
使用熱重載進行快速測試
在測試了熱重載功能后,應用程序的開發速度往往會加快。如果您使用Flutter的話,則無需重新加載應用程序,即可查看到代碼的更改效果。據此,您可以輕松地、實時地更改自己的應用程序,以便在開發過程中盡早發現并修復代碼中的錯誤。
Flutter應用程序的缺點
Flutter的缺陷雖然不至于破壞某個交易或應用,但是它作為應用工具包的確存在著如下方面的不足:
體積大
由于帶有各種小部件,因此Flutter應用程序往往占用大量的有限空間。而正是因為它體積臃腫,因此需要更長的時間去下載、或更新數據。
更新較為復雜
Flutter需要更新相關模塊,以升級操作系統中的編程要素,其中既涉及到Flutter模塊與程序中固定元素的結合,又涉及到重新編譯、以及在設備上重新安裝。
有限的工具和庫集
雖然Flutter已經能夠提供市場上具有最新功能的各種工具庫,但是如果您需要創建特定的工具、擴展某個功能、或是開發一個社區的話,就需要等待一段時間了。例如:Flutter目前尚無法完全支持3D觸摸應用,以及一些需要頻繁調用相機或電話等功能。
基于Flutter開發的應用
隨著Flutter應用開發熱度的持續升溫,以及對于Flutter開發人員需求的不斷增長,Alibaba、Yandex、Airbnb、Philips Hue、Reflectly、Uber、Hookle、以及eBay等頂級新技術公司都持續創建了針對各種用途的Flutter應用服務。
如何開始使用Flutter?
由于Flutter應用的學習曲線比較平滑,因此Flutter開發人員可以通過友好的UI,為自己的應用順利地構建出自定義的小部件,并將它們與現有的部件進行無縫結合。總地說來,您可以按照如下步驟開始使用Flutter:
- 學習和理解Dart、以及其他相關的編程語言,例如C語言和一些面向對象的概念。
- 加入Gitter聊天室,與具有Flutter實踐經驗的開發人員進行交流。
- 為待開發的應用程序類型和設計,提供準確的要求和功能列表。
- 通過加入Slack和其他Flutter社區,以了解GitHub存儲庫,并獲取足夠的Flutter知識。
- 參加各種技術會議、教程、研討會、甚至是黑客馬拉松來獲取業界動態。
- 參加與Flutter相關的網絡研討會、在線課程、瀏覽Flutter博客、以及參與代碼挑戰賽等。
- 安裝編輯器,并了解其基本原理。
- 根據框架的更新和版本,檢查對于系統的要求。
- 選定操作系統,下載合適的Flutter SDK版本。
為什么Flutter是Web開發的最佳選擇?
如果您正準備開發一個可以在任何平臺上流暢運行的Web應用,那么Flutter能允許您構建出,除了智能手機之外,可以運行在Linux、Mac和Windows上的應用程序。同時,您可以自定義應用界面上的圖標、顏色、以及布局等元素,以提高界面的易用性。此外,初創公司也可以使用Google firebase框架,來構建無服務器應用程序,以支持后端應用,并加快開發的整個周期。
譯者介紹
陳峻 (Julian Chen),51CTO社區編輯,具有十多年的IT項目實施經驗,善于對內外部資源與風險實施管控,專注傳播網絡與信息安全知識與經驗;持續以博文、專題和譯文等形式,分享前沿技術與新知;經常以線上、線下等方式,開展信息安全類培訓與授課。
原文標題:??A Complete Guide on Flutter App Development??,作者:Kiran Beladiya