快速获取 1.6 版本:
立即下载。随着 NativeScript 的不断发展,我们始终遵循几个简单的原则
- 使运行时尽可能快
- 利用现有生态系统中完成的出色工作 - iOS、Android、Windows、JavaScript/TypeScript 和 Angular
- 启用整个原生 UI 堆栈并保持 60fps 刷新率
- 记录所有内容!
在这些原则的指导下,最新版本在以下方面对框架进行了重大改进
- 性能
- UI
- 调试/热重载
- Angular 2.0
- 插件
在仔细了解我们今天发布的所有内容之前,我们有一个激动人心的消息要分享 - 我们刚刚开通了一个公开的 NativeScript Slack 频道!要加入讨论,请加入NativeScript Slack 频道。
现在,让我们仔细看看 NativeScript 1.6 中的新功能。
性能
性能改进是一个持续不断的过程。总有一些地方可以做得更好或更快。
在这个版本中,我们重点关注改进 Android 上的应用加载时间。我很高兴地宣布,我们成功地显著缩短了 Android 应用的加载时间。
此外,我们正在研究 V8 引擎中的一项“神奇”功能,该功能允许您将所有 JavaScript 代码直接加载到堆中。我们对此进行了详细记录 -
这是一个有趣的阅读。简而言之,一旦加载,应用程序生命周期就会跳过 JavaScript 模块的 JIT 编译。这意味着应用程序的后续加载周期会快得多。我们的目标是实现亚秒级的加载时间,并预计此额外的优化将在 1.7 版本中实现。
对于 iOS,我们专注于 JavaScript 和原生代码之间桥接的性能优化。在 1.6 版本中,我们使以下操作的性能提高了一倍
- 调用 Objective-C
- 调用具有基本参数(数字和指针)的方法
通过复制传递参数(如字符串)的方法获得了 1.5 倍的性能提升。
我们对 Javascript 层进行了额外的性能改进。首先,我们实现了延迟“require”逻辑以减少 JS 模块的加载时间。我们还更新了几个核心功能以在后台线程上执行。例如,所有 HTTP 请求现在都将使用后台线程。图像现在也在后台线程上解码。
最后,为了在 Android 上实现更多的图像优化,我们创建了一个
插件,它封装了来自 Facebook 的原生
Fresco 库。如果您应用中的列表包含大量图像,我们强烈建议您使用此插件。对于所有希望在处理图像时最大限度地提高内存效率的原生 Android 应用程序来说,它是事实上的标准库。
(我们也在考虑将此插件扩展到 iOS,但如果您具备相关知识并希望帮助其更快地实现,欢迎提交 PR!)
UI
NativeScript 1.6 中有两个主要的 UI 新增功能,我相信您一定会喜欢
- 支持基于百分比的布局
- 支持原生页面过渡
在 NativeScript 布局中支持百分比 (%) 值一直是
社区最需要的功能之一。我们花了些时间才将其完善,但我们终于实现了在您来自 Web 背景时感觉很自然的功能。构建能够适应不同分辨率和外形的流畅布局变得比以往任何时候都更容易。
您可以像预期的那样在 CSS 样式表或 XML 标记中直接使用百分比值。
接下来:
可配置的原生页面过渡。原生页面过渡一直存在于 NativeScript 中,但从未可配置。新的 JavaScript API 使您可以完全控制原生过渡。您可以使用特定于平台的过渡,如果内置的原生过渡不足,您还可以创建自定义过渡。内置过渡有
- curl(与 curlUp 相同)(仅限 iOS)
- curlUp(仅限 iOS)
- curlDown(仅限 iOS)
- explode(Android Lollipop 或更高版本)
- fade
- flip(与 flipRight 相同)
- flipRight
- flipLeft
- slide(与 slideLeft 相同)
- slideLeft
- slideRight
- slideTop
- slideBottom
阅读本文档文章中有关导航过渡的更多信息:
。
这些是主要的 UI 项目,但在跨平台抽象中还修复了 50 多个其他问题。如果您对具体内容感兴趣,请访问
Github 发布日志进行探索。
调试和热重载优化
我们改进了 NativeScript 的热重载功能(也称为 LiveSync),现在它在大型项目中以及涉及更改图像的场景中运行速度更快。
使用 LiveSync 调试时,现在始终显示 Console.log 语句!
Android 上的调试体验已得到显著改进。现在使用 Unix 套接字与 Chrome 调试工具通信,这应该可以带来更快、更可靠的调试体验。
同时,我们在本里程碑中修复了 CLI 中大约 50 个问题。我们现在支持最新的 XCode 7.2(
解决了 XCode 为所有 iOS 应用创建的 CocoaPods 的一些问题)。请参阅
单独的 CLI 发布说明以获取更多详细信息和亮点。
Angular 2.0
NativeScript 很快将完全支持使用 Angular 2 框架构建应用程序。
我们每周都会与 Angular 团队会面。我们一直在添加对 Angular 2 中最新功能和功能的几乎即时支持。我们的实现非常接近功能完整状态。
如果您有兴趣了解当前的 Beta 版本,请按照
NativeScript Angular github 存储库中的说明进行操作。Angular 支持是 NativeScript 的重中之重。我们非常高兴能够提供一种基于标准的方式来编写原生移动应用程序。使用 Angular 2.0 和 NativeScript,您可以充分利用 Angular 的强大功能来创建原生移动应用程序。您将能够重用您的 Angular 技能以及 Web 和原生移动应用程序之间很大一部分代码。随着 NativeScript 的发展,您甚至可以重用您的代码来创建桌面应用程序!
插件
插件是扩展 NativeScript 最简单、最强大的方法。问问
Brad Martin就知道了:)。在过去几周里,他构建并发布了
几个 NativeScript 插件。核心团队现在正在测试这些插件,完成后,我们将把它们全部放到
经过验证的 NativeScript 插件市场上。
事实上,我们在最近几周已经扩展了我们经过验证的插件。以下是列表中的最新条目
还有一系列不断增长的“未经验证”插件正在等待验证
对我来说,最棒的事情是看到社区如何共同努力开发这些插件。上面我只列出了 npmjs 上的插件所有者,但对于其中几个插件,我知道它是团队合作的结果。看到这样的事情,我们真的非常高兴!
如果您正在开发插件并希望将其发布到经过验证的市场,请
在此处提交。
最后但并非最不重要的是,另一个值得注意的新功能是,您现在可以在编写插件时使用应用程序 ID。这是某些大型原生库的要求,这些库需要将应用 ID 传递给其服务。Google Maps 和 Facebook SDK 就是很好的例子。在此处阅读有关此问题的更多信息
。
社区
我们的社区正在快速发展。2015 年最后几个月,使用 NativeScript 的开发人员数量翻了一番,并且在 2016 年势头仍在增强。
感谢您成为这一运动的一部分,并帮助使 NativeScript 成为跨平台原生应用开发的最佳解决方案。帮助我们宣传,并帮助更多开发人员体验 NativeScript 的乐趣。
如果您真的喜欢 NativeScript 并希望将您的社区参与提升到一个新的水平,请加入新的
NativeScript 社区 Slack 频道!加入其他志同道合的 NativeScript 爱好者,并与 NativeScript 核心团队成员一起交流。
接下来:NativeScript 1.7
我们最近更新了 NativeScript
路线图,其中包含我们计划在未来 3-6 个月内包含在 NativeScript 中的主要项目。当然,此列表可能会更改,但我们希望交付的最大项目是我们对 NativeScript 的 Windows 10 运行时的初始预览。
我们仍然专注于完善 iOS 和 Android 的优化,但与此同时,
人们对 Windows 10 支持的兴趣持续增长。我们已经在 NativeScript 中完成了大量关于 Windows 10 支持的预研工作,并且在 1.7 版本中,我们希望分享这些早期进展,以便邀请其他对 NativeScript 在 Windows 10 上运行感兴趣的人帮助发展这个开源项目。
我们很高兴能将此向前推进一步,并将 NativeScript 带到另一个平台!当然,这并不是 1.7 版本中发生的所有事情。您
可以访问 GitHub 以查看下一个版本中正在进行的其他工作。将会有一个新的蓝牙模块、更多经过验证的插件以及许多其他改进和完善。1.7 版本计划在 3 月底发布。
总结
如您所见,NativeScript 团队一直非常忙碌,以全速推动框架向前发展。我们希望您喜欢 NativeScript 1.6 版本,并且我们很高兴看到您使用此新版本开发的内容。
请在 Twitter 上分享此新闻。如果您对该版本有任何意见,请在下面的评论中告诉我们!