优酷APP响应式布局技术概述 | 《优酷响应式布局技术全解析》第一章

简介: 本章介绍 优酷APP响应式布局技术概述

下一章:优酷APP响应式布局技术之Android篇 | 《优酷响应式布局技术全解析》第二章>>>

作者| 阿里巴巴文娱技术 叮东

一、背景

近年来,大屏手机、安卓Pad、iPad、折叠屏手机、车机大屏等大尺寸设备发展迅猛。尤其是2020年二季度中国平板市场出货量达到661万台,同比增长17.7%,其中苹果 iPad市场份额占比41.8%,华为平板市场份额占比37.1%。

image.png

安卓系统运行在越来越多尺寸的设备上,开发的手机App如何适配到不同尺寸上,是安卓开发者遇到的痛点。同时苹果也推荐开发适配手机和iPad的Universal版本,支持iPad的诸多新特性,例如侧拉、分屏使用等。基于以上背景,我们启动了优酷APP响应式,适配不同屏幕尺寸下的显示效果。

image.png

二、什么是响应式

描述响应式最著名的一句话就是“Content is like water”,翻译成中文便是“如果将屏幕看作容器,那么内容就像水一样流淌”。
响应式就是基于同一套代码,开发一个APP能够兼容多尺寸、多终端设备的显示,能够动态调整页面的布局以及容器的布局,充分利用当前屏幕的尺寸,为用户显示更多的内容,提供更好的浏览体验,同时提升APP的开发效率,迭代速度更快,保障多终端业务同步发展。

image.png

三、响应式的优势

image.png

1、开发成本更低 —— 一套代码

想要在不同尺寸屏幕的终端上获取良好的显示效果,传统的应用适配方案是针对不同尺寸的终端设备开发多个APP,例如很多厂商都会针对Pad推出HD版本。而响应式的APP可以根据屏幕具体的物理尺寸自适应的显示,只需要开发一套代码,就可以兼容多种尺寸的终端,不需要开发单独的HD版本。
不同的终端的App,由不同的垂直团队开发,会带来不同的后台系统和客户端技术方案,前后端技术能力会走向分化。响应式是同一个APP运行在不同尺寸的设备上,使用统一的后台系统,一次开发,多端生效。

image.png

2、设计成本更低 —— 一套设计规则

响应式使用了一套界面自适应的布局方案,横向拉通页面以及容器布局的适配规则,提高了屏幕的显示效率,面对不同分辨率的设备适应性更强,最大化提升用户的操作体验。一套设计规则,适配不同的尺寸,做到以不变应万变,大大节约了设计的成本。

image.png

3、业务迭代更快 —— 多端业务同步发展,一次运营多端生效

响应式APP多端保持一致的版本发布节奏,业务方在迭代过程中,会考虑多端的不同使用场景,业务特性能快速在多端同步推进。
往往不同终端有不同的运营系统,可能存在多个垂直运营团队,一次运营动作需要操作多次。响应式基于同一个客户端、后台和运营系统,运营收敛到一个团队,一次运营多端同步生效。

四、响应式的设计思路

如何在不同尺寸不同分辨率的屏幕下,有效的利用屏幕的尺寸?最简单的理解就是在大屏幕上显示更多的内容。这就需要在设计侧通盘考虑所有尺寸的屏幕,拉通不同宽高比例的设计规则,动态调整可见元素的布局(元素的列数以及尺寸等),在不同尺寸的设备上都能达到最佳的显示效果。

image.png

1、基本原则

1) 内容自动伸缩,保证适配内容填满当前屏幕;
2) 坑位列数可灵活按照屏幕的宽高比例进行适当增加或减少进行排版布局;
3) 组件内的内容可根据页面的宽度自动隐藏或显示部分内容,进行整个屏幕的适配,减少留白;
4) 页面边距间距用物理尺寸dp表示。在不同的设备上保证左右边距、间距的物理尺寸不变,内容做自适应;
5) 在不同机型适配上,交互方式符合大部分用户的使用习惯,体验是连贯统一的;
6) 同一页面在不同大小和比例及分辨率下看起来都是舒适的、合理的;
7) 内容在多尺寸响应适配下如遇适配成本过高或适配不了的情况,设计&产品&开发需要基于体验、业务、实现成本考虑达成一致,以低成本无损体验方式来完成适配

2、适配规则

1) 拉伸布局,内容元素在相对宽度内通过结合内容的展示隐藏来进行进行相应的拉伸适配,比如顶导航底导航;

image.png

2) 等比缩放,界面中元素在相对位置内按照一定比例进行缩放;

image.png

3) 扩展布局,通过内容元素的增加或减少,扩展为多行或者多列重复排列;

image.png

4) 组合布局,模块与模块进行组合,去适配宽度;

image.png

5) 内容固定居左,横屏&竖屏下固定布局,大小尺寸不变居左展示;

image.png

6) 内容固定居中,在横屏竖屏下比例不变 保证内容居中展示;

image.png

7) 分栏布局,页面的结构发生变化,按照屏幕宽度左60%,右40%占比进行分两栏展示。在优酷视频中,分栏布局主要用于播放页的展示,左60%宽度提供良好的播放体验,右40%宽度方便用户操作,推荐相关视频内容和评论;

image.png

五、响应式的架构设计

响应式的核心是拉通多终端的适配规则,开发一套界面,一个APP兼容多尺寸终端设备的显示,能够根据用户的行为以及设备的环境(屏幕尺寸、屏幕方向、是否分屏等)进行相应的页面布局以及容器尺寸的调整。为此响应式SDK提供了响应式状态管理、横竖屏切换、容器列数换算规则、容器尺寸适配规则、页面宽高获取方法、响应式基础控件等基础能力。业务方只需要接入响应式SDK,就能够方便快捷的解决在不同尺寸下的适配问题。

image.png

从结构上看,响应式由响应式SDK、响应式页面布局、响应式容器布局三部分相互配合完成,在这些的基础上支撑了首页、频道页、播放页、会员页、搜索、个人中心等众多的业务场景。
在Android和iOS上,如何进行响应式状态的管理?如何解决分屏下页面宽高的获取?如何解决多尺寸多终端下的页面布局以及组件容器的布局?具体细节请看以下两篇文章:
《响应式技术架构(Android)》
《响应式技术架构(iOS)》

六、响应式的业务改造

经过前期的技术调研,确定了Android、iOS、Flutter、Weex、H5等技术栈的适配方案,并以首页、频道页、播放页三大业务场景为切入点,完成初期响应式适配,进行效果演示。验证适配方案可行性后,决定在优酷所有核心业务场景落地。为了推进项目的顺利进行,召集了相关核心业务场景的技术、产品、设计、测试同学,进行项目kick off,介绍项目背景以及价值,明确相关业务团队具体的工作和节奏,经过1个月所有同学的努力,顺利在所有核心场景上线。
具体参与改造的核心业务场景有:首页、频道页、播放页、搜索、会员、会员交易、动态、个人中心、二级页、互动、评论等,部分场景适配效果如下所示:

image.png

响应式业务改造涉及众多的业务场景以及技术栈,如何在实际的适配过程中,确保所有的业务场景和技术栈都能低成本高效的适配,是响应式落地的关键。那么业务方在适配过程中具体做了哪些工作?如何解决多技术栈的响应式改造?如何保障响应式适配后的用户体验?由于优酷的业务场景非常多,分发场景和消费场景是其中最典型也最重要的,推荐查看以下这两个场景的落地文章:

《优酷响应式在消费场景的落地 Android》
《优酷响应式在消费场景的落地 iOS》

七、响应式的测试与上线

优酷响应式适配对测试来说面临着很大的挑战,既要保证不同尺寸上的适配效果,又要保证业务的完整。这就要求在测试过程中需要进行功能测试、稳定性测试、性能测试以及兼容性测试,具体细节请看以下文章:
《优酷响应式测试方案》

相关文章
|
8天前
|
JSON 前端开发 JavaScript
【JavaScript技术专栏】JavaScript异步编程:Promise、async/await解析
【4月更文挑战第30天】JavaScript中的异步编程通过Promise和async/await来解决回调地狱问题。Promise代表可能完成或拒绝的异步操作,有pending、fulfilled和rejected三种状态。它支持链式调用和Promise.all()、Promise.race()等方法。async/await是ES8引入的语法糖,允许异步代码以同步风格编写,提高可读性和可维护性。两者结合使用能更高效地处理非阻塞操作。
|
11天前
|
开发框架 前端开发 Android开发
专刊:从网页到应用:探索在线生成 App 的技术方法
【4月更文挑战第27天】在数字化时代,移动App变得不可或缺,而在线生成App的技术正逐渐兴起,为开发者提供快捷创建移动应用的途径。本文探讨了网页到App的转变过程,介绍了WebView嵌入、混合式开发框架和云端打包技术等方法,以及在线生成App的步骤、优势和挑战。虽然存在性能和功能限制,但随着技术进步,未来在线生成App将有更多可能性,为移动应用开发带来便利。
|
11天前
|
Cloud Native Linux 开发者
【Docker】Docker:解析容器化技术的利器与在Linux中的关键作用
【Docker】Docker:解析容器化技术的利器与在Linux中的关键作用
|
7天前
|
缓存 移动开发 前端开发
【专栏:HTML与CSS前端技术趋势篇】HTML与CSS在PWA(Progressive Web Apps)中的应用
【4月更文挑战第30天】PWA(Progressive Web Apps)结合现代Web技术,提供接近原生应用的体验。HTML在PWA中构建页面结构和内容,响应式设计、语义化标签、Manifest文件和离线页面的创建都离不开HTML。CSS则用于定制主题样式、实现动画效果、响应式布局和管理字体图标。两者协同工作,保证PWA在不同设备和网络环境下的快速、可靠和一致性体验。随着前端技术进步,HTML与CSS在PWA中的应用将更广泛。
|
7天前
|
供应链 Java API
Java 8新特性解析及应用区块链技术在供应链管理中的应用与挑战
【4月更文挑战第30天】本文将深入探讨Java 8的新特性,包括Lambda表达式、Stream API和Optional类等。通过对这些新特性的详细解析和应用实例,帮助读者更好地理解和掌握Java 8的新技术。
|
8天前
|
前端开发 Android开发 开发者
【Flutter前端技术开发专栏】Flutter中的混合应用(Hybrid Apps)开发
【4月更文挑战第30天】本文探讨了使用Flutter开发混合应用的方法。混合应用结合Web技术和原生容器,提供快速开发和低成本维护。Flutter,一款现代前端框架,以其插件系统和高性能渲染引擎支持混合应用开发。通过创建Flutter项目、添加平台代码、使用WebView、处理平台间通信以及发布应用,开发者可构建跨平台混合应用。虽然混合应用有性能和用户体验的局限,但Flutter的跨平台兼容性和丰富的插件生态降低了开发成本。开发者应根据项目需求权衡选择。
【Flutter前端技术开发专栏】Flutter中的混合应用(Hybrid Apps)开发
|
8天前
|
NoSQL 大数据 数据处理
MongoDB聚合框架与复杂查询优化:技术深度解析
【4月更文挑战第30天】本文深入探讨了MongoDB的聚合框架和复杂查询优化技术。聚合框架包含$match、$group、$sort和$project阶段,用于数据处理和分析,提供灵活性和高性能。优化查询涉及创建合适索引、使用聚合框架、简化查询语句、限制返回结果数、避免跨分片查询、只查询所需字段及使用$inc操作符。理解这些技术有助于提升MongoDB在大数据和复杂查询场景下的性能。
|
8天前
|
Dart 前端开发 开发者
【Flutter前端技术开发专栏】Flutter Dart语言基础语法解析
【4月更文挑战第30天】Dart是Google为Flutter框架打造的高效编程语言,具有易学性、接口、混入、抽象类等特性。本文概述了Dart的基础语法,包括静态类型(如int、String)、控制流程(条件、循环)、函数、面向对象(类与对象)和异常处理。此外,还介绍了库导入与模块使用,帮助开发者快速入门Flutter开发。通过学习Dart,开发者能创建高性能的应用。
【Flutter前端技术开发专栏】Flutter Dart语言基础语法解析
|
8天前
|
算法 数据处理 芯片
【期末不挂科-单片机考前速过系列P9】(第九章:6题速过单片机概述)经典例题盘点(带图解析)
【期末不挂科-单片机考前速过系列P9】(第九章:6题速过单片机概述)经典例题盘点(带图解析)
|
9天前
|
编解码 前端开发 JavaScript
网页设计的艺术与技术:深入解析与代码实践
网页设计的艺术与技术:深入解析与代码实践
16 1

推荐镜像

更多