技术新思路:FinClip助力小程序转App

2022-11-09 15:30:18 浏览数 (1)

Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面。 Flutter可以与现有的代码一起工作。在全世界,Flutter正在被越来越多的开发者和组织使用,并且Flutter是完全免费、开源的。

它也是构建未来的Google Fuchsia应用的主要方式。

Flutter的框架结构及特性

Flutter的主要结构包括:

· Flutter engine · Foundation library · Design-specific widgets

框架特性

快速开发。Flutter的热重载帮助你快捷方便的试验、重构UI、添加特性和修复bug。在仿真器、模拟器和ios、android硬件上体验亚秒级的重载,而不会丢失状态。

绚丽UI。通过Flutter内建的漂亮的质感设计和Cupertino(ios-flavor)小工具、丰富的动画API,平滑的自然滚动和平台感知,让用户感到满意。

Flutter优点

Flutter的优点非常明显,如果你选择一个跨平台框架,与众多基于html的跨平台框架相比,Flutter绝对是体验最好,性能与构建思路几乎最接近原生开发的框架。

1、路由设计突出。Flutter的路由传值非常方便,push一个路由,会返回一个Future对象(也就是Promise对象),使用await或者.then就可以在目标路由pop,回到当前页面时收到返回值。

2、性能强大且流畅。Flutter基于dom树渲染原生组件,很难与直接在原生视图上绘图比肩性能,Google作为一个轮子大厂,直接在两个平台上重写了各自的UIKit,对接到平台底层,减少UI层的多层转换,UI性能可以比肩原生,这个优势在滑动和播放动画时尤为明显。

3、可选静态的语言(Dart)。Dart是一个静态语言,这也是相对于js的一个优势。Dart可以被编译成js,但是看起来更像java。静态语言可以避免错误,获得更多的编辑器提示词,极大的增加可维护性。很多js库也已经用ts重写了,Vue3.0的底层也将全部使用ts编写,静态语言的优势不言而喻。

4、优秀的动画设计。Flutter的动画非常简单,动画对象会根据屏幕刷新率每秒产生很多个(一般是60个)浮点数,只需要将一个组件属性通过部件(Tween)关联到动画对象上,Flutter会确保在每一帧渲染正确的组件,从而形成连贯的动画。 这种十分暴力的操作在Flutter上却看不到明显的卡顿,这也是Flutter的一个魔力所在。

Flutter缺点

1. UI细节离原生有一些差距

2. 开发体验不太好,跨端调试工具不完善,调试时间会更长

3. 安装包体积会比较大,开发人员需要做 Flutter 的产物瘦身与包体积瘦身

而且Flutter有个致命的缺点:不得不熟悉源生代码。

Flutter主要的坑就在于需要非常了解原生的环境。Flutter主要的优势在于动画流畅,很多开发者反应比原生安卓还流畅(存疑)

这就意味着Flutter是UI跨平台,最后还是在原生平台运行。

flutter+小程序组合新思路

Flutter具有与原生代码互相调用的能力固然合理。

但是前端框架和源生语法都要熟悉,那么学习Flutter看起来就会是一个很矛盾的点。

那么既然框架内无法调和,能不能试试组装式的技术思路呢?

找了下资料,相比于「H5 App」的 Hybird 方案,「小程序 App」的技术方案优势还是明显的

· 包尺寸有效减少,节省流量和存储 · 服务不再受发版所限制,支持热更新 · 能获取更多系统权限,完成更加丰富的产品设计; · 可以避免 DOM 泄露(不使用常用的 window 对象与 document 对象); · 远超过 H5 的体验(支持本地缓存,Webview,有丰富的组件与支持库); · 具备跨平台的能力,一套代码可以在 iOS 与 Android 两个平台中运行;

小程序的Flutter在各大技术平台都有很多干货,这里就不赘述了。

下面主要讲讲我发现的,用FinClip将小程序转App的实操。

小程序转App的整体示意图,还是挺清晰的:

按照他们的开发者文档和视频教程一步步的操作。

操作步骤

1)将已有的微信小程序,转换成FinClip小程序。

敲黑板:如果小程序是用Flutter等主流前端框架写的,官方建议最好是用FIDE编译一下,看看会不会有什么报错之类的。

另外,如果你的登录是用微信授权登录的,建议先操作第2)关联微信授权登录

这样你就不需要禁用微信登录这个功能就可以运行了。

这里的步骤包括:创建小程序基本信息 >> 上传小程序代码包(我的是微信语法写的小程序,就没有用FIDE预览了),操作了这两个步骤以后,没啥报错的情况下,FinClip小程序代码包就已经生产完毕了。

2)关联小程序微信登录授权

FinClip有个很好用的功能,就是可以复用微信登录授权

换句话说,在自有App或者用他们家的小程序转App功能,都可以通过这个功能,事先调通App中的微信登录,减少了许多基础开发及调试工作。 第一步:登录 FinClip 管理后台

第二步:在“小程序管理中”找到:我的小程序>>小程序详情>>第三方管理。

第三步:将由 FinClip 设计的小程序授权页面增加至已有的小程序代码包之中并提交审核,授权页官方已经直接放到了GitHub,可直接自取:https://github.com/finogeeks/wechat-auth-page

第四步:紧接第二步,在管理后台页面点击新增登录关联,根据提示填写“微信小程序原始ID”、“微信小程序昵称与头像授权页路径”、“小程序手机号授权页路径”。

写在最后

作为当前最流行移动端操作系统android提供商google主推的flutter,厂商加成,技术路线又被证明过,被看好,是很理所应当的。

一般企业开发的时候可以需要有选择的、对部分页面进行flutter的渲染,部分功能运行在小程序上。

相信flutter+小程序组装式的技术思路早晚会成为更主流的前端框架。

0 人点赞