返回博客首页
← 所有文章

NativeScript 6.2:有史以来最暗黑的一次发布!

2019年11月5日 — 作者:Emil Tabakov

上周在办公室里真是惊悚的一周 - 所以我们发布了迄今为止最吓人的版本。这个版本充满了各种惊喜,几乎没有陷阱。

暗黑模式

暗黑模式是 iOS 世界中最大的话题之一。暗黑模式将应用程序的焦点放在界面内容区域,使其脱颖而出。

我们付出了很多努力,使您能够在应用程序中引入暗黑模式,而您只需要做很少的工作。

  • 主题已更新,最新版本开箱即用地支持暗黑模式。这意味着如果您正在使用主题来设置应用程序的样式 - 暗黑模式将免费提供给您。
  • 如果您发现此路径更合适,您还可以使用必要的扩展点来自己实现暗黑模式。
  • 您可以选择继承操作系统的暗黑模式设置,或在应用程序中实现自定义控件。
  • 大多数“Pro” NativeScript 组件(如日历、图表和数据表单)已经提供了暗黑模式的外观。其余部分将在不久的将来发布。

作用域 NPM 包

通过此版本,我们正在努力将所有 NativeScript NPM 包提供到单个 NPM 作用域下。6.2 将作为您熟悉的旧包发布,但也将发布一些新包。

  • @nativescript/core:这是 tns-core-modules 包的化身
  • @nativescript/angular:自然,这是 nativescript-angular 的等价物
  • @nativescript/theme:最新最好的主题将仅作为此包的一部分发布

旧包可用,并将与作用域包保持更新,因此此时您无需进行任何更改。但是,如果您想利用更短、更容易记住的导入路径,则可以从今天开始使用新的作用域包。

Kotlin 的扩展函数/属性支持

这是朝着使 Kotlin 成为 NativeScript 中一等公民迈出的又一步。假设您有一个用 Kotlin 编写的 ArrayList 的扩展函数,如下所示

fun ArrayList<String>.bubbleSort() { // 冒泡排序的实现 }

然后,在您的 NativeScript 应用程序中,您可以按预期调用此函数

let arrayList = new java.util.ArrayList();
arrayList.bubbleSort();

扩展属性也适用。

改进的 Pod 文件冲突解决

如果您在应用程序中使用了两个以上具有原生功能的插件 - 您很可能会遇到此问题。您的两个插件将依赖于不同的原生库,最终它们都可能依赖于同一个库,但版本不同。然后冲突就出现了!

您可以通过两种方式解决此问题

  1. 查找您使用的、没有冲突的插件版本。虽然这是理想的 - 但可能并非一直可行
  2. 当 1. 不起作用时 - 您可以利用我们正在引入到 nsconfig.json 中的新配置。当您放置"overridePods": true时,App_Resources/iOS/Podfile中声明的所有 pod 将覆盖插件内部对这些 pod 的要求,从而为您提供一种通用的方法来选择要使用的哪个依赖项。很不错!

markingMode: none 是推荐模式

在过去的几年里,我们收到了很多关于 Android 上(尤其是在 Angular 项目中)页面过渡缓慢、UI 冻结和动画迟缓的投诉。在大多数情况下,添加 markingMode:none 配置可以解决问题,这是由垃圾回收同步的遗留模式引起的。

我们的团队认为,如果您想要快速响应的应用程序,那么为您的项目使用 markingMode: none 是最佳选择。为了提高人们对这一点的认识并弃用 6.2 中的旧行为,如果您尚未这样做,您将收到切换到新选项的建议。

Playground 中的 React 和 Svelte 支持

我们是自己的社区最大的粉丝!我们喜欢人们用 NativeScript 做很棒的事情,并为 NativeScript 做很棒的事情。在过去的一年中,两位开发人员不知疲倦地工作,以提供 NativeScript 和两个前端框架之间的集成:React.js 和 Svelte.js。向JamieDavid为他们的努力致敬。

我们最近在 NativeScript Playground 中添加了 React NativeScript 和 Svelte Native 模板。这是开始使用这两种风格的最简单方法,我强烈建议您尝试一下。如果您有任何反馈,请务必将其留在React NativeScript存储库或Svelte Native存储库中。

贡献

您参加了 Hacktoberfest 吗?我希望您参加了。我们在本次发布中获得了许多贡献,这总是令人兴奋的。向这些人致以热烈的掌声。

Chaman37606pranjalv9rynop7wikdmilindsooryaycherniavskyim-absPeterStaev lex111the-AoG-guyctp-placeboharikrishnana2021KiranAkadasnike47pascualstromsnesWilcoBreedtelliotwaiteTheBinitGhimiremap7wuworkshopmudlabssakshamtaneja21 joshcomley jzgoda sidhyatikku romulowspp

 

 

接下来是什么?

在接下来的几周内,团队将发布基于 V8 的新改进的 iOS 运行时的 BETA 版本。在这一点上,我们预计新运行时将功能完整。它将带来一些性能提升,以及旧运行时提供的所有功能。请务必体验一下。我们还计划在今年年底发布另一个小版本。