返回博客主页
← 所有帖子

宣布 NativeScript 6.0 - 全面 Webpack,无缝应用程序更新,新的核心主题以及更多 🎺

2019 年 7 月 17 日 - 作者:Emil Tabakov

6.0 现已正式发布!这是框架的一个巨大里程碑,发布背后的共同主题是“生产力”。在过去的几个月中,我们一直在开发几个功能,旨在从多个方面提高开发人员的生产力。

  • 使用 NativeScript AppSync 更快地交付补丁
  • NativeScript 核心主题现在开箱即用,适用于所有 NativeScript 组件
  • 新的改进的 TabView,它可以在没有自定义开发的情况下实现常见场景
  • Webpack 现在是开发体验的驱动程序,并且 HMR 默认启用
我们还将提供与 NativeScript 依赖项的最新版本兼容性

  • AndroidX 支持解锁来自 Android 生态系统的一些酷炫功能
  • NativeScript 还支持 Angular 8
有很多内容要介绍,所以让我们开始吧。
提示:在继续之前,请务必 注册我们的发布网络研讨会,该研讨会将于明天举行 - 您将看到所有这些操作以及更多酷炫的东西。

NativeScript AppSync

快速交付的能力是当今软件开发中的一个关键优势。交付一个今天会损失金钱而不是下周的修复程序,可能会对你有所帮助。在移动开发中,实现这一点可能很困难,因为许多因素不受你控制,例如你的应用程序何时会在商店中获得批准,或者你的用户何时会决定更新应用程序。

为了解决这个问题,今天我们推出了一项名为“NativeScript AppSync”的新(测试版)服务,它使你能够立即交付应用程序的新版本,并在需要时强制你的用户使用最新版本。我们很高兴能够提供这项服务,因为这是上一届 NativeScript 社区调查中排名第一的请求的服务集成。

如果你渴望试用它 - 该服务已经可以使用,你可以免费试用。我们已经准备好了 详细说明,说明如何开始使用这项新服务。你还可以看看这个酷炫的演示


免责声明:这项服务处于测试阶段,因此请自行承担风险使用。它按“现状”提供,Progress Software 或任何其他贡献者不对使用 NativeScript AppSync 造成的任何损害承担任何责任。

核心主题 v2

“我们想构建丑陋的应用程序!”,没有人会这么说。我们都希望构建美观且令人愉悦的应用程序,并且理想情况下 - 快速构建。NativeScript 核心主题通过提供用于构建一致且美观的用户界面的通用 UI 基础设施来提供帮助。借助主题的下一个版本,我们正在做出一些重要的改进。

深色主题

借助 v2,我们正在引入一个功能齐全的深色主题,它附带了浅色主题的所有可能的皮肤。深色主题的用户界面越来越受欢迎。在 iOS 13 中将有一个深色模式,除非你想让你的应用程序看起来真的很奇怪 - 你将需要一种方法来快速调整这种变化。现在这将只是一个设置问题。看看这个带有真正令人毛骨悚然皮肤的深色主题
dark-theme-preview


Kendo 主题支持和代码共享

越来越多的团队和公司选择节省开发周期并 构建一个通用的代码库,用于他们的移动和 Web 应用程序。如果你正在使用 Kendo 组件 用于你的 Web 应用程序(你真的应该使用),你现在可以在 NativeScript 中重用你的 Kendo 主题。或者你可以使用 Kendo 主题构建器 为你的 NativeScript 应用程序构建一个新主题。期待在未来几周内在这个博客上看到有关其工作原理的更多信息。


即插即用

我最喜欢的改进 - NativeScript 核心主题现在完全可以即插即用。你不再需要手动将类设置为你的组件 - 只需安装主题,所有标准组件都会变得更漂亮。当然,你无需担心你现有的应用程序 - 如果你使用旧方法并且已经设置了大量 css 类,那就没问题 - 它们仍然会按预期运行,你可以决定何时摆脱它们。
    <!-- Before -->
    <Button class="btn" text="Button"></Button>
    <!-- After -->
    <Button text="Button"></Button>

材料设计

Kendo 主题构建器 使你能够基于 Material 规范构建一个皮肤。这真的很酷,并且是我们提供一个用于使用 Material Design 进行开发的可靠故事的旅程的第一步。

更新主题就像运行一样简单
    tns plugin update nativescript-theme-core

所有这些都可以在 主题存储库 中的演示应用程序中进行测试。或者只需观看下一个视频


TabView

TabView 在过去的几个月里经历了彻底的改造。发生了无数变化,但最重要的是 - 它们都不是重大更改。如果你在 6.0 之前使用 TabView - 它将继续按原样工作。但是,我们花费了很多时间来完善语法,并允许 {N} 开发人员在围绕 TabView 构建用户体验时拥有更多定制选项和灵活性。

TabView 的每个组件现在都可以进行样式设置。字体图标也受支持。真正酷的是你现在可以轻松地拥有多个 TabView 组件,这些组件是嵌套的 - 就像在同一个页面上拥有选项卡和底部导航一样


你可以在 游乐场 中玩上面的演示。
这些新功能仍处于测试阶段,我们将继续努力改进它们。与此同时,我们很乐意听取你的反馈。你可以在 GitHub 上的特殊跟踪问题 中跟踪该组件的当前状态及其未来计划。


字体图标支持

字体图标是 Web 开发人员多年来使用的一项很棒的技术。对于 NativeScript 中的移动开发来说,这也是一项很棒的技术,可以让你免于处理资源图像、不同大小、维护资产等等。

但是,NativeScript 中对字体图标的支持在一些特殊位置(如 TabView、ActionBar 或 Image 组件)有限。好消息是这种情况不再存在!你现在也可以在这些地方使用字体图标,并在不处理原生平台的怪癖的情况下构建一些出色的视觉效果。

这是一个用一些图标装饰的 ActionBar 的很好的例子
action bar demo

它的源代码很简单,如下所示:
    <ActionBar class="action-bar">
        <ActionBar.actionItems>
            <ActionItem icon="font://&#xEE72;" class="fa font-size" style="font-size: 30" tap="navigate"/>
            <ActionItem icon="font://&#xECCD;" class="fa font-size" style="font-size: 20; color: red" tap="navigate"/>
            <ActionItem icon="font://&#xEC83;" class="fa font-size" style="font-size: 30" tap="navigate"/>
            <ActionItem text="&" /> 
            <ActionItem icon="font://&#xEC6B;" class="fa font-size" style="font-size: 30; color: #a4c639" tap="navigate"/>
        </ActionBar.actionItems>
    </ActionBar>


AndroidX 支持

AndroidX 是对原始 Android 支持库的一项重大改进。它提供向后兼容性,并且在未来,它将是进入 Android 生态系统的未来改进的来源。

提供对 AndroidX 的支持使 NativeScript 开发人员能够从这些最新开发中受益,例如 Material Design 组件。如果你的应用程序或插件在 NativeScript 6.0 之前使用支持库,你现在应该 升级到 AndroidX


捆绑工作流程

NativeScript CLI 以前支持两种构建应用程序的不同方法

  • 捆绑工作流程,它依赖于 webpack 将源代码捆绑到几个输出文件;
  • 传统工作流程,它复制源代码目录的全部内容。
从 NativeScript 6.0 开始,NativeScript CLI 将支持一种用于构建应用程序的统一方法 - 捆绑工作流程。传统工作流程不再可用。

热模块替换 (HMR) 也默认启用。你可以通过向执行的命令提供 `--no-hmr` 标志来禁用它。

你将在即将发布到 NativeScript 博客的专门文章中找到有关捆绑工作流程的更多详细信息!


其他

还有许多其他令人兴奋的改进,我们无法在这里列出所有改进。但是,一些值得一提的改进
  • 日历 UI 组件中的 CalendarEvent 现在可以扩展,以便更容易地跟踪项目,例如
  • 类似地,Autocomplete 组件中的 TokenModel 可以扩展,你现在可以为你的模型添加 id,例如
  • 放弃对 Node.js < 8 的支持,弃用对 Node.js < 10 的支持,并添加对 Node.js 12 的官方支持
  • V8 和 WebKit 已更新至最新稳定版本
  • 最后但并非最不重要的是,对动画高度和宽度属性的支持justindujardin 实现。一项了不起的工作,该工作已被社区使用 - 查看 Alex Ziskind 为此功能提供的这个很棒的演示


...说到贡献...


贡献者

像往常一样,如果没有我们社区的帮助,这个版本就不会如此出色。感谢所有为本次发布做出贡献的人

lochstarMCurran16msaelicesycherniavskyiedusperonim-absNathanaelADarklecodepotatooluwaseyeSirMaxxxtralvesviragumathe5johannbraunlonerzzzshiv19flore2003m-abseasadevmudlabsrynop


如果你想成为这份名单中的下一个,我们甚至会为几个功能提供赏金:

更新

要更新到 NativeScript 6.0,步骤非常简单

1. `npm i -g nativescript@latest`
2. `tns migrate`
3. 完成!

`tns migrate` 命令是新命令,它将负责更新你所有的 NativeScript 包。此外,由于存在重大更改 - 此命令将更新一些需要更新版本的插件,这些插件符合框架的最新要求。

我们刚刚发布了一篇专门介绍 如何将你的应用程序迁移到 6.0 的博客文章。这是一篇必读文章。

此外,如果你想亲眼看看所有这些 - 你应该注册参加 发布网络研讨会。只剩下一天了!


下一步是什么?

在你阅读这篇博客文章时,我们已经在开发 NativeScript 的下一个版本。一些令人兴奋的新内容值得期待:

  • 与最新版本的 iOS、XCode 和 macOS 兼容
  • @nativescript 组织中的作用域 NPM 包
  • Material Design 组件
我正在赶快更新我的应用到 6.0 版本,因为它真的太棒了!