JavaScript、Kotlin、Flutter可以开发鸿蒙APP吗?

自从去年华为宣布推出「鸿蒙Next」版本开始,标志着其操作系统的全面革新。鸿蒙Next将摒弃所有基于AOSP的代码,与Android系统彻底分离,实现完全自主的研发路径。通过精简约40%的冗余代码,鸿蒙Next致力于构建一个更高效、更流畅的系统环境。

当然对于开发者来说,纯血鸿蒙的推出意味着又有新的就业岗位了,也意味着卷王们又有了新的内卷赛道!相信正在看这篇文章的你,已经在卷了。

卷王内卷的第一步:学习ArkTS 语言

ArkTS 是一种基于 TypeScript 的编程语言,专门为鸿蒙应用开发而设计。它继承了 TypeScript 的静态类型检查、类、接口、模块等特性,并在此基础上进行了针对鸿蒙系统的优化和定制。官方宣传的ArkTS 的主要优点包括:

1. 静态类型检查:在编译时进行类型检查,可以在代码运行前发现和修复错误。
2. 更好的 IDE 支持:由于有了类型信息,IDE 可以提供更好的自动完成、导航和重构功能。
3. 更易于维护和理解:类型注解和编译时检查使得代码更易于理解和维护。

ArkTS 还提供了简洁自然的声明式语法、组件化机制、数据-UI自动关联等能力,实现了贴近自然语言的编程方式,为开发者带来易学、易懂、极简开发的优质体验。此外,ArkCompiler 运行时在 HarmonyOS 上提供了 Worker API 支持并发编程,优化了并发运行实例的启动性能和内存开销。

对于已经熟悉 TypeScript的开发者来说,学习 ArkTS 会非常容易,因为很多基础概念和语法是相同的。但是,ArkTS 可能包含一些特定的概念、工具和最佳实践,这些是 TypeScript 标准库之外的,因此需要你学习这些新的内容。

不过,总的来说你不需要“重新学习” TypeScript,但是需要了解和掌握 ArkTS 特有的部分。这通常涉及到阅读文档、查看示例代码以及实践使用 ArkTS 来开发应用。

不学习ArkTS语言,可以进行鸿蒙App的开发吗?

作为反内卷达人,作者今天想分享的是:不学习ArkTS语言,我们应该怎么开发鸿蒙app!

如果选择不学习ArkTS语言,目前可以考虑以下方案:

Java/Kotlin:鸿蒙操作系统支持使用Java和Kotlin进行应用开发,这两种语言在Android开发中广泛使用,如果您已经熟悉它们,可以继续使用这些语言开发鸿蒙应用。但是,由于HarmonyOS是一个独立的操作系统,它可能有一些独特的开发要求。因此,最终开发的效果还是要看HarmonyOS的支持情况和开发动态。

JavaScript/TypeScript:对于Web开发者或那些熟悉前端开发的人来说,可以使用JavaScript或TypeScript来开发鸿蒙应用。鸿蒙支持基于Web的技术栈,使得开发者可以使用熟悉的Web开发工具和框架。采用TypeScript作为开发语言,使用小程序替代原生App在鸿蒙上高度可行。

第三方工具和插件:一些第三方工具和插件可能支持在不学习特定语言的情况下开发鸿蒙应用。比如:在FinClip 提供的IDE中就有针对鸿蒙开发的插件和扩展,在FinClip Stiodu中就支持小程序一键转App的功能,帮助开发者在不学习ArkTS的情况下快速开发出纯血鸿蒙app。

用跨平台框架:目前React Native或Flutter这些跨平台开发框架允许开发者使用JavaScript、Dart等语言来开发可以在多个平台上运行的应用,包括鸿蒙操作系统。不过使用跨平台框架也还是有一些额外的,适配问题需要解决,比如:React Native 需要为鸿蒙平台新增 OpenHarmony Renderer,将前端标签转化为 ArkUI 控件进行渲染;而Flutter应用如果使用了通过channel调用原生功能的三方库,需要库的开发者进行鸿蒙兼容工作。这些都是后续潜在的工作量。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/19678.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

QWidget成员函数功能和使用详细说明(二)(文字+用例+代码+效果图)

文章目录 1.测试工程配置2.成员函数2.1 void setFixedHeight(int h)2.2 void setFixedSize(const QSize &s)2.3 void setFixedSize(int w, int h)2.4 void setFixedWidth(int w)2.5 void setFocus(Qt::FocusReason reason)2.6 void setFocusPolicy(Qt::FocusPolicy policy)…

揭秘数字货币:比特币背后的技术逻辑

随着科技的飞速发展,数字货币作为一种新兴的经济形态,已经逐渐走入我们的视野。其中,比特币无疑是这一领域的佼佼者。那么,比特币背后的技术逻辑究竟是什么呢?本文将为您揭开这一神秘面纱。 一、区块链技术:比特币的基石 比特币的核心技术就是区块链(Blockchain)。区块…

六一儿童节与AIGC:科技与童趣的奇妙融

随着人工智能生成内容(AIGC)技术的发展,越来越多的应用和网站专门为儿童提供学习、游戏和绘画方面的支持。这些平台不仅能够提高孩子们的学习兴趣,还能激发他们的创造力。在六一儿童节即将到来之际,让我们来介绍几款利…

C++的复制和拷贝构造函数

什么复制,看下面这个例子,来理解什么是复制 第一个例子 int main() {int a 2;int b a;//实际是创建一个副本,他俩是独立的变量,它们有不同的内存地址(复制)b 3;//是可以修改的std::cin.get();}第二个例…

03-树3 Tree Traversals Again(浙大数据结构PTA习题)

03-树3 Tree Traversals Again 分数 25 作者 陈越 An inorder binary tree traversal can be implemented in a non-recursive way with a stack. For example, suppose that when a 6-node binary tree (with the keys numbered from 1 to 6) is traversed, th…

C++ 变量类型思维导图梳理

目前了解了前端、后端,准备再学习一门稍微底层的语言,整好自己年龄也比较大了,学个C语言,等以后哪天找不到前后端的工作了,就去做个少儿编程老师,为切换赛道做准备。 1、数据类型 定义:给变量…

LeetCode739:每日温度

题目描述 给定一个整数数组 temperatures ,表示每天的温度,返回一个数组 answer ,其中 answer[i] 是指对于第 i 天,下一个更高温度出现在几天后。如果气温在这之后都不会升高,请在该位置用 0 来代替。 解题思想 使用单…

数字化转型对企业来说意味着什么?

数字化转型是当今社会不可避免的趋势,它的发展其实是多方面因素影响导致的。首先,随着科技的迅速发展,人们对于信息获取和处理的需求越来越强烈,这促使了各行各业都要朝着数字化方向发展。其次,全球化的潮流让企业需要…

【Qt秘籍】[006]-Qt 的 Hello World程序-编程第一步

"Hello,World!" 中文意思是“你好,世界”。 因为 The C Programming Language 中使用它做为第一个演示程序,后来很多程序员在学习编程或进行设备调试时延续了这一习惯。 下面,我们也将演示Qt中的"Hello World!" 我们先创…

【揭秘】如何借助聚道云软件连接器,实现差旅管理新飞跃!

导语:在当今竞争激烈的市场环境下,高效的差旅管理已成为企业节省成本、提升员工满意度的关键。今天,我们将带您看看如何通过聚道云软件连接器将易快报与阿里商旅成功对接,实现了差旅申请单的同步等需求,为企业管理带来…

Java实现数据结构---数组

文章目录 概念存储原理数组的操作完整代码 概念 数组是(Array)是有限个相同类型的变量所组成的有序集合,数组中的每一个变量为称为元素。数组是最简单、最常用的数据结构。 数组下标从零开始。 存储原理 数组用一组连续的内存空间来存储一…

文章《Causal Inference for Knowledge Graph based Recommendation》阅读

文章《Causal Inference for Knowledge Graph based Recommendation》阅读 论文概况及动机(Introduction)问题形式化方法论Causal Intervention (C1)Model ImplementationU()f()协同过滤部分模型优化 Causal Inference (C2) Exper…

Kafka生产者消息异步发送并返回发送信息api编写教程

1.引入依赖&#xff08;pox.xml文件&#xff09; <dependencies> <dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka-clients</artifactId> <version>3.6.2</version> </dependency> </depende…

伦敦金1手指的是什么?

就算没有进行过伦敦金投资&#xff0c;甚至是没有做过任何金融产品投资的朋友&#xff0c;相信也听过别人做交易决定&#xff0c;他们都是1手两手那样头买入。有些朋友就好奇了&#xff0c;这伦敦金1手指的是什么意思&#xff1f;下面我们就来讨论一下。 首先&#xff0c;如果我…

CDH6.3.2集成Flink1.12.2

一、Linux下载httpd服务并开启 yum install y httpd systemctl start httpd systemctl enable httpd 二、获取已制作好的安装包 flink-1.12.2-bin-scala_2.11.tar ​ FLINK_ON_YARN-1.12.2.jar ​ flink-shaded-hadoop-2-uber-3.0.0-cdh6.3.2-10.0.jar 三、集成CM 1.上传编…

ERV-Net:一种用于脑肿瘤分割的高效3D残差神经网络| 文献速递-深度学习肿瘤自动分割

Title 题目 ERV-Net: An efficient 3D residual neural network for brain tumor segmentation ERV-Net&#xff1a;一种用于脑肿瘤分割的高效3D残差神经网络 01 文献速递介绍 脑肿瘤在全球范围内是致命的&#xff0c;与其他类型的肿瘤相比。胶质瘤是最具侵略性的脑肿瘤类…

数据挖掘与机器学习——聚类算法

目录 无监督学习 聚类算法 概念&#xff1a; 功能&#xff1a; 应用场景&#xff1a; 评判标准&#xff1a; 划分聚类&#xff1a; K-means聚类 逻辑实现&#xff1a; 聚类方式 问题&#xff1a; 解决&#xff1a; 可能存在的问题&#xff1a; 1.初始值对K-means聚…

CANOE制造dll文件,以及应用dll文件

1、使用canoe自带的capl dll 2、然后使用Visual Studio 2022 打开项目 3、项目打开后修改下项目属性 4、修改capldll.cpp文件 4.1 添加的内容 void CAPLEXPORT far CAPLPASCAL appSum(long i, long j, long* s){*s i j;} {"sum", (CAPL_FARCALL)appSum, "…

python前端streamlit模型部署

简单介绍使用前端streamlit框架快速部署本地模型&#xff1a; 1、模型训练&#xff1a; import pandas as pd # 流程整合 from sklearn.pipeline import make_pipeline, Pipeline # 数据处理 from sklearn.impute import SimpleImputer from sklearn.preprocessing import Min…

01 - Maven入门安装

目录 1、软件下载地址 2、安装的版本 3、安装的条件 4、软件的结构 5、Maven环境配置 5.1、配置MAVEN_HOME 5.2、配置Path 5.3、命令测试&#xff08;cmd窗口&#xff09; 6、Maven的功能配置 6.1、配置本地仓库地址 6.2、配置国内阿里镜像 6.3、配置jdk8版本项目构…