收益:
- 能够开发端到端的移动功能,并在设计、代码、人工智能集成、隐私、测试、调试、性能和发布步骤方面进行验证
- 能够建立一个负责任和合乎道德地使用人工智能的框架,遵循透明度、验证问责制和正义非恶意原则。
- 通过区分人工智能的强项和弱项并将最终决定权掌握在人类手中,能够创建可持续的专业实践。
在本模块中,我们在移动开发的每个阶段都使用了人工智能:代码生成、界面、设备上和云人工智能集成、测试、调试、性能、隐私和商店交付。在最后一个单元中,我们将把所有这些部分组合成一个端到端流程,阐明负责任和合乎道德地使用人工智能的框架,并讨论如何将这些技能转化为可持续的专业实践。核心信息没有改变,但现在已经牢固确立:人工智能是一种使有能力的移动开发人员倍增的力量;它不是替代品。是对产品的质量、安全以及对用户的承诺负责的人。
端到端功能:组合部件
在人工智能的支持下,从头到尾开发一个真正的功能,将我们学到的每个单元结合在一起。示例:“从收据添加费用”功能。流程如下:
- 设计(第 3 单元)。用AI绘制屏幕和四种状态(加载/空/错误/满),从一开始就请求可访问性。
- 代码(第 2 单元)。用MVVM逐层生成摄像头、数据模型和ViewModel;验证每一层。
- 设备上的人工智能(第 4 单元)。使用 ML Kit 文本识别功能读取收据中的金额/日期;考虑预处理和置信度评分。
- 保密性(第 9 单元)。以最低权限请求相机权限,编写拒绝场景,将数据保留在设备上。
- 测试(第 6 单元)。生成提取逻辑的单元测试、显示的UI测试;包括边境国家。
- 调试(第 7 单元)。让人工智能根据上下文分析崩溃并解决根本原因。
- 性能(第 8 单元)。测量相机处理的电池成本并将其设置为电池友好型。
- 广播(第 10 单元)。透明报告人工智能的使用情况,如实填写隐私表,并进行自测。
每一步,人工智能都会加速,人类会验证并做出决定。该循环是该模块的核心。
提示:不要试图让人工智能通过一个巨大的请求来完成一项复杂的功能。将其分解为如上所述的可验证步骤。测试每个步骤的输出并继续下一步既安全又最终更快;因为你不是在最后发现一个大错误,而是在第一步时发现的。
负责任且合乎道德地使用人工智能
仅有技术能力是不够的;一个负责任的框架可以完成它。三个原则:
透明度。用户必须知道他或她正在与人工智能交互。秘密人工智能是对信任的破坏。人工智能生成的内容被标记;人工智能建议被视为“有用的建议”,而不是“硬道理”。
核查和问责。 AI输出是一个起点,而不是成品。您对发布的每一行代码、每个人工智能响应、每个数据交易负责。 “人工智能是这样写的”并不是辩护。
正义与非恶意。人工智能模型可能会因训练数据而产生偏差。面部识别可能在某些肤色上效果较差,推荐引擎可能会排除某个群体。您有责任测试您的产品在不同用户组中是否正常运行。
注意:您在 IT 和安全领域学到的任何技术仅用于授权和建设性目的。利用人工智能创建恶意软件、未经许可破解他人的应用程序、未经同意收集用户数据或制作误导性内容都是非法的,违反职业道德。权力的衡量标准在你不使用它的地方就会显现出来。
认识人工智能的局限性
成熟的开发人员知道人工智能的优点和不足。
人工智能很强大
人工智能很弱
模具代码、样板制作
产品和架构决策
测试和文档草案
了解业务环境和用户
崩溃日志读取、错误扫描
明确的根本原因诊断(需要验证)
学习、概念解释
当前/未制作的 API 信息
文本、描述、翻译
道德、安全和法律最终决定
内化这种区别是有效使用人工智能并避免其陷阱的关键。
三个迷你箱子
案例 1 — 端到端速度。一名独立开发人员按照上述 8 步流程,在 4 天内完成了“拔掉电源”功能;如果没有 AI,预计需要 12 天。但由于他每一步都经过验证,所以出版第一时间就获得了批准。速度是真实的,因为纪律是真实的。教训:AI+验证比AI-验证更快。
案例 2——发现偏见。在测试基于人工智能的名词性别预测功能时,一个团队注意到一些土耳其语名词存在系统错误;该模型主要是根据英语数据进行训练的。该功能已更改为询问用户,而不是做出错误的假设。教训:测试模型的训练偏差是开发人员的工作。
案例 3——“人工智能这么说”的防御崩溃了。开发者未经验证就发布了人工智能生成的支付码;在一种极端情况下,代码执行双重收集。说“人工智能写的”并不能免除责任;作为帐户持有人,他是一名开发人员。教训:责任不能委派。
弱提示/强提示
弱提示:“给我写一份完整的收据扫描应用程序。”
强力提示:“帮我一步一步开发‘从收据中添加费用’功能。让我们按顺序进行,当我验证并批准每个步骤时,继续下一步:1)屏幕+四种状态+可访问性2)MVVM层(相机,模型,ViewModel)3)使用ML Kit读取收据中的金额/日期+信任评分4)相机权限(最低权限)+拒绝流程5)单元和UI测试告诉我每一步需要验证的风险和要点。”
可复制模板
端到端规划模板:“我将开发以下功能:[功能]。将其分解为可验证的步骤:设计、代码、人工智能集成、隐私/许可、测试、性能、发布。为每个步骤编写输出、风险和验证标准。不要制作一个巨大的产品。”
道德/偏见审核模板:“审核以下人工智能功能的公平性和偏见:[功能]。哪些用户群体可能表现不佳?训练数据如何影响偏见?如何测试它,如何使其更具包容性?”
问责检查模板:“列出在发布这个人工智能生成的代码/功能之前我应该问的问责问题:我是否理解它,我是否测试过它,它是否安全,它对用户是否透明,它是否合法/道德?”
持续学习模板:“提出一个为期 4 周的实用计划,以提高我作为移动开发人员的 AI 技能:每周一个主题(代码、集成、测试、发布),目标是一个小项目和验证习惯。”
常见错误
- 通过一个巨大的请求生成复杂的功能。无法验证;将其分解为步骤。
- 通过说“AI是这样写的”来逃避责任。您对发布的代码负责。
- 不测试人工智能偏见。该模型在某些群体中可能效果不佳;考验正义。
- 对用户隐藏人工智能交互。透明度是信任的基础。
- 忘记人工智能的局限性。人们对架构、道德和当前 API 有最终决定权。
- 停止学习。工具和车间规则变化很快;保持不断更新。
总之
端到端功能将模块的所有部分组合在一条链中:设计、代码、人工智能集成、隐私、测试、调试、性能和发布。每一步,人工智能加速,人类验证和决策;复杂的工作被分解为可验证的小步骤。负责任的使用基于三个原则:透明、可验证、问责和公平、不造成伤害。人工智能是一个强大的乘数,但人类对架构、道德、安全和当前知识拥有最终决定权。 “人工智能就是这么做的”并不是辩护;您对您的产品以及您对用户做出的承诺负责。通过这种训练,人工智能可以让你在整个职业生涯中更快、更全面、更强大。
应用任务
使用“端到端规划模板”将您选择的移动功能(例如“通过语音笔记进行总结”或“从照片中识别产品”)分解为可验证的步骤。实际上使用人工智能开发和验证至少一个步骤。然后,通过“道德/偏见控制模板”分析该功能可能会导致哪些用户群体出现问题,并通过“责任控制模板”回答发布前需要提出的问题。
清单
- [ ] 我将这个功能分解为可验证的小步骤,而不是一个巨大的生产
- [ ] 我每一步都验证了AI的输出并做出了决定
- [ ] 我将AI交互透明地呈现给用户
- [ ] 我评估了该功能在不同群体中是否公平/有偏见
- [ ] 我回答了发布前的责任问题(理解/测试/安全/道德)
- [ ] 我仅将人工智能用于有能力和建设性的目的,并计划继续学习
模块考试
1、以下哪项对人工智能在移动开发中的定位最准确?
- A)AI取代了开发者;可以直接发布,无需阅读其生成的代码
- B) 人工智能只适用于编写文本,与代码生成无关
- C)人工智能是助手和加速器;架构、安全和广播决策的责任在于人类 ✔
- D)由于人工智能总是产生正确的代码,因此不需要额外的测试和验证
描述:人工智能是生成代码、蓝图和解决方案的助手和加速器。架构、许可、安全和发布等决策的责任和最终批准由有能力的开发商承担;人类对发布的每一行负责。
2. 当向人工智能请求移动代码时,什么最能提高生成的代码的架构质量?
- A) 提示尽可能简短并说“给我写一个应用程序”
- B) 首先,采用像 MVVM 这样的架构,并以小块的方式逐层请求代码 ✔
- C) 在单个提示中将整个功能生成为单个巨型文件
- D)完全不指定架构,将最佳决策留给人工智能
解释:强加像 MVVM 这样的架构,并要求在直接向 AI 编写代码之前逐层生成一个可测试和可维护的结构,将逻辑与屏幕分离。没有架构的请求返回的代码将所有内容都塞到屏幕上。
3. 使用人工智能创建界面时最常被忽视的是什么以及实际使用中最关键的是什么?
- A) 设计加载、空和错误状态,而不仅仅是全屏✔
- B) 只制作最好看的全屏,跳过其他情况
- C) 为每个屏幕添加尽可能多的颜色和动画
- D)将可访问性标签留在最后且仅处理外观
说明:开发人员通常只考虑“完整”状态;而现实中用户大多会遇到加载、空和错误状态。生成所有四种状态(加载/空/错误/满)是健壮接口的秘密。
4. 为什么设备上的人工智能通常是处理敏感个人数据(例如健康测量)的功能的默认选择?
- A)设备上的模型总是比云端模型更准确
- B) 设备上处理永远不会产生电池或处理器成本
- C) 设备上处理在模型大小方面不受限制
- D) 由于数据不会离开手机,因此在隐私和用户信任方面提供了强大的优势✔
说明:设备上处理不会从手机中删除数据;这在隐私合规性和用户信任方面具有强大的优势,而且它可以离线、即时工作。它的限制是设备功率和型号尺寸。
5. 最常见的“无提示”错误是什么,它会导致无意义的结果,并且在设备上模型集成中不会产生错误消息?
- A) 模型文件名拼写错误
- B) 应用程序图标分辨率低
- C) 不正确的输入预处理(大小/标准化)✔
- D) 暗屏主题
说明:不正确地进行输入预处理将产生完全错误的结果,而不会引发错误。预处理值应从模型的文档中进行验证。
6. 将云 LLM 集成到移动应用程序时,最安全的规则是什么?
- A) API key只能保存在后端,不能保存在客户端;请求必须通过代理✔
- B) 为了方便起见,API 密钥应直接嵌入到应用程序代码中
- C) API 密钥应在应用程序描述中共享
- D) API 密钥应保存在客户端并仅通过更改名称来隐藏。
披露:API 密钥绝不会嵌入到移动应用程序代码中;因为可以对应用程序进行逆向工程并提取密钥。正确的架构是仅将密钥保留在后端并通过您自己的代理服务器传递请求。
7. 在较长的 LLM 答案中,什么最能提高用户感知的速度和功能完成率?
- A)等到完整的答案产生并立即显示
- B) 通过流媒体逐字显示生成的答案 ✔
- C) 通过每个请求将整个聊天历史记录发送给模型
- D) 放大模型指令,尽可能扩展响应
描述:流式传输通过逐字显示响应来显着提高感知速度和流畅性。用户不是在空白屏幕上等待,而是观看文本表单;这显着降低了放弃率。
8. 人工智能生成的测试中最常见的导致测试毫无价值的问题是什么?
- A) 测试涵盖太多极限状态
- B) 测试使用模拟对象,而不是真实服务
- C)测试运行得非常快
- D) 通过空的/无用的测试来扩大范围,这些测试实际上并没有验证行为✔
解释:人工智能有时会生成实际上并不验证任何输出的测试(例如,仅调用函数并编写空断言)。这些措施夸大了承保范围,但并不能提供真正的保护;必须检查每个测试以验证有意义的行为。
9. 为什么通过人工智能建议将崩溃放入 try-catch 中不是一个足以消除崩溃的解决方案?
- A) try-catch 根本不能在移动应用程序中使用
- B) 崩溃停止,但由于根本原因尚未解决,问题以不同的形式返回✔
- C) 使用try-catch会减慢应用程序的速度,因此被禁止
- D) 沉默的错误会被商店自动拒绝
说明:消除症状并不能解决根本原因;崩溃停止,但原始问题(例如数据连接中断)以另一种形式返回(例如数据丢失)。专业调试的目标是解决根本原因,而不是症状。
10. 性能优化要遵循的基本黄金法则是什么?
- A) 首先进行分析并测量真正的瓶颈,然后进行优化 ✔
- B)猜测哪里慢并集中注意力
- C) 在每个职能中追求小额收益
- D)在模拟器上测量性能,而不是尝试真实设备
描述:先测量,后优化。真正的瓶颈几乎总是位于与预测不同的位置;没有分析的优化是一种盲目的猜测,通常是浪费精力。
11. 对于持续运行的人工智能功能(例如实时摄像头翻译),最重要的工程问题是什么?
- A) 该功能请求尽可能多的权限
- B) 通过采样频率和批处理管理连续处理的电池和处理器成本 ✔
- C) 仅在最昂贵的手机上运行该功能
- D)以尽可能高的帧速率连续渲染相机
描述:持续工作模式,摄像头和网络;它会快速消耗电池、使设备升温并受到系统限制。降低采样频率、批量处理以及仅在需要时运行是管理电池成本的方法。
12. 权限管理中的“最小权限”原则在移动开发中意味着什么?
- A) 在启动时请求所有可能的权限,以防万一。
- B) 如果权限被拒绝,则使应用程序无法运行
- C) 请求最广泛的许可并计划稍后缩小范围。
- D) 仅在必要时并在最窄的范围内请求实际需要的许可,并有拒绝场景 ✔
说明: 最小权限是指仅在需要时、在尽可能小的范围内请求实际需要的权限。太多的权限会破坏用户的信任,导致存储拒绝,并增加数据泄露的风险。
13.向商店展示人工智能应用程序时必须满足哪些具体要求?
- A) 内容透明度、内容控制以及以保密形式披露进入人工智能的数据✔
- B)向用户隐藏人工智能的使用
- C) 标记隐私表格中未实际收集的数据
- D) 描述中不存在的有前途的功能
披露:商店期望内容透明度(声明其产生人工智能)、内容审核(过滤有害输出和用户通知)以及披露包含人工智能的应用程序的数据使用情况;敏感区域需要精确警告。忽略这些的申请将被拒绝。
14. 当已发布的人工智能生成的代码中出现边缘情况错误时,为什么“人工智能是这样写的”防御无效?
- A)因为人工智能总是产生无错误的代码,所以错误来自于用户
- B) 因为存储会自动纠正 AI 生成的代码
- C) 因为责任无法转移给人工智能;开发者对发布的代码和数据负责✔
- D)因为人工智能生成的代码永远不会上线
描述:AI输出是一个起点,而不是成品。开发者对发布的每一行、处理的每一个数据以及做出的每一个承诺负责;责任不能委托给人工智能,因此在发布之前必须理解和测试输出。