Mekal Z

Mekal Z

A programmer running out of the wall.
twitter

灵瓜背单词 Beta 新鲜出炉

肝了一个月,这个基于 GPT 模型的背单词 App 终于发布 Beta 版本了。作为一个程序员,每次整出一个产品出来的时候总是异常兴奋,就像是孕育了 10 个月的宝宝马上就要出生了。

限量派送 100 位终身 VIP#

先打个广告,放个下载链接,欢迎尝鲜提反馈,我后面会为前 100 名参与 Beta 版测试的同学送上终身会员!
https://testflight.apple.com/join/8d8ei614
linguatale_appicon-3

关于灵瓜#

这个产品的灵感来自于我自己学英语背单词的需求。我使用了市面上的很多背单词的 App,包括百词斩、扇贝、墨墨背单词、这些用户量很大的,也包括一些相对小众或者个人开发者开发的,比如方块背单词,List 单词,词根词缀背单词等等。背完两本雅思词书之后发现还是有很多问题:

  1. 每天干巴巴的背单词实在是太枯燥了
  2. 很多单词是在 App 背单词的场景认识,一到实际语境中就觉得很模糊了
  3. 单纯背单词基本只是能保证遇到单词能认识,但是自己很难在实际口语或者写作中去应用
  4. 背完单词只能记住一个基础意思,实际遇到单词的其他形态就又不认识了

带着以上的这些问题和困惑,突然有一天,我得到一个灵感,即将背单词与读故事进行结合,这样我们就可以在实际的语境中反复的接触那些我们需要背的单词,毕竟看小说比干巴巴背单词有意思多了。相比传统背单词的方法,我觉得灵瓜背单词会有以下优点:

  1. 边读故事边背单词没那么枯燥了,可能不知不觉就看了很久的故事,然后发现居然掌握了很多单词
  2. 一个单词会反复在多个章节出现,无形中强化记忆,而且可能是不同的上下文或不同的形态
  3. 故事是根据自己的背单词进度生成的,对每个人来说都是私人定制

于是,一个月后的今天,「灵瓜背单词」闪亮登场!

关于开发体验#

作为一名程序员,最近这半年的开发已经对 ChatGPT 以及其他各种 AI 工具产生了严重的依赖,特别是最近这一个月。
上面的图片是这个 App 的 Icon,这是我用 Midjourney 制作的。
另外目前 App 内置的四个故事模版的 Cover 图片也都是用 Midjourney 生成的。值得一提的是,用 Midjourney 生成文章的头图、插图之类的,基本就是一次成型,成功率接近 100%。
对于 iOS 开发,我就是个接触才半年的门外汉,只会 SwiftUI。不过对于老油条程序员来说,虽然没有那么多时间研究底层的原理,但因为有了 AI 的加持,捣鼓出一些自己想要的东西还是挺容易的。我已经从「面向 StackOverflow 编程」成功跨越到了「面向 ChatGPT 编程」。
对于很多技术问题,ChatGPT 能够直接给出可以运行的代码,如果出错了,直接贴上错误日志,他还能帮你一起分析错误原因。
举个简单例子,我在最后收尾阶段想在「关于」页面底部显示 App 的版本号,然后:

:在 iOS App 中如何获取并显示当前 App 的版本以及 Build 信息?

ChatGPT: 在 iOS 应用开发中,你可以通过访问应用的 Info.plist 文件来获取当前应用的版本号和构建号,然后将其显示在应用界面上。

以下是在 Swift 中获取并显示应用版本和构建信息的示例代码:

if let infoDict = Bundle.main.infoDictionary {
  // 获取应用版本号
if let appVersion = infoDict["CFBundleShortVersionString"] as? String {
    print("App Version: \(appVersion)")
  }

  // 获取应用构建号
  if let buildNumber = infoDict["CFBundleVersion"] as? String {
    print("Build Number: \(buildNumber)")
  }
}

你可以将上面的代码添加到应用程序的启动代码中,例如在 AppDelegate 的 didFinishLaunchingWithOptions 方法中。> 如果你想在应用界面中显示版本和构建信息,可以将这些值分别赋给文本标签或标签的文本属性。

例如,在一个 UIViewController 中,你可以使用以下代码将版本和构建信息显示在两个标签中:

if let infoDict = Bundle.main.infoDictionary {
 // 获取应用版本号
 if let appVersion = infoDict["CFBundleShortVersionString"] as? String {
   versionLabel.text = "Version: \(appVersion)"
 }

 // 获取应用构建号
 if let buildNumber = infoDict["CFBundleVersion"] as? String {
   buildLabel.text = "Build: \(buildNumber)"
 }
}

请确保将 versionLabel 和 buildLabel 与您应用界面中的标签控件进行连接。

: SwiftUI 中呢?

ChatGPT: 在 SwiftUI 中,你可以通过使用 Bundle 和 Text 视图来获取并显示应用程序的版本号和构建号。下面是获 > 取并显示应用程序版本号和构建号的 SwiftUI 代码示例:

import SwiftUI

struct ContentView: View {
   var body: some View {
       VStack {
           if let appVersion = Bundle.main.infoDictionary?["CFBundleShortVersionString"] as? String {
               Text("App Version: \(appVersion)")
           }
           if let buildNumber = Bundle.main.infoDictionary?["CFBundleVersion"] as? String {
               Text("Build Number: \(buildNumber)")
           }
       }
   }
}

在上述示例中,我们首先检查 Bundle.main.infoDictionary 是否存在,然后分别从中获取应用程序的版本号和构建号。如 > 果成功获取,则使用 Text 视图将它们显示在垂直堆栈中。

你可以将上面的代码复制到你的 SwiftUI 视图中,以便在你的应用程序中显示应用程序版本号和构建号。

你看,直接给我最终的代码,我只需要 Copy/Paste 即可。

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。