返回博客首页
← 所有文章

回答 NativeScript Beta 网络研讨会问题

2015年4月1日 — 作者:Valio Stoychev

最近的 NativeScript 网络研讨会参加人数创下新高。因此,我们在研讨会期间也收到了创纪录的 1000 多个问题。现在,正如您所料,我们不可能在研讨会结束时的几分钟内回答 1000 多个问题。

因此,我们在研讨会结束后阅读了所有 1000 多个问题,并从中选择了一些问题在本博文中进行解答。在阅读完这些问题后,我相信其中许多问题对整个 NativeScript 社区都有益,而不仅仅是对在直播研讨会期间提出问题的个人有益。

在我们继续讨论问题之前,我知道许多人由于研讨会软件负载过高而无法参加。如果您是其中之一,您可以观看网络研讨会的录制版本此处

我将问题分成了几个类别,以便于阅读大量的问答。

    其他

    1. 网络研讨会是否会提供录制版本?
      是的,网络研讨会的录制版本可在此处获得此处
    2. NativeScript 将采用哪种许可证?
      NativeScript 框架是免费且开源的,并且根据Apache License 2.0 许可证授权。
    3. 您会分享 Groceries 应用吗?
      是的:https://github.com/tjvantoll/groceries/
    4. 路线图在哪里?
      NativeScript 路线图在此处,您还可以订阅NativeScript GitHub 代码库并关注我们目前正在处理的问题。
    5. NativeScript 针对的是哪个版本的 JavaScript/ECMAScript?5?6?其他? 
    6. 我们目前支持 ECMAScript 5。我们很快就会支持 ECMAScript 6。
    7. css 是否像在普通 html 中一样作用于 xml 元素?例如,<segmentedBar> 是否可以像典型的 html 元素一样应用 css?
      是的,我们支持内联 css。请在我们的文档中了解更多信息。
    8. 如果要应用一些逻辑将应用路由到不同的起始视图(例如,跳过回头客的登录),该如何操作?您可以在 app.js 文件中执行 JS 代码,并在其中设置所需的起始视图。您只需要设置应用的mainModule属性。阅读更多此处
    9. 您估计一个没有 TypeScript 经验的 C# 开发人员要在这个平台上快速上手有多难?
      TypeScript 的概念和语法与 C# 极其相似。这两种语言都是由 Anders Hejlsberg 创建的,并且非常易于使用。您可以在他们的网站TypeScript 手册上了解更多关于 TypeScript 的信息,或者只是查看NativeScript 源代码
    10. 我可以访问蓝牙吗?
      是的,所有原生 API 都已公开。我们将创建一篇博文展示如何使用它。
    11. 您的视图语言没有基于 XAML,而是另一种新语言,这是为什么?
      这是由于法律限制。XAML 是一种专有格式,已获得 Microsoft 的许可。尽管我们非常喜欢它,但从法律上讲,它不可能在 Microsoft 之外使用。
    12. 是否可以在原生应用中包含“webview”?
      是的,您可以使用 WebView,就像在任何原生应用中一样。请参阅我们的文档:使用NativeScript 中的 WebView
    13. 如果我已经有一个 IOS 项目,是否可以只在我的 iOS 项目中使用 NativeScript 来构建一些屏幕?
      不可以,目前不支持此功能。NativeScript 应该是应用程序的起点。如果对此功能有足够的需求,我们可以实现它;从技术上讲,这是可行的。
    14. 将 Ionic 应用移植到 NativeScript 会有多难?
      Ionic 应用 是 PhoneGap 应用,因此它们是用 JavaScript/CSS 和 HTML 构建的。您将能够重用应用程序资源、部分 CSS 和大部分 JavaScript 代码。如果您使用 Angular 或其他 MVC 框架,您将能够重用您的整个业务逻辑和数据模型。您需要重新创建视图,因为它们基于基于浏览器的 HTML。但无论如何,您都会希望这样做,以获得原生的用户体验。
    15. 是否有任何 Kendo UI 集成?如果 Kendo UI 框架内置就好了,但它似乎是一个全新的 JavaScript API。
      Kendo UI 框架是一个基于浏览器的 UI 框架,因此它只能在浏览器内运行,所以目前不支持。我们将在未来几个月为您提供相同的功能,敬请期待。
    16. 我可以按照自己的方式构建视图文件夹吗?我更希望有 views/xml views/js views/css。
      是的,您可以按照任何您想要的方式构建应用文件夹。对 XML/CSS/Js 视图的存储位置没有限制。您只需要将“.js”和“.xml”文件保存在一个文件夹中,因为它们是一个模块的一部分。
    17. AppBuilder 是否包含一些 NativeScript 示例应用?
      是的,在创建新项目时,您可以选择从示例应用程序开始。要查看更多示例应用程序,请访问我们的 GitHub代码库
    18. 在发布版本中,JavaScript 源代码是否已加密?如果是,使用了哪种加密标准?
      否。目前我们不提供对应用包中 JS 文件的加密,但我们正在与外部公司合作,他们可以启用对 JS 源代码的加密。
    19. 它是否支持less和 sass?
      是的。这是使用基于标准的 CSS 的好处;您可以使用所有现有的工具。
    20. 如果我在此创建了一个下载到许多人的应用,然后进行更改,更改是否会立即应用到所有人,或者他们是否需要重新下载新版本?
      您的场景可以通过 Telerik Platform 实现,我们正在开发一个解决方案,您可以使用它来管理移动应用的内容。如有任何疑问,请随时与我们联系。
    21. 是否可以避免 Apple App Store 并仅创建供内部使用的应用?
      是的,我们提供了一个作为 Telerik Platform 一部分的私有市场,称为AppManager
    22. 是否与使用 Microsoft Azure Notification Hub 发送的通知兼容?
      是的,只要这些通知与原生操作系统兼容,它们就会得到支持。
    23. 是否有任何预定义的主题……例如平面地铁……Kendo UI 主题?
      是的,您可以使用原生操作系统提供的所有主题。
    24. 对于 CLI 框架,当您更改文件时,是否必须显式重新运行模拟器才能查看更改?
      作为 Telerik Platform 的一部分,我们支持LiveSync,它允许您立即预览更改。开源版本的 CLI 不支持此功能。
    25. 它是否支持像 AppBuilder 中用于构建混合应用的云构建和自动更新?我不熟悉原生 android 模拟器,也不想在我的电脑上安装 java。
      是的,现在作为 Telerik Platform 的一部分得到支持。您无需在机器上安装任何内容;只需使用我们为您维护的云环境来构建应用程序即可。打开http://platform.telerik.com,您可以在一分钟内部署 NativeScript 应用。
    26. 你们会来英国吗?
      是的,我们在伦敦有每月聚会。您可以关注我们位于伦敦的开发者关系专家 Sebastian Witalec 的推特(@sebawita)以获取更多详细信息。
    27. NativeScript 是否支持应用内购买?
      是的,原生移动应用中可能实现的所有功能,在 NativeScript 中都可以实现。
    28. 是否可以进行图形动画?
      是的,但目前比较复杂。我们正在开发一个动画框架,以实现简单易用的开箱即用动画。敬请期待。
    29. 如果我不了解 Java 或 Objective C,是否可以使用 NativeScript 开发应用?
      是的。您只需要了解 JavaScript;其他的我们都会处理。请参阅我们在http://github.com/nativescript/sample-Tasks上的示例。
    30. 对于所有内容,即使是 iOS 或 Android 发布的全新功能,是否都会提供 0 天支持?您是如何实现这一点的——太棒了!
      是的!这是因为我们无需创建新的包装器或任何其他内容来支持新的 API。它们是一一对应的。
    31. NativeScript 目前是否足够成熟,可以将生产应用发布到 Appstore?
      我们刚刚发布了第一个公开测试版。我建议您等到 5 月份发布的 V1 版本。
    32. 路线图上是否有某种可视化设计器?
      是的。请查看Telerik Screen Builder
    33. 您之前的那种 PhoneGap 类产品会怎样?
      我们正在积极开发我们的 Cordova 工具;它不受 NativeScript 任何方式的影响。我们对 Telerik Platform 的承诺始终是支持 Web、混合和原生应用,所以我们只是在兑现我们的承诺。
    34. 我们可以将 NativeScript 与 Eclipse 集成吗?
      是的。使用我们的NativeScript CLI工具,您可以使用任何 IDE 来编写代码。
    35. 您是否支持 Android 支持库?
      是的。
    36. 您是否还提供某种支持材料设计(例如工具栏)的预 Lollipop 版本?
      是的 - 这是开箱即用的,因为我们只是使用普通的原生组件。

    NativeScript 如何工作?

    有关 NativeScript 工作原理的常规信息,请阅读 TJ van Toll 撰写的这篇优秀的博文

    1. 您是如何执行 Javascript 的?哪个引擎?
      我们在 Android 上使用 V8,在 iOS 上使用 JavaScriptCore。
    2. 每个平台的多少原生 UI 组件将公开给 NativeScript?
      整个原生平台 UI 层都已公开,您可以使用任何原生 UI 组件。
    3. 每个 UI 元素都编译成原生 UI 代码吗?或者应用内部是否存在任何 HTML 元素?
      没有 HTML 元素。NativeScript使用原生 UI 对象来呈现应用程序。
    4. 每个视图都有一个 css 文件,但我认为可以在所有视图中使用全局 css 文件?
      是的,您可以拥有全局 CSS 声明。在 app.css 文件中定义全局样式,它们将被应用。
    5. 应用程序是否在目标平台上的 JavaScript 中运行,或者代码是否被翻译成 Objective-C 或 Java 等原生语言?NativeScript 如何调用原生功能?它是否像 Titanium 一样具有代理对象?
      应用代码保持不变。NativeScript 不会对代码进行翻译或编译。JS 代码在运行时由 JavaScript 引擎执行。请阅读NativeScript 的工作原理

    6. 使用这种方法可以利用平台特定的 UI 控件吗?
      是的,您可以使用平台特定的代码和 UI。请参阅此 GitHub 问题以了解如何使用分辨率和平台特定的视图
    7. 这个平台是否能够支持除 Telerik 之外的其他平台的推送通知,例如 Pushwoosh?
      是的,您可以使用任何平台。

    丰富的 UI

    1. 是否有离线支持,以便稍后与后端同步?
      是的。作为 Telerik 平台的一部分,很快就会提供离线支持。
    2. UI 动画支持如何?我们能否使用 UIView 动画或 NSLayoutConstraint 动画?
      我们正在开发一个完整的动画框架,它将在底层使用这些原生动画。
    3. 它是否考虑了从右到左的语言?
      还没有,但这将在 v1 之后推出。
    4. 我们可以使用主页面并拥有子页面,并且可能为不同的 iOS 提供不同的子页面吗?
      是的。我们支持主页面的概念。您还可以为不同的平台以及不同的分辨率/设备方向创建不同的视图。请阅读此GitHub 问题以了解更多信息。
    5. someui.iphone.xml 或更通用的 someui.tablet.xml 如何处理?
      是的。请阅读此GitHub 问题以了解更多信息。
    6. 是否可以在 NativeScript 中列出所有可用的 Wi-Fi 网络?是否可以使用蓝牙信标?
      是的。您可以使用 NativeScript 中的任何原生 API。
    7. 是否有显示 PDF 的原生跨平台方法?
      我们没有提供这样的模块,但这是一个很好的模块想法。它在我们框架之上相对容易实现。您可以为每个平台获取一个原生 PDF 阅读器,以提供通用的 API 抽象。请查看此处了解如何创建您自己的模块并在 NativeScript 中使用它
    8. NativeScript 看起来很有前景。它确实解决了当今跨平台开发的许多痛点。您提到可以轻松使用原生库。这适用于任意库还是仅限于选定的库?
      是的,这适用于任意库。我们目前尚不支持 iOS 的静态库,但这很快就会推出。
    9. 要编写业务应用程序,我需要一个本地数据库。是否有可能在所有平台上使用相同的数据库?
      是的。Android 和 iOS 上都有 SQLite。我们也为 Windows 提供了 SQLite 的实现。这是付费工具和 Telerik 平台的一部分。
    10. 在使用设备特定代码时,是否可以仅将 JavaScript 文件名 .xml 扩展为文件名 .ios.js,以便 (3) 个文件对应 1:1 的每个 xml | JS | css?
      是的,这实际上正是它的工作原理。请查看NativeScript 源代码以了解如何实现这一点。
    11. 绑定引擎是否支持过滤器/数据转换器?
      是的。您可以绑定到一个函数,并在该函数内部实现任何您想要的逻辑。请阅读我们的NativeScript 中的数据绑定文章。
    12. 您可以嵌入原生组件/代码(例如 objc)吗?
      不能直接嵌入。但是您可以编写一个原生库并在项目中引用它。
    13. 您是否有关于如何使用您的后端服务的教程?
      是的。请查看文章使用 NativeScript 与后端服务。此外,如果您愿意,可以查看Tasks 示例它基于 Telerik 后端服务。
    14. 如果我想创建一个平台特定的视图,我是否必须复制整个标准视图,或者我可以替换部分内容?
      您可以替换整个视图,也可以创建自定义组件并在其中实现平台特定的逻辑。
    15. 数据绑定是内置的吗,还是依赖于类似 knockout.js 的东西?
      我们有一个内置的数据绑定,但如果您愿意,也可以使用自定义库。
    16. 你们如何在 NativeScript 或 Telerik 平台中管理 i18n?
      这还不是发布的功能。它将在 v1 之后推出。
    17. 您能否详细说明绑定机制的表现力?例如,您可以指定当前指定的 bindingContext 以外的其他对象吗?您可以使用数据模板格式化字符串吗?
      请参阅文章使用 NativeScript 进行数据绑定
    18. 这是否允许我们轻松地将 Sharepoint 和 Oracle EBS 后端用作我们移动应用程序的数据源?
      是的,您可以使用任何您选择的后台。NativeScript 没有这方面的限制。

    性能

    1. 您是否对 NativeScript 和原生应用程序进行了任何性能比较?
      是的,我们在内部进行了性能测试。我们很快就会发布它们。真实的性能指标是将应用程序安装到您的设备上并开始使用它。请从应用商店下载我们的示例应用程序,并告诉我们您的想法。在 Apple 和 Google 商店中搜索 NativeScript 以找到它们。
    2. 您是否有已经部署到应用商店的真实应用程序可供测试?
      是的,请在 Apple 或 Google 应用商店中搜索“NativeScript”。
    3. 开源 NativeScript 和 Telerik 平台之间在功能上是否存在差异,除了开发者体验之外?
      没有,应用程序框架完全相同。使用 Telerik 平台,我们提供许多工具、服务和使用相同应用程序框架构建的新 UI 组件。
    4. 您能否介绍一下从使用 AppBuilder 的混合应用程序迁移到 NativeScript 的过程?
      是的,一篇博文即将发布。
    5. 推荐使用哪些开发技能来开始使用 NativeScript?
      您需要了解 JavaScript 和 CSS。首先阅读NativeScript 入门文章

    Visual Studio

    1. 您预计大多数人将如何使用它?我们正在考虑通过 Visual Studio 使用它。
      您可以选择几种方案。如果您选择开源免费工具,则可以使用 CLI 工具构建和部署项目,并使用任何 IDE 编辑代码。在这种情况下,您需要维护本地安装的原生 SDK。如果您选择 Telerik 平台,则可以从我们的云环境中获益,其中所有构建基础设施都由我们维护。同样,您可以将任何 IDE 与 CLI 工具结合使用,但您也可以使用我们的生产力工具,这些工具随 AppBuilder 和我们的 Visual Studio 集成一起提供。
    2. 对于使用 Visual Studio 与 AppBuilder 的用户,扩展程序是否会在发布时或现在可用?
      是的,您可以立即开始使用 Visual Studio 与 NativeScript。请阅读此文章:http://www.telerik.com/appbuilder/visual-studio-extension
    3. Visual Studio 扩展程序是免费的吗,还是与 Telerik 平台的月费绑定?
      您可以毫无问题地将NativeScript CLI工具与 Visual Studio 结合使用。但是,如果您想启用云构建和 Telerik 平台集成,则需要在 Telerik 平台中拥有一个帐户并订阅我们的计划之一。
    4. Telerik Web 平台 IDE 是否有任何智能感知?
      是的。我们作为 Telerik 平台的一部分,为 NativeScript API 提供了完整的智能感知。
    5. 你们如何调试代码,例如,如果我想单步执行代码并找出特定行中每个变量的值?
      我们为 NativeScript 提供了调试支持。我们使用 Chrome 调试工具来提供完整的调试体验。在此调试 NativeScript 文章中了解更多信息。

    操作系统支持

    1. 它是否适用于手表、物联网和可穿戴设备?
      是的,它适用于手表。使用第三方原生 SDK,您可以访问可穿戴设备 SDK,并可以使用其 API 编写代码。对 Apple Watch 的支持也很快就会推出——我们有内部原型正在运行。NativeScript 的设计考虑到了物联网;通过拥有完整的原生 API 访问权限,您可以在各种设备上运行 NativeScript 并使用其功能。
    2. 是否计划支持 Sailfish (jolla.com)?
      目前还没有,但我们密切关注此项目,如果需求增加,我们可以启用它。
    3. BlackBerry 是否也受支持?
      否,目前不支持 BlackBerry 手机。
    4. CLI 是否为原生平台(iOS、Android 和 Windows)提供模拟器?
      是的,我们已连接到原生基础架构以进行仿真和部署,因此您可以使用任何原生模拟器,而不仅仅是默认模拟器。由于此原因,也支持 Genymotion。
    5. 您必须使用 Telerik 后端服务,还是可以使用 WebAPI 和/或 REST 获取数据?
      使用 Telerik 后端服务是可选的,仅适用于 Telerik 平台订阅者。NativeScript 应用程序框架为您提供了自己的网络模块,您可以将其与任何其他 Web 服务一起使用。您还可以将其他 BaaS 系统的 JavaScript SDK 与 NativeScript 一起使用,因此您绝不限于 Telerik 平台。您可以在NativeScript 网络功能文章中了解更多信息。
    6. 它是否支持低于 iOS 8.1 的 iOS 版本?听起来像是 8.1 及更高版本。
      是的,我们支持 iOS7+。
    7. 它在移动设备之外的设备上的工作情况如何?是否有可扩展到 PC(Windows、Mac 等)的解决方案?
      目前还没有。我们的重点是首先启用移动设备,然后根据反馈,我们可以扩展以支持桌面应用程序。
    8. NativeScript 最终会取代 AppBuilder WebViewer 实现吗?换句话说,Telerik 是否计划停止支持 AppBuilder 的 WebViewer 实现?
      我们不打算停止在 AppBuilder 中开发 WebViewer(Cordova/PhoneGap)功能。在许多情况下,NativeScript 和 PhoneGap 相互补充。
    9. 您计划如何跟上 Apple/Google 的 API 发布?发布新 API 时,您会支持它们吗,还是会有很长的延迟?
      我们为 Google 和 Apple 发布的新 API 提供 0 天支持。我们可以做到这一点,因为 NativeScript 的架构不需要在原生 API 周围添加任何额外的手动代理或包装器。一旦我们拥有新的原生平台 API,我们就可以立即发布包含新 API 的构建。
    10. 您是否计划创建一个设计器,以便使用自定义 XML 布局轻松创建 UI?
      是的,我们已经在开发这个功能了。了解一下Telerik Screen Builder
    11. 关于可用于样式设置的“类似 CSS”规则的一个快速问题。NativeScript CSS 规则涵盖了哪些标准 CSS 规则?例如,大多数正常的 CSS 规则是否都包含在“NativeScript CSS 规则”中?(顺便说一句,为我们创建一个类似 CSS 的语言来进行样式设置,做得很好!)
      它不是类似 CSS 的,而是我们支持的基于标准的 CSS 语法。唯一的区别在于,在浏览器中,实现了更多 CSS 定义,仅此而已。请访问我们的NativeScript CSS 样式指南以了解更多信息。
    12. 我们可以使用第三方原生库,还是只能使用 JavaScript 库/HTML 控件?
      是的,您可以使用第三方原生库(Java、ObjC)。这是 NativeScript 功能的重要组成部分。您可以在我们的第三方在 NativeScript 文章中支持了解更多信息。

    13. 应用程序是否有额外的负载?Xamarin 的一个很大的缺点是,与原生应用程序相比,应用程序的体积相当大——有时会大 10-20 MB,因为它必须嵌入 Mono 运行时/基类库。
      与 Xamarin 相比,我们的负载要小得多。对于 iOS(32 位和 64 位),运行时大小为 4-5 MB。Android 目前约为 8 MB,但我们也在努力使其更小。

    与其他 JS 框架的兼容性

    1. 如何与 AngularJS 一起使用?
      当前的 AngularJS 正式版本没有提供在浏览器 DOM 外运行的灵活性。但是,这种情况在 Angular 2.0 中正在发生变化,我们也正在朝这个方向努力。敬请期待!
    2. 所有平台上是否有共享的 XMLHttpRequest 等效项?
      是的。请查看我们代码库中的实现。这应该使您能够使用大多数 JavaScript SDK 来访问除 Telerik 之外的后端服务。
    3. 不依赖于 DOM 的 JS 库的示例是什么?
      有很多。您可以在此处找到许多:https://www2.npmjs.net.cn。例如,查看MomentJS

    价格、许可证、可用性

    1. 使用 AppBuilder 和 Telerik Platform 的成本是多少?
      您可以免费试用我们的工具 30 天,然后价格从每月 39 美元起。请在此处查看完整的价格信息:https://www.telerik.com/purchase/platform
    2. 开箱即用地支持 Telerik Analytics 吗?
      是的,作为 Telerik Platform 的一部分,您将能够使用我们的分析工具。
    3. 我的 DevCraft™ Complete 订阅中是否包含 NativeScript?
      目前 NativeScript 尚未包含在内,但我们正在考虑将其捆绑到 DevCraft 套件中的最佳方式,敬请期待。
    4. 可以将 Telerik 后端服务与 NativeScript 一起使用吗?
      是的。您可以查看此示例 NativeScript 应用程序它使用 Telerik 后端服务进行用户身份验证和云存储。
    5. 除了 Visual Studio 扩展之外,Telerik Platform 还能提供哪些功能?
      还有很多。正如我们提到的,您可以使用 Visual Studio 作为 IDE 来构建 NativeScript 应用程序。作为 Telerik Platform 的一部分,您可以获得以下移动服务,具体取决于您购买的套餐
      1. 应用内客户端组件和构建块
        1. Telerik 原生 UI 控件
        2. 数据可视化组件
        3. 离线数据存储和同步
        4. 应用内反馈
        5. 分析
        6. 用户身份验证
        7. 崩溃报告
      2. 云后端服务
        1. 与现有数据库集成
        2. 云数据存储
        3. 云文件存储
        4. 用户身份验证
        5. 推送通知
        6. 电子邮件分发
      3. 公司应用商店分发      
      4. 应用程序原型设计
    6. 只要应用程序存在于应用商店中,我是否需要永久支付月费,还是只需在开发期间支付?
      如果您使用 Telerik Platform,则仅在开发期间支付月费。如果您仅使用 NativeScript,不使用 Telerik Platform 中的工具,则 NativeScript 完全免费。
    7. 那么,作为 Telerik Platform 的订阅者,我现在可以访问它吗?
      是的。打开http://platform.telerik.com 并立即开始开发。

    测试

    1. 是否有推荐的 NativeScript GUI 自动化工具和方法?
      我们在内部使用 Appium.io,但任何适用于原生应用程序的测试工具都应该适用于 NativeScript。