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 即可。

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。