xChar
·2 years ago

肝了一个月,这个基于 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 即可。

Loading comments...