写点什么

彻底解决动效开发痛点问题,优酷跨平台方案来了

  • 2020-05-07
  • 本文字数:1610 字

    阅读完需:约 5 分钟

彻底解决动效开发痛点问题,优酷跨平台方案来了

一、背景

在优酷客户端开发的日常工作中,存在着大量动效场景需求,如 ToastView 显示与消失、页面推入的轨迹动效、Pop 弹出等。虽然 iOS、Android 都提供了多种友好的动效开发方案,但由于要进行大量的参数配置及调优,面对动效开发工作,大多数开发同学的第一反应是头疼。


动效设计需求产出后,在与研发对接过程中,存在如下一些问题:


1)同一动画,不同的开发人员实现的效果有差别;


2)同一动画,iOS 端和 Android 端实现的效果有差别;


3)Anticipate、Overshoot、Bounce 曲线,设计师无法提供准确参数给开发,实现出来的效果随机性强;


4)部分开发人员对系统自带曲线函数不熟悉,会导致降级应用线性或减速曲线,影响动态效果。


为了彻底解决上述痛点问题,优酷应用心中开发团队与设计团队共同研发推出了优酷跨平台动效解决方案——画眉,目的是从设计标准化、研发组件化、配置工具化三个方向,使得动效从设计-研发-验收-上线的全链路上实现统一、提效。


优酷跨平台动效方案,底层基于算法策略,后续会陆续开放源代码,对于广大的客户端场景动效快速上线,具有广泛的意义。

二、什么是画眉

“画眉”是一种小巧又灵动的鸟类,优酷动效跨平台解决方案以此取名,也因为方案本身的轻量化特性,业务方只需要通过极少量的代码接入,即可完成复杂的动效还原编码工作。


画眉-优酷跨平台动效解决方案由两部分构成:设计侧可视化动效编辑工具、研发侧跨平台 SDK,目标是彻底打通研发与设计链路,降低沟通成本,缩短验收周期,统一多端体验。



(图 1 画眉全链路保障)

三、技术方案

  1. 架构路线



(图 2 画眉整体架构)


  1. 技术实现


考虑到性能以及平台特性,在 iOS 端与 Android 端进行 SDK 策略落地时,均基于 AOP 的思想,提供了最为轻量化的技术方案。由于目前优酷客户端底层通过 OneService 提供服务, ThrushSDK 在优酷业务内落入 OneService 体系内,便于各业务的无缝接入。


1)iOS 端技术方案


SDK 接口层采用 Category 方案,通过 AOP 思想来简化调用复杂度。


CALayer + MotionCurveX 为 CALayer 的所有可动画属性,按照动效曲线能力提供支持,且在动画完成后,无需再次设置目标值。ThrushSDK 将常用的 7 种动效曲线,进行底层算法实现,使用者只需指定曲线枚举,即可实现标准化的动效。



(图 3 画眉动效曲线 iOS 端枚举定义)


底层 C 函数算法库,可以通过标准曲线实现代码来一探究竟,如图所示:



(图 4 标准曲线算法实现)


2)Android 端技术方案


为了降低 java 调用 C 的性能损耗,Android 端采用差值器 Interpolator 来实现曲线动效。



(图 5 画眉动效曲线 Android 端插值器)


  1. 可视化动效编辑工具


1)功能架构



(图 6 功能架构示意图)


2)体感



(图 7 画眉动效曲线可视化编辑工具)


3)工具介绍


ThrushEditor 目前基于 iOS 平台开发,目标使用人群为动效设计师。编辑器对于动效创作最大的提效点在于:动效可视化预览、简化参数调优、动效代码导出。设计师在确认动效参数后,使用导出工具,一键导出 iOS | Android 代码,完成与开发工程师的无缝对接。

四、总结

画眉-优酷跨平台动效解决方案推出后,目前已经在优酷 APP 内多个场景投入使用,在双端体验上也完全达到了设计初的各项预期。


  1. 优酷 APP 内场景落地


业务场景
首页搜索转场动效iOS|Android
语音搜索文案动画iOS|Android
热点弹性动效iOS|Android
个人中心消息气泡iOS|Android
播放页臻享切换动效iOS|Android


  1. 近期规划



(图 8 画眉技术方案规划)


1)开源:由于画眉 SDK 本身是纯算法实现,没有任何底层库强依赖,因此,后续会推进画眉 SDK 以及可视化编辑工具的集团内开源及外部开源,让其能效在更大的场景发挥作用;


2)多平台:以 iOS、Android 双端的效果验证作为底座,针对其他业务同学的需求,画眉会推出针对 weex 及 H5 的解决方案,让更广泛的开发同学受益;


3)品牌化:画眉跨平台动效解决方案会与设计中台联动,以大文娱技术品牌的方式将标准化、模块化、工具化三位一体的整套策略进行行业宣发。


作者 | 阿里文娱无线开发专家 祁序


2020-05-07 18:572246

评论

发布
暂无评论
发现更多内容

低代码开发平台如何提升企业应用构建效率

力软低代码开发平台

com.google.guava:guava 组件安全漏洞及健康分析

墨菲安全

组件 组件健康度

Java实现学生信息管理系统读取Excel数据

SoFlu软件机器人

直播预告!生鲜与零售商品识别系统产业实践与部署详解

飞桨PaddlePaddle

人工智能 百度飞桨 硬件生态

智能汽车驾驶演进:虚拟ECU种类与优劣分析

DevOps和数字孪生

虚拟ECU 汽车行业

GitHub Copilot三连更:能在代码行里直接提问,上下文范围扩展到终端

Openlab_cosmoplat

人工智能

AI技术图像编辑 Luminar Neo for Mac激活中文

mac大玩家j

图像编辑 Mac软件 编辑图像 图像处理工具

低代码是什么?能做什么?

树上有只程序猿

低代码 应用开发

九科信息成功签约东风汽车财务有限公司RPA项目

九科Ninetech

软件测试/测试开发丨UI自动化测试用例结构分析

测试人

Python 程序员 软件测试 自动化测试 测试开发

3D 碰撞检测

3D建模设计

3D 碰撞检测

提升开发能力的低代码思路

互联网工科生

软件开发 低代码 企业级应用程序开发

面试了38位Java候选人之后,我总结出了他们关于面试中的16条通病

程序员小毕

Java 程序员 面试 简历 八股文

软件测试/测试开发丨Python 学习笔记 之 链表

测试人

Python 程序员 软件测试 自动化测试 测试开发

朝夕光年游戏自动化测试实践

字节跳动技术范儿

测试 自动化测试 游戏测试

6 个用于 3D 网页图形渲染的最佳 WebGL 库

3D建模设计

图形引擎

WebGL:基于web的交互式2D/3D图形引擎

3D建模设计

JavaScript WebGL

Data Rescue Pro for Mac(磁盘数据恢复工具) v6.0.8中文版

mac

数据恢复软件 苹果mac Windows软件 Data Rescue

OLAP数据库引擎怎么选?这本白皮书详解

Geek_2d6073

WebGPT VS WebGPU

3D建模设计

webgpu webgpt

org.mockito:mockito-core 组件安全漏洞及健康度分析

墨菲安全

组件 组件健康度

HarmonyOS“一次开发,多端部署“优秀实践——玩机技巧,码上起航

HarmonyOS开发者

HarmonyOS

华为云软件精英实战营——感受软件改变世界,享受Coding乐趣

华为云PaaS服务小智

软件开发 华为云 大赛

低代码/无代码平台:加速应用开发的工具

高端章鱼哥

低代码 快速开发 无代码 JNPF

WebAssembly 在云原生中的实践指南

Se7en

DR5018M|IPQ5018 11AC SOM WIFI6 Pioneering the Future of Wireless Innovation

wallyslilly

wifi6 ipq5018

关于信创技术你需要了解这些概念

Onegun

操作系统 中间件 信创产业 信创生态

Premiere Pro 2023 for Mac(pr2023视频编辑软件)v23.6中文激活版

mac

pr2023 苹果mac Windows软件 视频编辑软件 Premiere Pro

WebVR — 网络虚拟现实

3D建模设计

WebVR

彻底解决动效开发痛点问题,优酷跨平台方案来了_文化 & 方法_阿里巴巴文娱技术_InfoQ精选文章