微博在开发中不断探索优化方案,其C++组件适配层、Card方案和小程序方案各有特色又互有联系,组合使用更是带来新的优势。下面就具体分析这些开发方案。
通用适配层
为让C++开发的组件更好接入原生开发,微博在双端实现通用适配层。该适配层解决了数据格式转化和数据传输等难题。此方案切实提升了组件接入效率,提高了开发的便利性。若没有它,组件接入原生开发会繁琐很多。
从诸多实际案例看,不管在时间成本、人力成本还是技术难度上都降低不少。这种方案适合高性能与安全线要求高的基础通用功能场景,比如一些后台数据处理系统,能避免很多不必要的问题。
Card方案
微博的Card方案已经实现100多种形态各异的卡片。每一种卡片都有特定样式、交互方式和支持的业务能力。像一些微博推广卡片、活动卡片等,都各具特色。通过分析各方业务需求来设计卡片,能满足不同用户群体的需求。
但Card方案有个明显缺点,它不支持定制。每种卡片样式、交互和业务逻辑从创建就固定,无法修改。若要改变卡片行为,只能创建新卡片。比如修改一个活动卡片的交互方式,只能重新设计新卡片,很麻烦。
组件与API能力
小程序为开发者提供大量业务组件。将硬件能力、设备能力和微博特色业务能力包装成API,方便开发者使用。开发者能根据需求调用这些API,加快开发进度。比如创建一个需要调用相机的小程序,调用对应的API就可以实现。
这些业务组件和API能力极大地扩展了小程序的功能。开发者不用再去单独开发一些基础功能,减少开发难度。可以把更多精力放在业务逻辑设计上,提升了开发效率。
小程序前端框架
小程序前端框架分Render层和Service层。Render层解决小程序页面渲染和用户交互问题,可类比浏览器网页。当用户在浏览器页面操作时,Render层就负责直观呈现结果。它让小程序有了类似网页的操作体验。
不过该方案有弊端,当用户在浏览器页面滑动,页面含原生控件的所有元素都得随手运动。特别是在一些高分辨率屏幕设备上,可能会有卡顿现象。影响用户体验。
渲染方案的问题与结合
同层渲染方案让浏览器中的小程序有较好交互体验,但也有不足。浏览器渲染性能差,无法支撑复杂页面。而Card方案能实现像微博信息流这样复杂的功能。所以微博提出将Card方案和小程序方案结合的构想。
结合后可以解决Card方案不支持定制的问题。借助小程序的Service层,开发者编写的事件处理函数能执行任意业务逻辑。给Card方案赋予完整业务定制能力。这对开发者来说无疑是很好的改进。
小程序原生渲染新方式
小程序原生渲染除与Card方案结合,还可采用系统自带标准渲染API或第三方渲染方案。这里着重介绍基于Flutter的渲染方案。它借助C++方案,利用C++实现的Layout层专门处理小程序渲染指令。
为满足业务方需求,进一步改造小程序框架,支持输出页面级小程序。现在小程序输出不再是一个APP,而是Activity页面。这种改变让小程序的使用更灵活,适配多种场景。
大家觉得微博这些开发方案中,哪种对开发者帮助最大?动动手指点赞、分享,在评论区留下你的看法!