Flutter是近两年蓬勃发展的跨平台前端开发框架,和传统Hybrid模式乃至React Native为代表的JS+原生渲染模式不同,Flutter采用原生自绘UI并暴露统一接口——致力于一次编码,各端(Android、IOS、Web、PC)部署,同时尽量保证UI在各个平台上表现形式的一致性,Flutter还有不少优势不再赘述,参见Flutter中文社区。
目前Flutter稳定版本支持Android、IOS(起步见这里),Beta版本支持Web,需要将本地Flutter库用git切换到beta分支(Flutter目前拥有master稳定分支和beta开发分支),具体操作见官网对web的配置指南,由于目前Flutter更新迭代速度极快,要经常在本地进行flutter upgrade操作保持仓库最新,遇到问题实时关注官网。经过对上述官网和社区的学习,能在本地vs code或者Android Studio上进行Flutter开发,且能在Chrome上进行Web调试,在虚拟机上进行移动端调试。如果想同时兼容Web和移动端,应当以Flutter web目前可用API为准,因为它是Flutter API(移动端开发)的子集,许多移动端的功能web端无法满足,比如AR,手势等。下图是配置完成后在Chrome中调试的Debug页面:
最香的一点是Flutter支持热重载——在iOS和Android模拟器或真机上可以实现毫秒级热重载,并且不会丢失状态,饱受原生开发编译时长折磨的程序员终于能脱离苦海。