1. Flutter是什麼?
Flutter可以用一份代碼同時生成iOS、Android兩個平臺下的高性能的、高保真的App
2. 爲什麼要用Flutter?
在Flutter的官網其實也已經給出了答案,
- Be highly productive(提高開發效率)
- 一份代碼同時開發iOS和Android
- 用更少的代碼去幹更多的事
- 快速迭代
- 通過熱加載,在App運行時可以直接通過更改代碼就能直接看到效果
- 修復crash並且可以從從應用程序停止的地方繼續進行調試
- Create beautiful, highly-customized user experiences(漂亮、高度定製的用戶體驗)
- Flutter提供了豐富的Material Design和Cupertino(iOS風格)的widget
- 實現定製、美觀、品牌驅動的設計,而不受原生控件的限制
簡單的解讀下,就是Flutter提供很多針對與iOS和Android平臺下小組件,能夠高效的、快速的跨平臺開發
3. Flutter的核心原則
-
一切皆爲widget widget是Flutter應用程序的基本構建模塊,可以自由組合不同的widget,而且widget還可以存儲狀態。單個widget的結構其實跟樹差不多,如圖:
4. Flutter VS React Native
我們可以對比一下由Flutter和React Native開發的程序的區別不難發現
- Flutter不會調用系統自帶的UI組件,只需要操作系統提供一個畫布(Canvas),渲染部分由應用代碼和Flutter自己完成,這樣的架構就減少了應用代碼跟系統平臺之間的性能消耗
- React Native是把JS代碼編譯成JS文件,這個文件會映射到virtual DOM這個虛擬的JS數據結構中,通過bridge傳遞到native,然後根據數據屬性設置各個對應的真實native的View
簡單的說了這麼多,那我們就開始愉快Flutter之旅吧!
5. 開發系統與工具選擇
工慾善其事必先利其器,開發系統與工具的選擇也就尤其重要了,磨刀不誤砍柴工!
- Windows還是Mac?
操作系統 | 價格 | 功能 |
---|---|---|
Windows | 價格親民 | 無法開發iOS |
Mac | 價格較高 | 能同事開發iOS和Android |
- Android Studio還是Visual Studio Code?
VS雖是前端的開發利器,但並不能調試Android項目,AS的話是google的親兒子,所以在一些新特性的兼容上會比VS更快更好,包括一些調試也會更方便,所以我們選擇AS作爲我們的開發工具,當然官方推薦也是AS
6.開發環境的搭建
Flutter中文網已經介紹得很詳細了,這裏就不多做贅述。傳送門