NativeScript开源涉及什么?
#javascript #开源 #nativescript

作为一个幸运的人,他很幸运地享受了数年的Nativescript开放源代码,并且是其技术指导委员会(TSC)的积极贡献成员,我觉得我有责任分享实际涉及的内容,因为该技术纯粹是为了利益而存在整个科技界。

如果您想参与其中,TSC很高兴与您交谈。随时发表评论或在Discord上连接。如果您以前从未听说过NativeScript,您可能会发现this presentation来自OpenJS World 2022的乐趣和信息。

NISTICERCRIPT的ABC

Nativecript开源可以减少到三个主要方面, a b c

a。平台运行时间

嵌入式v8发动机为各种平台构建。 V8是一种高性能的JavaScript和WebAssembly引擎,用C ++编写,由具有自然目标平台API功能的NativeScript TSC丰富。这是Chrome和Node中完全相同的引擎。

包装并分布在NPM上:

  • @nativecript/android
  • @nativecript/ios

b。便利

可选软件包,代表一种(许多)使用运行时间的方法:

  • @nativecript/core(javascript库)
  • nativecript(简称为“ ns”:节点命令行接口,又称CLI)
  • 风味整合(角,vue,react,svelte,solid)
  • 项目模板
  • 插件

c。文档

清楚而勤奋地记录所有内容。这也是一种方便(例如B),但文档是它在任何技术空间中都有自己的动物,因此它应该得到自己的类别。

NativeScript的目的是“不创造任何新事物”

NativeScript的基本租户之一是,它本质上是“不创造任何新事物”。这通常被误解了。

由于NativeScript赋予平台开发“ AS-IS”,因此实际上并没有创建任何新的东西。它只是为您提供JavaScript中的平台。

在您对Nativecript所做的所有事情中,都暗示了这个简单的前提,这是极端多功能性和力量的来源。 “更少”的咒语在NativeScript所做的一切中都普遍存在。

真的需要维护什么吗?

也许最令人惊讶的是 a 需要要维护, 从技术上讲 ,对于技术来说,简单地存在。然而,即使是维护的频率或专心也可以在某种程度上进行辩论,因为保持运行时间更多地是关于随时随地与JavaScript标准一起演变。客观地说出NativeScript Runtimes永远无法维护并可能在几年内运行(具体取决于您需要或期望的JavaScript语言功能级别)。

历史上已经是这种情况。可以(并且已经)以多种方式实施NativeScript运行时。实际上,它最初是在iOS上使用JavaScriptCore实施的,并且在应用程序中仍在使用。它在NPM上以 @nativecript/ios@JSC出版。这没有在4年以上维持,但它仍然可以从NativeScript 5到8.3。在过去的四年中,我们有几个特别的要求,可以在这里/在这里添加东西,以帮助我们很乐意提供帮助,但我们不积极考虑它也不需要。

在2019年底左右,决定仅关注V8,因为运行时实现将是“维护”的最佳选择而不是JavascriptCore实现。

“便利”是什么意思?

便利性是不一定需要的东西。 NativeScript没有核心,CLI或任何插件。

核心,CLI和插件( b )纯粹是便利的,您可以以通常预期的JavaScript生态系统方式使用Runtimes( a )。

从根本上讲, a nativescript。

TSC成员Eduardo Speroni在2022年在OpenJS World上对此进行了演讲,他在不用 @nativecript/Core的情况下讨论了使用NativeScript,实际上只使用Runtime来进行纯平台开发:https://www.youtube.com/watch?v=iweVLGNzx1A

便利是社区坠入爱河或讨厌您的胆量的地方

我将是第一个告诉你我与NativeScript之间的爱/仇恨关系。我喜欢它的本质,我不喜欢它。

如果有任何“新” nativecript创建的东西,这是核心提供的。

我多年来(包括我的)围绕围绕声称的“便利”( b )的大多数咆哮声围绕着Nativescript围绕。 NativeScript Core(历史上tns-core-modules和现在简称@nativescript/core)是如何与Runtimes合作的一种解释,并且具有丰富多彩的存在。

便利通常是开发人员体验(DX)的领域。对于您对任何开源的每一个投诉,都有一个正式的过程来提供帮助,或者只是与合适的人讨论的问题。 NativeScript现在有一个标准过程来通过RFC(请求评论)进行更改,这是一个漫长的社区投诉的示例,我遵循与任何人都可以帮助确保其适当解决的相同过程:

维护NativeScript核心

维护NativeScript core就像维护任何打字稿库一样。特别是,它的维护主要围绕着:

  • 打字稿/JavaScript Evolution
  • 平台运行时( a )nativescript的实现
  • 捆绑者,例如webpack
  • 开玩笑的单位测试和一些E2E自动测试

维护TypeScript/JavaScript Evolution非常容易坦率地说,这要归功于Nx,它为各种配置设置提供了有用的迁移,以减轻大量手动维护。 Typescript使其轻松而有力的重构,因此在这个部门很高兴。

平台运行时实现非常好,我们的团队当然知道如何专业地与IT合作以获得理想的结果。但是, @nativecript/core是未来3 - 5年中最有趣的事情可能发生的地方。有很多方法可以在NativeScript runtimes( a )提供的范围内做核心正在做的事情。

当前使用WebPack V5的捆绑包现在比以往任何时候都更容易,这要归功于TSC贡献成员Igor Randjelovic。他开创了一个绝对出色的Webpack V5设置,为所有Nativescript设置,这在历史上一直是一个巨大的痛苦点。它将用于简化围绕NativeScript多年的捆绑方法。

NativeScript核心也是许多历史“跨平台”消息传递来自的地方。 “跨平台”的含义通常意味着人们对如何从单一的角度处理许多平台的普遍期望。核心通过提供代表所有常见iOS和Android视图构建大多数应用程序所需的奇异观点来实现这一目标,同时还提供了枚举的实用程序。这也是与其他跨平台方法进行许多直接比较的地方。

在组织内的所有本质标题软件包中发布更新,以一致且有效的方式通过任何活动的TSC成员执行或通过GitHub Action Workfrows自动执行更新:

npx nx run core:build
cd dist/packages/core
npm publish

保持风味整合?

这是一个美味的,特别是在2022年的不和谐中出现了许多生动的讨论。

我们正在谈论彩色JavaScript生态系统,其中AngularQwikReactSolidSolidSvelteVueVue等人占主导地位。

风味整合通常是由实际的业务需求和社区参与驱动的。很简单,如果您是JavaScript框架供应商,并且想使用NativeScript实现,请询问,如果不直接参与,我们将帮助提供指针。参见@nativescript-community/solidjs作为example

简而言之,更像圆顶的nimentscript核心变成,更简单的风味整合变得更简单,可能完全消除了维护点。

Core的DOM Escapades类似于服务器端的渲染,从某种意义上说,旨在在节点中提供DOM的几种SSR解决方案(例如domino),有助于简化在各种条件下更轻松地渲染服务器端的能力。

从历史上看,NativeScript核心自然而然地分歧为自己的创新道路,目前,TSC积极参与配对,以使其与Javascript API标准保持一致。特别是2023年的目标是与WinterCG目标保持一致。

与Core一样,任何活动的TSC成员都可以执行任何风味集成更新,也可以通过GitHub Action工作流程以一致,有效的方式自动化。对于角:

npx nx run angular:build
cd dist/packages/angular
npm publish

项目模板

我们维护一些有用的项目模板作为方便起见,可以通过Nativescript CLI调用,如下所示:

ns create myCoolApp --angular // or --ng for short
ns create myCoolApp --vue
ns create myCoolApp --vue --ts // for vue with typescript
ns create myCoolApp --react
ns create myCoolApp --js
ns create myCoolApp --svelte

通过引入NX来管理它们也非常简化了这种维护:https://github.com/NativeScript/nativescript-app-templates

这些易于维护。 json版本颠簸和一致的tsconfig设置更新。

插件

从历史上看,至少在JavaScript跨平台空间中,插件经常提供到平台功能或SDK的下降,通常必须由平台工程师实现,然后将其用于JavaScript Project中的图层。<<<<<<<<<<<<<<<<<<< /p>

NativeScript在插件中也是如此,但是由于它为您提供了JavaScript中的平台,因此您可以自己创建插件而无需输入Xcode或Android Studio的美术,更高...对吗?

是。实际上,我本人是一个很好的例子。这是我在NativeScript中实施的Ionic Portals Android SDK,没有编写Java,Kotlin或开放Android Studio的行:

这是我在Nativecript中实现的Ionic Portals iOS SDK,而无需踩到Xcode:

我通过使用NativeScript成为更好的平台工程师。

插件始终是软件中的旋转讨论,尤其是在前端实现周围。

对我个人而言,我根据专业客户需要创建插件。

维护插件是通过plugin workspaces高效的,该插件通过工具工具管理为自动迁移的TSC提供了动力。

关于插件的NativeScript的隐藏好处

  1. 安装插件
  2. 发现它解决了90%的案件
  3. 如何处理其他10%?

通常,这在实践中可能会变得很麻烦。使用NativeScript,由于自然平台是在JavaScript中提供给您的,因此您通常可以通过各种选择来解决最后的10%,通常涉及更多时间来解决。

文档

毫无疑问,很难做到正确。当您最初不写它时,这甚至更难做到。

目前,NativeScript文档正在此存储库中进行重大改革:https://github.com/NativeScript/docs/pulls,它已包含超过70个拉的请求。

开源弯路...我到底是谁?

我纯粹是Nativecript的粉丝,也是开源众多的众多词之一,他们亲眼目睹了一般开源的许多误解。

  1. 我们很幸运能拥有开源。
  2. 如果您使用的是开源,那么如果您有能力,那么参与的天然善良天然精神范围内。
  3. 要攻击任何形式的开源,就是在虚构的墙壁上尖叫。
  4. 开源可以以多种形式存在,无论是公司赞助,社区驱动还是只是为了娱乐它。

为了使一个开源项目完全受到社区的驱动方式,有许多愿意这样做的人,以及一个想要它的社区(无论大小如何)。当该项目足够大,就像NativeScript一样,仅此事实就令人震惊,并且在任何市场条件的范围内都脱颖而出。

我有一个可爱的家庭,苛刻的妻子和2个孩子(一个是4岁,另一个是23岁)。我想随时帮助Nativecript,因为:

  • 我喜欢它
  • 亲眼目睹了它对大型企业,小型企业和启动环境的有效性,并且每天都能体验出色的结果
  • 它遵循“更少”的咒语,这使更广泛的社区在未来
  • 目前,围绕NativeScript的创新和创造力的水平一直很高

我还看到它被滥用,被误解和滥用了很多次,因为所有开源都可以受到。

经济学和工作

我父亲获得了田纳西州立大学中学的经济学学士学位,并获得了田纳西大学的商业硕士学位。他今天是多元化的鸡肉,猪和牧场主。我是在一个围绕实际经济学的家庭中长大的,对工作的特殊照顾,企业家精神以及为什么它在人类层面上很重要。

我继续在佐治亚州南部的瓦尔多斯塔州立大学学习艺术品的商业营销。在本科学习期间,我在实习期间开始了编程职业。

JavaScript为科技行业提供了令人叹为观止的工作,从而获得了奖励的职业,幸福的家庭和鼓舞人心的创新。

我之所以被Nativecript吸引,部分原因是它有可能帮助支持多元化的就业市场,在这种市场中,更多的想法得到了支持不同的观点。 Antivescript鼓励的是对语言的基本理解,并通过理解这些观点的欣赏和享受。

但是没有任何上述文字工作吗?

JavaScript作业实际上是一项定义作业。

同时,Swiftui,JetPack组成或纯粹的网络作业是一项定义作品。

详细说明如何有效地应用NativeScript来增强您的代码库,同时帮助加强多元化和健康的就业市场,这是一个需要更多工作的话题。我本人和nStudio的同事都非常关注这个话题,我们将继续帮助分享现实世界的案例研究,以教育您的团队如何从中获得最大收益。

对我个人而言,我更喜欢在不需要提及的就业市场。如果它实现了它的唯一目的,那就是提高和扩展JavaScript的多功能性,甚至不需要提及。对此有很多观点,但这是我的。

为什么当反应本地主导的nativescript?

nativescript和React Native不是竞争的方法,与许多错误信息相反。

简单地说, NativeScript在整个JavaScript生态系统中都在这里,包括React Native

现在,您可以通过Open Native工作在Nativescript项目中使用React Antive插件,而在React Native Community认为合适的地方可以使用NativeScript只是时间问题。

实际上他们没有竞争,但是很容易想到他们因为表面水平的外观而这样做。深入挖掘,您会发现它们互相有益。

我们可以用Hermes实现NativeScript。

市场趋势,不确定性和AI

如果我们所有人都去了风吹的地方,我们所有人都会在同一个地方吗?

市场趋势倾向于……营销。

如果您发现NativeScript有用,则可以正确使用它。
如果您发现NativeScript没有用,则可以正确使用它。

nativecript的存在不是取决于数字的。这取决于行业希望JavaScript在广泛多样的用例中具有多功能性和有用的程度。

javascript不会走任何地方,因此nativecript也不是。

关于AI,尤其是在2022年,它给了该行业一个唤醒电话。人工智能将始终像受过训练的投入一样好。如果每个人都去风吹的地方,您肯定会帮助AI获得统一的输入,从而更快地消除您的工作。

就业市场越多样化,AI越多,可以帮助与具有更精细输入的团队一起工作,而无需创造人造思维。

如果您想超越机器,请做一件事,它不能 - >成为人类,同情其他观点,这些观点在表面上可能并不总是有意义。对机器有效的方法可能对人类不起作用。

“避免蜂巢的头脑。” 〜通过retro 60s Echoplex

说话

在使用之前始终了解。帮助总是很近。

从架子上抓住最热门的东西,一个人去,尽管令人兴奋,就像在时间敏感或任务危险的情况下不建议这样做。

NativeScript已接近10年。它推动了大型企业发展以及小型企业的发展,并且正在发展。在那六年的大部分时间里,我们一直在专业工作,并且看到团队独自一人,甚至没有接触到community。请不要对自己或您的公司这样做。

Nativescript社区是一个体贴,勤奋和富有同情心的团体。如果您需要帮助,也有professional partners可以提供帮助。

NativeScript Anti Anti-Web开发吗?

这是一个表面水平的思想,这是有道理的。 NativeScript可用于创建纯粹的本机平台项目,而不是网络,所以它不会伤害网络吗?

实践中,NativeScript启用是“与本地最好的网络”,这意味着它通过其JavaScript多功能性鼓励头等舱的Web体验,同时能够通过本机平台开发的最佳实践来丰富这种方法。

您如何将其用于此目的是将创新者,开发人员和创作者留给外面的 - 还记得我提到的工作吗? 去创建,创新,激发灵感我们所有人!

我们肯定会分享更多自己的实践,这些实践在将来最好地倡导这两者,以说明这种经常被掩盖的现实。

NativeScript启用了什么真正的优势,长期意味着什么?

NativeScript是对您喜欢的语言的平台的庆祝,JavaScript。这意味着您可以在该平台上使用任何内容,例如:

  • 选择Swiftui? You can
  • 选择在Flutter UI中? You can
  • 选择JetPack组成? You can
  • 使用React Native插件生态系统? You can
  • 在Web微注定中选择? You can
  • 选择未来的创新?如果它在受支持的平台上运行,绝对是。

是的,您可以与Swiftui一起使用VUE。
是的,您可以使用Angular(Typescript)驱动Flutter UI。
是的,您可以将Svelte与JetPack Compose一起使用。
是的,您可以与React Native插件一起使用Solid。
是的,由于nativeScript。

您从来没有在网络浏览器中在JavaScript项目的范围内编写目标C,Swift,Java或Kotlin API,并在真实的远程设备上立即执行该代码,但是NativeScript enables this

支持技术多样性,倡导不同的观点,并庆祝各种背景资格,而不是只要求一种技术,这是这项技术的全部意义,从长远来看,我们希望鼓励更加丰富多彩的就业市场,并拥有更广泛的机会。<<<<<<。 /p>

nativecript的多功能性和可能性是一个单词...启发。

享受开源

欢呼您的开源旅程ð»

学分

  • 活泼的NativeScript Community
  • 对整个TSC的持续光辉,心脏和谦卑的见解,代表着全球的国籍,例如法国,匈牙利,保加利亚,日本,印度尼西亚,爱尔兰,希腊,巴西,新西兰,特立尼达和多巴哥,加拿大,以及许多美国各州。
  • DALL·E生成的封面艺术。 〜“山区空隙,数字艺术之间存在的激发频率。”