小米董红光:直达服务如何让框架、平台特性互为补充?

最近一段时间,小米直达服务伴随内测以及产品功能的集中曝光,获得了开发者、尤其是前端开发者的关注。而小米MIUI系统框架负责人董红光作为小米直达服务的技术负责人,也通过在InfoQ的社群分享、视频直播等多种形式,解答了开发者对小米直达服务在技术层面、开发层面的诸多疑问。其中就开发者集中比较关心的小米直达服务框架+平台的产品特性,以及小米直达服务所强调的“一次编写、四端运行”等特点,以及一些生态层面的疑问,InfoQ记者又与董红光进行了一次深入探讨。

在呈现此次探讨结论之前,先来回顾一下小米直达服务几个值得关注的要点:

——小米给其直达服务的定义是:应用“即点即用”、无需下载,“秒开”立即使用各类应用服务;

——小米直达服务使用安卓原生渲染,但是除了原生渲染引擎之外,也支持在没有原生渲染条件之下,直接渲染到浏览器;

——小米直达服务的核心在于:它是一个操作系统,操作系统仍是用户使用手机的第一入口;

——通常情况下,移动端服务的发现主要有三类,应用商店、搜索、场景化。小米直达服务充分发挥直达服务自身的优势和 MIUI 的优势,深挖搜索和场景化入口;

——从开发效率角度看,小米直达服务和前端开发比较接近,采用前端主流的模版 + 数据绑定的 MVVM 模式,非常容易理解和上手。

前端开发者眼中的小米直达服务

InfoQ:在接受此次采访之前,您做客了我们的大咖说直播,也参与了面向前端开发者的社群分享,在与开发者的互动中,您印象最深的他们的提问或者反馈是什么?您对此的感触是什么?

董红光:前端开发者比较关注小米直达服务与微信小程序的异同。说明这个技术趋势还是受到开发者重视的,大家都想找到一个适合自己的开发平台,当然我们之间区别还是挺明显的。

另外,开发者比较关注小米直达服务原生渲染的特点,这直接关系着他们对前端技术层面的一些选择,包括能力问题、学习方法问题、代码写法问题,大家都希望学习成本能够低一些。

此外,开发者也比较关注小米直达服务“秒开”场景对业务的帮助究竟能有多大。

InfoQ:您认为目前前端开发技术的发展呈现出什么样的趋势?对开发者来说,这意味着什么?

董红光:前端开发在过去相当长一段时间内没有那么工程化,需求量是很小的。但是近年来发展非常快,市场上对工程化工具、编译、测试、框架…需求明显,这也使得前端开发技术每一年甚至半年就有一个日新月异的发展,对开发者来说就需要不断学习。

另外,前端开发也从前端浏览器向前端、后端、客户端通吃的方向演进,纵深广、贯穿深。

InfoQ:前端开发技术的发展演进,以及前端开发者群体的成长,将会给小米直达服务构建起的开发者生态带来什么样的影响?

董红光:前端开发技术的发展演进会让更多高质量开发人才涌入,这是一个正向的推进和影响。我们也是在前期做了很多调研的基础上,决定还是用前端语言作为我们直达服务生态的官方语言。

InfoQ:在直达服务的推广上,面对用户侧和开发者侧,小米的推广计划是什么?这其中的挑战是什么?

董红光:开发者侧目前还在内测中,很快就要启动公测了。挑战主要还是在增加更多文档、工具的支持。

对于用户侧来说,挑战在于增加品牌认知,毕竟小米直达服务还是需要通过更多场景化入口的方式来触发用户的使用,我们也在计划拓展服务品类,比如增加资讯类、工具类、生活类的应用。

另外还有一个就是面向开发者、用户这二者的诉求平衡的挑战。开发者希望用户的粘性更高,用户希望不被打扰,我们就需要在二者之间找到平衡点。

框架+平台的特性和挑战

InfoQ:如何理解直达服务框架+平台的产品特性?对于小米来说,这两个特性的技术路径和推进节奏分别是什么?

董红光:框架的核心是解决效率问题,比如我们的原生渲染特性,比如多端运行特性。在框架层面,开发者自己的前端代码,加上我们的运行时环境,就能当作正常APP跑在各个系统上。我们目前支持打包成一个APK,运行在绝大部分安卓手机上;也支持导出成一个M站,通过浏览器渲染运行。

而对于平台来说,可以做到应用的无需安装、即点即用,以及应用之间的无缝跳转,这是框架无法做到的,平台能够承载移动端服务的大部分设想。

目前小米手机可以使用平台功能,虽然在未来这个平台功能可能会覆盖到更多设备,但毕竟不是全部;因此小米直达服务支持独立使用技术框架,也是为了让更多开发者不会被平台挡在门外,他们完全可以自己打包分发,自己开发一些平台不支持的功能。在我看来,框架、平台二者是互为补充、并驾齐驱的。

InfoQ:对于小米直达服务所强调的“一次编写、四端运行”来说,您是否认为这是一次“冒险”?它带给开发者的优势是什么?带给小米的挑战、机会是什么?

董红光:我们必须承认,要抹平不同平台间的差异,是一件很难的事儿。而对于用户来说,他也未必在意这种差异,这就好像他们未必在意iOS、安卓平台之间的差异一样。所以开发者使用平台专有特性的场景并不多,这让多端运行存在较大的可能性。

所以我们所强调的“多端”,未必是“多端”在任何产品下全都完美运行,应该说我们框架用来抹平80%以上的平台差异,如果开发者只使用这些能力,那么就是完美运行,如果使用剩下的20%平台的差异,那么需要自行处理平台的差异,我们也提供方法让开发者对框架进行拓展。

InfoQ:对于正在内测中的小米直达服务来说,请您总结一下目前内测中开发者一些共性的反馈?

董红光:这些反馈是可以督促我们前进的,比如前期调试工具太简陋、文档和测试代码都比较少的问题,借助于内测反馈,目前也都得以解决。

InfoQ:您是小米直达服务的负责人,面向开发者层,小米直达服务会做哪些技术储备?还有哪些技术上的“野心”?

董红光:首先是功能方面的深挖,比如在原生渲染上,如何进一步优化安卓端、浏览器端;其次是将MIUI系统层的优势打通,能够通过更多应用场景入口触发用户的使用;另外因为开发者对框架的诉求很多,我们也希望让框架更强大、更灵活,对于前端开发框架,未来不排除会直接引入第三方或开放第三方接入的能力。