我们非常激动地宣布 NativeScript 3.1 版本 现已正式发布。在过去的六周里,我们一直忙于充分利用 3.0 版本中引入的所有重要更改,并继续提供新的和有价值的功能。此新版本不仅为框架带来了更高的稳定性,还添加了一些基本缺失的部分,使 NativeScript 达到新的成熟度和可用性水平。
让我们看看亮点!
3.1 版本为 Chrome DevTools 工具库添加了另一个功能 - 元素选项卡。您现在可以 启动调试器 并检查以及修改 NativeScript 应用程序的当前视图树。
这是一个备受期待的功能,我们相信它将极大地改善用户的整个 UI 相关开发流程,并更容易理解核心模块的 UI 抽象。最初,此功能将适用于 Android 平台,并在以后的版本(很可能在 3.2 中)中登陆 iOS。
在应用程序启动时间优化方面,Webpack 是我们工具集中最有价值的工具之一。我们的 nativescript-dev-webpack 插件的 0.7.1 版本支持从任意 bundle 生成 V8 堆快照。
快照生成器在捆绑步骤结束时发挥作用。它在空 JavaScript 上下文中加载并执行单个脚本,并在执行后生成 V8 堆的序列化版本。Android 运行时 能够将序列化堆 直接注入到应用程序启动时的 JavaScript 上下文中。这避免了在运行时获取、解析和执行文件 - 从而显着减少了应用程序的启动时间。
在一个全新的 Angular 应用程序的上下文中,我们的测量结果表明,对最大 bundle 进行快照处理可将应用程序的启动时间提高 10-50%,具体取决于设备。在快照 bundle 中添加更多代码可以获得更好的效果。默认情况下,快照生成处于禁用状态。要启用它,请将 --snapshot
标志传递给 Android 捆绑命令。目前,此功能仅限于 macOS 和 Linux 平台。想要了解更多信息?阅读这篇由我们的工程师 Ivan Buhov 撰写的关于 Android 快照的 深入探讨文章。
自框架早期以来,原生性能一直是 NativeScript 愿景的关键支柱之一。因此,我们一直在分析、优化和高级技术上投入大量开发时间,以帮助我们实现最大性能的预期目标。
了解应用程序的性能需要全面了解 C++、Objective-C/Java 和 JavaScript 层如何在系统堆栈中混合在一起。我们在内部开发了一种方法来启用某些关键方法的性能跟踪,并使用它们来分析和微调我们自己开发的应用程序。我们认为,如果某些东西有助于我们完成工作,那么它也可能对社区有益。
因此,我们很高兴将这些内部工具公开给公众。从这个版本开始,我们为用户提供了一种方法来启用 {N} 性能分析跟踪,用于 Android(以及 iOS 运行时的 @next 版本,用于 iOS)。添加...
{
"profiling": "timeline"
}
...到您的 app/package.json
中将启用运行时方法(例如启动时间、资源提取和 require
调用花费的时间)的控制台日志记录。与其他输出混合时,这些控制台日志很难阅读和分析,因此我们还添加了一个工具来从中创建交互式网页。要使用它,请运行
npm i -g timeline-view
tns run android | timeline-view
完成应用程序交互后,点击 ctrl + C 停止收集信息。timeline-view
工具将生成收集信息的 html 表示形式,您可以在浏览器中检查它。
以下是一些我们性能分析实验的令人兴奋的结果
Jen Looper 的 Practice Buddy
Nick Iliev 的 COSMOS Databank
Alex Ziskind 的 looptidoo
底线是,使用此工具来发现可能需要优化的性能关键区域、利用 WebPack 和为 Android 应用本地快照可以对应用程序的加载时间产生重大影响。一篇详细介绍我们性能分析结果的博文即将发布,敬请期待!
在 CLI 方面,我们专注于完善和修复错误。一些值得一提的问题
emulate
命令现已完全移除。它之前在 3.0 中已弃用,这是我们简化和简化 CLI 用法的努力中的又一步;一些不在上述部分中的值得一提的内容
我们真的希望您会发现新的 3.1 版本很有价值!请试一试,并与我们分享您的反馈。我们非常重视社区的意见,因为归根结底,采用才是最重要的,特别是对于像 NativeScript 这样的开源项目。