NativeScript 2.1 现已发布!快速链接 - 立即升级 或 阅读完整发行说明(共修复了118个GitHub问题!)。
如果要在这个版本中提及两个亮点,那就是1)Android性能改进(加载时间和运行时性能),以及2)作为开发流程一部分的更快、更稳定的LiveSync(热重载)功能。
让我们首先从性能改进开始。
在2.0版本中,您可以使用Webpack优化NativeScript应用程序的加载时间。
通过在2.1版本的核心NativeScript框架中引入V8堆快照,我们成功地显著减少了Android的加载时间。请参见下面的性能结果。
在Nexus 5设备(2013年11月型号)上测试的启动时间
配置 |
核心NativeScript |
未捆绑 |
2350 毫秒 |
使用快照捆绑 |
1600 毫秒 |
如您所见,这大约提高了30%的加载速度。我们知道应用程序的加载时间非常重要,我们希望框架的这一新增功能能够受到欢迎。请注意,在创建新应用程序时,此优化默认情况下未启用。要了解如何在您的应用程序中启用此功能,请参阅此文档文章。如果您真的想知道它是如何工作的,您可以查看仓库中的源代码。
虽然我们使用原生UI组件来构建应用程序的用户体验,但仍然存在一些代码来启用您编写的JavaScript代码与这些原生元素之间的绑定。一些客户报告说,在某些情况下,与iOS相比,Android性能会滞后,因此我们对这些Android应用程序进行了主要分析,并根据分析结果,在我们的跨平台模块中进行了一些改进。我们还发现更多可以优化的内容,因此,请期待我们在下一个版本(2.2)中对Android进行进一步的性能优化。
以下是我们进行的优化更详细的列表。请注意,其中许多优化也会影响iOS性能,因为它们位于跨平台层。因此,也请期待iOS性能的改进。
减少设置值(对于我们的依赖属性)时的开销
优化绑定操作 - 更改数据项时,大部分开销都被完全移除。在ListView组件中最为明显。
移除Android ListView的原生scrollListener,从而在滚动时获得更好的FPS
iOS Image组件现在具有loadMode=”async”属性,这会导致在后台线程上加载和解码图像/图像源。再次强调,在滚动ListView时效果最佳。
Label组件现在在iOS中作为原生控件实现,以减少封送开销。
ListView现在使用新的属性 - isLayoutRequired,如果可能则跳过布局传递。
iOS Image和Label组件现在在设置src/text不会更改其尺寸时不会使布局失效。
我们在CLI中进行了大量改进(在GitHub上修复了36个问题!)。我们还刚刚发布了NativeScript的Visual Studio Code扩展的新版本。查看更改此处。
对于所有想要走在前沿的用户,我们还添加了对Node.js v6的支持。
本地化对于移动应用程序非常重要,我想重点介绍来自RBORN的Dan Tamas的工作,他实现了本地化插件。请阅读这篇单独的博文以了解更多关于此插件的信息 - NativeScript中不同语言的i18n国际化支持。
Angular 这些天变化很大,问问我们的工程师就知道了:)。我们努力跟上任何变化,并在新的Angular版本公开发布后尽快更新我们的Angular SDK。
要测试最新的Angular版本,请按照Angular和NativeScript入门文章进行操作。
如果您错过了,我们将在9月份在波士顿举办有史以来的第一次开发者大会。赶紧注册吧,座位有限,我相信票价会让您惊喜。
请与您的Twitter粉丝分享此消息!并享受NativeScript开发的乐趣 - 我知道它很有趣!