Ace Citizenship
一款我為幫助妻子通過美國公民身份測試而構建的免費iOS應用。
摘要
當我妻子開始準備美國入籍測試時,我找不到符合我標準的學習應用。
Ace Citizenship使用間隔重複涵蓋所有128道官方USCIS公民問題。
該應用完全免費,並將保持完全免費。
起源故事
我為一位觀眾構建了Ace Citizenship:我的妻子。
市場上現有的應用令人失望。
我知道我可以做得更好。
應用
Ace Citizenship提供高端體驗而無高端價格。介面簡潔、專注,尊重您的時間。
視覺設計
我創造了一種統一的3D視覺語言——夢幻、樂觀、明顯的美國風格——讓學習不再枯燥。
每幅插圖都是使用我在100,000多次圖像生成中完善的自定義提示在Midjourney中生成的。
在dreamofelectric.com查看更多我的AI生成藝術作品。 dreamofelectric.com.
間隔重複
Ace Citizenship的核心是一種優化學習環節的間隔重複算法。
這種基於證據的方法在提高記憶力的同時大大減少了學習時間。
該應用追蹤進度並適應個人學習模式。
個性化學習
一些USCIS問題的答案取決於您的具體情況。
這種對細節的關注意味著用戶在學習測試當天需要的確切資訊。
技術實現
Ace Citizenship完全使用SwiftUI為iOS構建。
架構易於維護且高效。
遵循Apple的Human Interface Guidelines。
內部機制
以下是使應用有效的代碼庫中的一些有趣模式。
間隔重複算法
核心學習引擎優先處理您困難的問題。
func completeCard(correct: Bool) {
if !currentSet.isEmpty {
let card = currentSet.removeFirst()
remainingCards -= 1
if correct {
cards.append(card) // Back to main deck
} else {
incorrectCards.append(card) // Priority requeue
}
}
}
func prepareNextSet() {
// Prioritize missed questions in next round
let incorrectCount = min(incorrectCards.count, 10)
let newCardsCount = 10 - incorrectCount
currentSet = Array(incorrectCards.prefix(incorrectCount))
incorrectCards.removeFirst(incorrectCount)
currentSet += Array(cards.prefix(newCardsCount))
}
州特定個性化
該應用維護著所有50個州及領地的數據庫。
struct StateInfo {
let name: String
let senators: [String]
let governor: String
let capital: String
}
// Updated for 119th Congress (January 2025)
let stateInformation: [String: StateInfo] = [
"California": StateInfo(
name: "California",
senators: ["Adam Schiff", "Alex Padilla"],
governor: "Gavin Newsom",
capital: "Sacramento"
),
// ... all 50 states + territories
]
類型安全主題
主題系統使用Swift的KeyPath功能實現編譯時安全性。
struct Theme {
struct ColorSet {
let background: Color
let surface: Color
let onBackground: Color
let blue: Color
let green: Color
let red: Color
}
static func color(
_ keyPath: KeyPath<ColorSet, Color>,
for colorScheme: ColorScheme
) -> Color {
let colorSet = colorScheme == .dark
? darkMode
: lightMode
return colorSet[keyPath: keyPath]
}
}
// Usage: Theme.color(\.blue, for: colorScheme)
她通過了
我妻子使用Ace Citizenship準備她的入籍測試。她通過了。今天,她是美國公民。
那一刻讓每一小時的開發都值得。
幫助他人
在我妻子成功後,我在App Store發布了Ace Citizenship。它獲得了5星評價。
一位用戶寫道:「我每天用這個應用練習30分鐘,堅持了一個月就通過了!」
該應用繼續幫助移民實現成為美國公民的目標。