借助生成式 AI 提升鸿蒙 APP 开发体验?试试 AutoDev 新功能

这篇具有很好参考价值的文章主要介绍了借助生成式 AI 提升鸿蒙 APP 开发体验?试试 AutoDev 新功能。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

生成式 AI 在软件研发和知识管理上,有着非常大的潜力,也因此这项技术被越来越多的企业所采用。而在一些新兴的技术上,诸如于鸿蒙操作系统,它带来了一些新 的理念、开发工具 DevEco Studio、新的语言 ArkTS、新的 UI 框架 ArkUI 等等。从模式上来说,它与生成式 AI 结合企业内部的基础设施过程非常相似。

因此,我们开始在 AutoDev 中探索如何结合这些新知识的可能性,同时降低开发人员的学习负担。

视频  Demo:

源码:https://github.com/unit-mesh/auto-dev

鸿蒙操作系统 + 生成式 AI 的三个试验式功能

在初步使用新的 HarmonyOS  IDE 之后,便有了三个在 AutoDev 试验的思路:

  • 添加 ArkTS 语言支持。ArkTS 是鸿蒙生态中基于 TypeScript 扩展的应用开发语言。

  • 自动 ArkUI 页面生成。ArkUI 是一套构建分布式应用界面的声明式 UI 开发框架。它与我们先前引入的 AutoPage 并没有太多的区别,可以结合思维链进行代码和 UI 生成。

  • UI 布局迁移。即将其它语言、框架编写的代码,交由生成式 AI 转化成适用于鸿蒙的代码。

作为阅读过 Gradle、Intellij Community、DevEcoStudio 源码,以及《前端架构:从入门到微前端》作者,我大抵算是对于 TypeScript、 ArkUI、 声明式 UI 有一定的经验,所以我自信的开始了 AutoDev 的新功能开发 —— 然后就踩了一堆坑。

1. ArkTS 语言的 AI 支持

autodev,人工智能,harmonyos,华为

在我下载安装完 DevEco Studio 之后,发现 AutoDev 居然不支持 TypeScript???经过我在 WebStorm 反复测试后,发现是 IDE 的关系。结合 PSIViewer 插件后, 才发现差异之后,DevEco Studio 的 JavaScript/TypeScript 语言是自己实现的,诸如于: com.huawei.ace.language.psi.impl.JavaScriptIdentifierNameImpl

原因不外乎:

  • Intellij 平台中的 JavaScript 插件是收费的,没有开源版本。

  • 鸿蒙直接针对于 TypeScript 语法进行扩展,会比实现一个新的更简单。

所以 DevEco Studio 自研了一个 JavaScript/TypeScript 模块,支持 JavaScript 语法高亮、代码提示、代码格式化等功能。与此同时,DevEco Studio 添加了 ArkTS 语言,即 TypeScript 扩展语法。

这就意味着,使用 DevEco Studio + AutoDev 时,会出现三种新的文件类型:Huawei JavaScript、Huawei TypeScript、Huawei ArkTS。

头疼。。

为此,在 AutoDev 中采取的方法是,其于标准 PSI 做初步的抽象,以实现对于文档生成的支持。而如果要做好则需要:

  1. 基于反射来重复利用 JavaScript PSI

  2. 融入 DevEco Studio 的 JavaScript 支持

当然,考虑到调试上的难度,以前代码中各种现的 xxStudio 字眼(新的自研 IDE 平台??),我暂时放弃了上述的做法:大体上鸿蒙 IDE 会有自己的 AI 能力。

2. AutoArkUI:RAG 增强的 ArkUI 代码生成

autodev,人工智能,harmonyos,华为

ArkUI 是一套构建分布式应用界面的声明式 UI 开发框架。

与 ArkTS 相比,要结合 ArkUI 显得稍微复杂一些。所以,我在当前版本里考虑的是:结合经典 UI 的元素生成页面,即:

  • 布局。诸如于:线性布局(Row、Column)、层叠布局(Stack)、弹性布局(Flex)等。

  • 组件。诸如于:按钮(Button)、单选框(Radio)、切换按钮(Toggle)等。

而由于 ChatGPT 是不包含 HarmonyOS 的最新知识的,所以需要采用类似于 AutoPage 的两步生成特性。

  1. 分析用户的需求,选择合适的布局与组件。

  2. 根据用户的需求与详细的布局、组件信息,生成对应的 ArkUI 代码。

上述的两步便是 AutoDev 中 AutoArkUi 生成 UI 的特性,详细可以参考 AutoDev 的代码,以及对应的 prompt。如下是对应的步骤 1 的 prompt:

  • User: // maybe send Android Layout code, maybe some requirements

  • Your Answer: [FlexLayout, Button, CheckBox, Checkbox, Button]

考虑到编程语言 DSL(领域特定语言)极易受用户语言的影响,所以采用的是英语的方式,避免无端生成中文 DSL 。

3. 迁移 Android/iOS/小程序 应用

autodev,人工智能,harmonyos,华为

生成式 AI 具备极好的代码翻译能力。诸如于 IBM 在 Cobol 转化为 Java 上的工程化设计,以及我们在 AutoDev 中设计的遗留系统改造能力,其所针对的 都是生成 AI 在这方面的能力。

所以,我们也在 AutoDev 中内置了这个功能,只是当前支持的只是布局上的迁移。但是,考虑到这种生成方式依旧有一系列的问题,有待我们进一步寻找更好的方式。类似的问题在生成 ArkUI 也是存在的。

相似的,这个功能目前是与 AutoArkUI 融合在一起的,理论上通过静态代码分析是最简单的,有待未来进一步完善。

4. RAG 增强的聊天上下文:C++ NAPI 等

autodev,人工智能,harmonyos,华为

在试验了多次之后,会发现对于 HarmonyOS 这种新知识,ChatGPT 是不知道的。所以,需要基于 AutoDev 的上下文接口,创建基于 HarmonyOS 的上下文。当然的版本(1.6.4)里, 添加的是: This project is a HarmonyOS project. (毫无意义的废话),再结合不同语言来写一些上下文:

  • TypeScript/JavaScript/ArkTS. Which use TypeScript (ArkTS) as the main language, and use Flutter like TypeScript UI framework.

  • CPP/"C/C++"/CCE. Which use C++ as the main language, and NAPI for building native Addons.

大体来说,就是告诉 AI:

  • 编写 ArkUI/前端代码的时候,考虑一下这个项目是类似于 Flutter 的声明式 UI 。

  • 编写原生代码的时候,考虑一下这个项目是基于 NAPI 来构建插件的。

当然了,这些是基于我的初步理解所构建的上下文,

未来

考虑到上述的功能,就是几小时内实现的,就不要有太高的期望了。

当前版本依旧有诸多问题:

  • 转换 Android 布局易瞎编。除了需要知道更多的转换规则,还需要知识更多的属性,而这些部分是通过传统的代码分析工具解决的

  • 组件和布局信息的 hardcode。懂的都懂

  • 缺少示例代码。没有动态生成的示例代码,使得 RAG 的效果是有限的

  • 诸如于 C++ 语言的支持

  • 微信小程序等小程序平台的转换

然而我并非 Android、小程序应用迁移到鸿蒙应用的专家,所以还是有一系列的挑战。等我心情好的时候,再考虑写一些更好玩的新特性。文章来源地址https://www.toymoban.com/news/detail-857334.html

到了这里,关于借助生成式 AI 提升鸿蒙 APP 开发体验?试试 AutoDev 新功能的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 告别昂贵的 AI 图像生成:试试DiffusionBee 免费的 AI 图像生成工具

    Stable Diffusion 是一个强大的工具,它使用深度学习根据书面描述创建详细的图像。它于 2022 年首次发布,还可用于其他与图像相关的任务,例如在文本提示的帮助下修复、修复和图像到图像的翻译。DiffusionBee 是一款免费的开源工具,可将 Stable Diffusion 带到您的桌面。 Stable D

    2024年02月04日
    浏览(65)
  • Linux服务器开发太麻烦? 试试IntelliJ IDEA公网远程访问开发极大提升开发效率

    本文主要介绍如何在IDEA中设置远程连接服务器开发环境,并结合Cpolar内网穿透工具实现无公网远程连接,然后实现远程Linux环境进行开发。 IDEA的远程开发功能,可以将本地的编译、构建、调试、运行等工作都放在远程服务器上执行,而本地仅运行客户端软件进行常规的开发

    2024年02月04日
    浏览(66)
  • 如何借助于AI自研一款换脸app

    在当今的数字时代,人工智能(AI)技术已经深入到各个领域,其中之一就是换脸技术。现在,有一个免费的AI换脸应用程序,可以让用户轻松地将自己的脸型与明星、朋友或者任何其他人的脸型进行交换,创造出独特的视觉效果。 这个免费的AI换脸应用程序利用了最先进的人

    2024年01月19日
    浏览(38)
  • 不知道ai自动生成绘画网站有哪些就试试这些ai绘画软件

    自然语言处理技术和机器学习的不断发展,为艺术创作和设计领域带来了新的可能性。随着人工智能技术的进步,越来越多的网站和平台开始利用ai技术,为大家提供自动生成绘画的功能。这些ai绘画网站通过深度学习和生成对抗网络等先进技术,能够根据我们的简要指令或概

    2024年02月13日
    浏览(52)
  • 借助 Amazon Bedrock 构建 AI 漫画视频生成器

    : [Amazon Web Services re:Invent 2023, Amazon Polly, Comic Video Generator, Story Script Generator, Image Generator, Character Inconsistency, Out Of Focus Images, Fine Tuning Stable Diffusion] 本文字数: 1800, 阅读完需: 9 分钟 如视频不能正常播放,请前往bilibili观看本视频。 https://www.bilibili.com/video/BV1mc411m7nB 了解

    2024年02月04日
    浏览(55)
  • 随着AI的广泛应用与普及,我国医疗行业也正逐步进入智能医疗时代,如何在医疗行业借助AI提升患者的治疗能力,降低

    作者:禅与计算机程序设计艺术 随着近年来医疗技术的飞速发展,人们越来越关注人工智能(Artificial Intelligence, AI)技术对医疗工作的影响。以往人们所熟知的机器学习、计算机视觉等技术主要用于科学研究、工程制造,而现在,医疗行业也越来越注重人工智能技术的应用。从

    2024年02月07日
    浏览(56)
  • ai写作生成器有哪些?试试这几款工具吧

    近年来,随着ai技术的飞速发展,越来越多的人开始意识到ai文本生成器的重要性和实用性。这种文本生成器可以帮助我们快速生成各种类型的文章,如报告、评论、新闻、邮件等,它的应用范围已经非常广泛了。不仅如此,随着机器学习和深度神经网络技术的不断进步,ai文

    2024年02月15日
    浏览(56)
  • 鸿蒙3.0应用开发体验

    鸿蒙os3.0发布以来,华为官方开始主推ets+arkui开发模式,逐渐抛弃java,为以后去安卓化做铺垫,但目前在笔者体验来看,仍需要大力完善,还有很长的路要走! 什么是ets?ts是js的超集,而ets是ts的超集!ets后缀的文件中可以使用鸿蒙SDKapi的能力,就这么简单!而arkui则与Flu

    2024年02月09日
    浏览(47)
  • 【鸿蒙】鸿蒙操作系统应用开发入门级初体验

    目录   一 鸿蒙相关资源 二 创建新工程 三 程序设计 鸿蒙学堂:https://hmxt.org/   (1)下载鸿蒙的IDE:DevEco Studio,安装过程一路next即可; (2)安装好之后,新建工程,我这边使用Java进行开发,所以选择Empty Ability(Java),选择完成之后,点击Next: (3)工程配置,主要配置一下

    2024年02月07日
    浏览(46)
  • 鸿蒙HarmonyOS应用开发初体验

    最近华为发布mt60新机火了,作为一名移动开发程序员,对鸿蒙系统开发移动端就很感兴趣了。 开发工具:HUAWEI DevEco Studio和SDK下载和升级 | HarmonyOS开发者 下载完后按默认安装就可以了,界面跟AS很类似,之前我jdk环境配置就不在配置了,不懂的可以百度下很多教程。 这是基

    2024年02月09日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包