前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >用ChatGPT开发安卓APP的亲身经历

用ChatGPT开发安卓APP的亲身经历

作者头像
博文视点Broadview
发布2023-04-09 16:10:31
3.5K0
发布2023-04-09 16:10:31
举报

自从去年ChatGPT问世一来,代替程序员开发的话题一直不断。最近一个月更是火的一塌糊涂。ChatGPT到底能不能真的代替程序员?让我们通过一个安卓APP的开发任务深度体验一下。

当然,这个文档我也尝试去用ChatGPT来写。我的感受是:有些可以用,但关键部分还得自己写。

1.项目介绍

我想用它做个有用的东西,在我切换网络代理时,能够帮我测试该代理的性能。具体来说就是可以自动访问我想要的网站,并显示一下速度。最终就是下面的这个样子:

2.技术选型

由于要做成APP,我还想使用Python来写。所以,我选择了使用BeeWare 平台来开发。

BeeWare 是一个用于开发跨平台原生应用的 Python 工具集,它可以用于开发各种类型的原生应用,包括但不限于桌面应用、移动应用和网页应用。相比于其他跨平台开发框架,BeeWare 平台的优势在于它采用原生的 UI 组件和功能,因此应用程序的体验和性能都非常好。

BeeWare 平台具有以下特点和优势:(这部分文字来自ChatGPT)

  • 原生 UI 组件:BeeWare 平台使用原生的 UI 组件,可以确保应用程序的性能和体验。
  • 跨平台支持:BeeWare 平台可以开发多种类型的原生应用,包括桌面应用、移动应用和网页应用。
  • 简化开发:BeeWare 平台提供了一系列的工具和库,可以帮助开发者简化开发流程。
  • 开源:BeeWare 平台是开源的,开发者可以自由使用和修改其源代码。

细心的读者可能感觉到这段文字写得比较流畅,但又没有太多的营养!这就是目前ChatGPT的写作风格。

3. 开发环境搭建

上面的文字勉强还可以使用,但直到这一小节,我实在忍不了了,它的输出是这样的:

上面的教程根本不能用,还是我自己来吧:

3.1安装 BeeWare 平台

根据 BeeWare 的文档说明(https://toga.readthedocs.io/),在 Windows 上使用,直接搭建python环境,并pip安装即可。

推荐使用conda建立虚环境的方式(这部分不熟悉的同学可以看公众号里的视频,或任意一本我们出版的书里,都有介绍)。

安装命令如下:

代码语言:javascript
复制
pip install briefcase

3.2配置开发环境

最新版本的BeeWare推荐使用的Python版本是3.8,所以最好使用3.8版本。当然别的版本也可以,笔者亲自试过3.11和3.9版本。下面介绍几个主要的命令:

A 创建一个应用,使用命令:

代码语言:javascript
复制
briefcase new

b 在windows下运行调试:

代码语言:javascript
复制
briefcase dev

如果想把代码打包成apk,可以使用如下命令:

A创建安卓应用

代码语言:javascript
复制
briefcase create android

B 编译

代码语言:javascript
复制
briefcase build android

之后,会在命令行中,看到生成apk的位置,将其放到手机里安装即可。

如果想使用模拟器运行,需要先安装模拟器。具体操作如下:

来到下面网站:

https://developer.android.com/studio/ 

下载安装包,进行安装。(注意:在安装的最后,选择自定义安装,剩下全默认,这样就可以安装 Intel HAXM 驱动程序),在好多教程里,没有这项,导致模拟其安装不上。

然后就可以使用如下命令,运行带有模拟器的程序了:

代码语言:javascript
复制
briefcase run android

IV. 开发过程

当写这部分时,ChatGPT罢工了!不靠谱呀!

我自己来吧!

4.1 创建项目

通过如下命令,创建一个新项目,名字随便启。我的叫:netpy38v2

代码语言:javascript
复制
briefcase new

生成的文件如下:(以helloword项目为例:)

里面别的不用管,只需要修改app.py文件即可

4.2 借力ChatGPT快速学习

由于我没有接触过BeeWare平台,打算看看BeeWare上的代码是什么样的。这个方面借助ChatGPT确实非常方便。

接下来就是高光时刻了:

我先让ChatGPT帮我生成一个代码:

上面的代码让我非常轻松的入门BeeWare开发。而且还教我如何运行。非常的体贴。

4.3 借力ChatGPT改进功能

那么我们就直奔主题,先让他实现一个测速的功能吧。进一步让他调整:

文本太长,我就不截图了。总之,到目前为止,一切都视乎非常美好。我也完成了测速的功能。我很开心。

直到我想增加更多的功能………

4.4 借力ChatGPT添加更多功能

我需要的是批量测试网站,我想用一个表格的UI组件去管理。于是,我又给ChatGPT下达了新的任务。

这一次,ChatGPT玩砸了!它尝试生成了多种解决方案的代码,但最终都已失败告终。在它写不下去时,会返回一个:网络错误!

即便是错误,有时还会问你,这个比上一个好还是不好。显然它在利用你为他进行人工标注。ChatGPT把他的RLHF标注工作直接抛给了使用者!边用边收集样本,难怪人家不强大!

4.5 换个话题,测试ChatGPT的功能边界

上面的任务,看样子是把ChatGPT难住了,那么我们来个简单点的:

这次ChatGPT很轻松的写出来了。

4.5 试试ChatGPT如何改错

但是,上面这段程序是有问题的。我运行时遇到了错误!我想看看它是怎么解决的:

相对比较聪明,它用if建立了2个分支,来解决跨平台的兼容性问题。

4.6 ChatGPT给了我开发启发

其实还没有解决,这段代码运行仍然有错误,于是我接着发问:

这次的ChatGPT应该达到能力边界了。上面的回答貌似很合理,但不符合实际。它说我是版本问题,我是最新版的0.13.0,很显然,又开始一本正经的胡说八道了!

不过从这个里面,给了我启发,我迅速从toga.platform中找到了判断平台的方法,具体如下:

可以说这个过程中,ChatGPT是非常有价值的。它可以快速让你熟悉一个陌生的框架,并在上面做应用开发。

5.结论

通过这次的开发体验,我的感受有如下几点:

  1. ChatGPT根本无法完全代替程序员
  2. ChatGPT更像是一个公司里兢兢业业的初级程序员,或是你带的小弟。可以帮你快速完成一些初级代码。
  3. ChatGPT合作开发还是很愉快的,它使我找回了多年前做技术总监的感觉。我可以安排它调研新的框架,写出例子代码,也可以让他写一些初级程序。但是会有bug,而我的主要工作就是代码review、代码merge和代码debug。
  4. 从时间成本来看,ChatGPT并不会帮我节省时间。因为我开发这个APP花了2天时间,其中主要的消耗在等待ChatGPT的输出,和集成代码,并进行测试。而如果我自己查看API文档,快速学习,并开发的话,预计一天就可以搞定。
  5. 那么,ChatGPT能给我带来什么呢?省力!这个是很有体会的。虽然我多等了一下,做一些无脑的集成测试工作,但是,我的脑袋确实空闲了下来。由于一些事情,不用亲历亲为了,带着ChatGPT开发不会让我像以前独自开发时那么累。

上面的总结中,最后一点尤为重要!也是目前几乎没有人提及的观点。因为他们都不编程!非亲身经历的人,绝对考虑不到这个因素。实际上,开发者的劳累程度要比时间重要得多!这一点不展开说了, get不到的朋友,可以自己写写代码体会一下!

所以,大家也不要太相信网上那些什么一键生成之类的宣传信息,有的例子效果好,是正好碰到了而已。大概率还是得人为来做。

不过,未来,初级程序员的需求将会越来越少,ChatGPT会为有能力的技术大牛们提供源源不断的劳动力。从这一点来看,程序员行业也将会有很大的调整。目前国内的程序员保守量在6000万左右,这个数量未来很有可能会被ChatGPT大幅降低。随之而来的还有基于程序员的教育市场,例如图书、视频、自媒体、培训班,都会萎缩。因为这部分行业的目标人群都是初级程序员,每名高级程序员都有出色的自学能力,他们很少会在这个行业消费。

同样,未来的高级程序员们,将会拥有更强的开发能力,也会产出更高,他们的数量也会更少,竞争也会更加激烈。我们这帮没有被洗掉的老程序员们,仍然面对的是一个极卷的环境。

在文章的最后,附上ChatGPT为本文生成的参考文献。像这种与核心内容无关,但又会使文章看起来更正规一些的流程化东西,使用ChatGPT确实方便。不然,整理和查找下面这些链接,至少也得用掉10分钟的时间,关键还比较费劲^_^。

6. 参考文献

以下是本文中所参考的一些文献:

  • BeeWare 官方网站:https://beeware.org/
  • ChatGPT 官方文档:https://beta.openai.com/docs/
  • Android Studio 官方文档:https://developer.android.com/studio
  • Python 官方文档:https://docs.python.org/3/
  • Android 开发者官方网站:https://developer.android.com/
  • BeeWare 平台 GitHub 仓库:https://github.com/beeware
  • ChatGPT GitHub 仓库:https://github.com/openai/gpt-3

以上文献为我们提供了重要的参考资料和帮助,使我们能够更好地理解和应用 BeeWare 平台和 ChatGPT 技术,开发出更优秀的安卓应用程序。

如果你对我们做的这个APP感兴趣,可以私信我,微信:elexment

推荐阅读

7 个必备的 Chrome 扩展程序来增强 ChatGPT 体验

荐读图书

▊《一本书读懂AIGC:ChatGPT、AI绘画、智能文明与生产力变革》

a15a 著

贾雪丽 0xAres 张炯 主编

  • ChatGPT会让我们失业吗?这些AIGC工具能给我们的工作和生活带来什么变化?
  • 十几位AIGC领域专家历时半年编写完成!
  • 让你系统地了解什么是人们热议的AIGC,在AIGC时代我们如何应对!
  • AIGC科普书

以通俗易懂的方式从各个层面介绍了AIGC的基础知识,并辅以大量案例引领读者了解AIGC的应用实践,让读者可以更快速地利用AIGC改善工作和生活。

第1章从AI发展历史到资本市场近况阐述了AIGC产业的概况,第2章介绍了AIGC相关技术,第3章介绍了文本类AIGC技术的发展及其在传媒、教育、办公等场景中的应用,第4章介绍了声音类AIGC技术的发展及其在音乐、仿真等领域中的应用,第5章介绍了图片类AIGC技术的发展及其在图片生成、图片处理、图片识别等领域中的应用,第6章介绍了视频类AIGC技术的发展及其在视频生成、数字人等领域中的应用,第7章介绍了AIGC上下游产业链(包括芯片、VR等相关设备、元宇宙建模)的概况,第8章提出了AIGC对人类文明发展产生的影响,并对普通人如何应对AIGC带来的“生产力爆炸”提出方法论。

AIGC带来的生产力变革与每个人都息息相关,本书适合所有人阅读,特别是文本、图片、音视频等各类内容创作者,以及科技行业、金融行业的从业者和对AI领域感兴趣的读者。

(扫码查看本书详情!)

ChatGPT相关图书请戳👇

书单 | 深扒ChatGPT核心技术,在AI浪潮中狂飙!

代码语言:javascript
复制
发布:刘恩惠审核:陈歆懿


如果喜欢本文欢迎 在看丨留言丨分享至朋友圈 三连
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-04-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 博文视点Broadview 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
图片处理
图片处理(Image Processing,IP)是由腾讯云数据万象提供的丰富的图片处理服务,广泛应用于腾讯内部各产品。支持对腾讯云对象存储 COS 或第三方源的图片进行处理,提供基础处理能力(图片裁剪、转格式、缩放、打水印等)、图片瘦身能力(Guetzli 压缩、AVIF 转码压缩)、盲水印版权保护能力,同时支持先进的图像 AI 功能(图像增强、图像标签、图像评分、图像修复、商品抠图等),满足多种业务场景下的图片处理需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档