作者:閑魚技術-正物
寫在前面
當前,閑魚客戶端已經實現了基於Flutter的商品詳情頁的全量重構,線上效果良好。從alpha一路走來,我們遇到了很多問題,或基於原理,或透過社區,或與官方合作,都一個個解決了,是時候梳理和總結下,也希望為其他的開發者們,尤其是已有工程中引入Flutter(混合場景)實現漸進式重構帶來啟發和幫助。
鑒於存在多個問題一個原因或解法的情況,而本系列的重點在於說明各種問題的解決方案與思路,就不一一列出問題。所有調試/熱重載相關的Flutter均為Debug模式的Flutter,不再特殊說明。
本系列文章包含三篇:引入篇,運行篇,上線篇。引入篇重點介紹工程研發體系;運行篇介紹混合情景下的棧管理與能力補齊等;上線篇介紹兼容/穩定性保障及方法。
工程研發體系的關鍵點包括:
a.混合工程下的Flutter研髮結構
混合工程中一個全局視角的的研髮結構如何。
b.工程結構
已有的Native工程如何引入Flutter,工程結構如何組織,如何管理Flutter環境,如何去編譯構建,集成打包等。
c.構建優化
這裡主要介紹如何去針對Flutter的工具鏈(flutter_tools,Intellij插件等)進行調試與優化。
d.Native啟動下的Flutter調試
不同於Flutter啟動下的一體化調試,這種Native啟動(Xcode/Android Studio啟動,或點擊圖標打開應用)下的Flutter調試,我稱之為分離式調試。分離式調試可以簡化flutter_tools帶來的複雜度,提高調試的穩定性和靈活性。
e.Native啟動下的Flutter熱重載
同d。
f.聯合調試
即同時調試Flutter和Android/iOS。
g.持續集成
即混合環境下的Flutter構建與持續集成。
環境說明