Mekal Z

Mekal Z

A programmer running out of the wall.
twitter

Linggua Back Words Beta Freshly Baked

After a month of hard work, the GPT-based vocabulary learning app is finally releasing its beta version. As a programmer, I always get extremely excited whenever I release a new product, it's like giving birth to a baby after 10 months of pregnancy.

Limited Offer: 100 Lifetime VIP Memberships#

First, let me advertise and share the download link. Feel free to try it out and provide feedback. As a token of appreciation, I will be giving lifetime memberships to the first 100 participants in the beta testing.
https://testflight.apple.com/join/8d8ei614
linguatale_appicon-3

About LinguaTale#

The inspiration for this product came from my own need to learn English vocabulary. I have tried many vocabulary learning apps on the market, including BaiCiZhan, ShanBay, MoMo Vocabulary, as well as some relatively niche or individually developed apps like FangKuai Vocabulary, List Vocabulary, and Word Roots and Affixes Vocabulary. After completing two IELTS vocabulary books, I realized that there were still many issues:

  1. Memorizing vocabulary every day is extremely boring.
  2. Many words I learned through vocabulary apps seemed unclear when used in real-life contexts.
  3. Simply memorizing vocabulary only ensures recognition of words, but it's difficult to apply them in actual speaking or writing.
  4. After memorizing a word, I could only remember its basic meaning, and I would forget other forms of the word when encountering them.

With these problems and confusions in mind, one day I had an idea to combine vocabulary learning with reading stories. This way, we can repeatedly encounter the words we need to learn in real-life contexts. After all, reading novels is much more interesting than dry memorization. Compared to traditional vocabulary learning methods, I believe LinguaTale Vocabulary Learning has the following advantages:

  1. Learning vocabulary while reading stories is less boring, and you may not even realize how long you've been reading until you realize you've learned many words.
  2. Words appear repeatedly in multiple chapters, reinforcing memory, and they may appear in different contexts or forms.
  3. The stories are generated based on your own vocabulary learning progress, making it a personalized experience for each individual.

And so, today, after a month of hard work, "LinguaTale Vocabulary Learning" is shining on the stage!

About the Development Experience#

As a programmer, I have become heavily reliant on ChatGPT and various other AI tools for the past six months, especially in the last month.
The image above is the app's icon, which I created using Midjourney.
Additionally, the cover images for the four story templates currently built into the app are also generated using Midjourney. It's worth mentioning that when generating article headers, illustrations, and other elements using Midjourney, it's almost always a one-shot process with a success rate close to 100%.
As for iOS development, I'm still a novice who has only been exposed to it for six months, and I only know SwiftUI. However, for experienced programmers, although they may not have as much time to delve into the underlying principles, it's still relatively easy to create things they want with the help of AI. I have successfully transitioned from "programming with StackOverflow" to "programming with ChatGPT".
For many technical issues, ChatGPT can directly provide runnable code. If there's an error, you can simply paste the error log, and it can help analyze the cause of the error together with you.
As a simple example, during the final stages, I wanted to display the app's version and build information at the bottom of the "About" page, so I asked:

Me: How can I retrieve and display the current app version and build information in an iOS app?

ChatGPT: In iOS app development, you can access the app's Info.plist file to retrieve the current app version and build information, and then display them in the app's interface.

Here's an example code in Swift to retrieve and display the app version and build information:

if let infoDict = Bundle.main.infoDictionary {
  // Retrieve the app version
  if let appVersion = infoDict["CFBundleShortVersionString"] as? String {
    print("App Version: \(appVersion)")
  }

  // Retrieve the app build number
  if let buildNumber = infoDict["CFBundleVersion"] as? String {
    print("Build Number: \(buildNumber)")
  }
}

You can add the above code to the app's startup code, for example, in the didFinishLaunchingWithOptions method of the AppDelegate. If you want to display the version and build information in the app's interface, you can assign these values to the text label or the text property of a label.

For example, in a UIViewController, you can use the following code to display the version and build information in two labels:

if let infoDict = Bundle.main.infoDictionary {
  // Retrieve the app version
  if let appVersion = infoDict["CFBundleShortVersionString"] as? String {
    versionLabel.text = "Version: \(appVersion)"
  }

  // Retrieve the app build number
  if let buildNumber = infoDict["CFBundleVersion"] as? String {
    buildLabel.text = "Build: \(buildNumber)"
  }
}

Make sure to connect versionLabel and buildLabel to the label controls in your app's interface.

Me: What about SwiftUI?

ChatGPT: In SwiftUI, you can retrieve and display the app's version and build information by using the Bundle and Text views. Here's an example SwiftUI code to retrieve and display the app's version and build information:

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)")
      }
    }
  }
}

In the above example, we first check if Bundle.main.infoDictionary exists, and then retrieve the app's version and build number from it. If successful, we use the Text view to display them in a vertical stack.

You can copy the above code into your SwiftUI view to display the app's version and build number in your application.

Loading...
Ownership of this post data is guaranteed by blockchain and smart contracts to the creator alone.