Ace Citizenship
Une application iOS gratuite que j'ai construite pour aider ma femme a reussir son test de citoyennete americaine.
Resume
Quand ma femme a commence a preparer son test de naturalisation americaine, je n'ai pas trouve d'application d'etude repondant a mes standards.
Ace Citizenship couvre les 128 questions civiques officielles USCIS en utilisant la repetition espacee.
L'application est et restera completement gratuite. Pas de publicites, pas d'abonnements.
L'histoire des origines
J'ai construit Ace Citizenship pour un public d'une seule personne : ma femme.
Les applications existantes sur le marche etaient decevantes.
Je savais que je pouvais faire mieux.
L'application
Ace Citizenship offre une experience premium sans le prix premium. L'interface est propre, concentree et respecte votre temps.
Design visuel
J'ai cree un langage visuel 3D coherent - reveur, optimiste, distinctement americain.
Chaque illustration a ete generee dans Midjourney en utilisant des prompts personnalises que j'ai affines sur plus de 100 000 generations d'images.
Plus de mon art genere par IA sur dreamofelectric.com. dreamofelectric.com.
Repetition espacee
Au coeur d'Ace Citizenship se trouve un algorithme de repetition espacee qui optimise les sessions d'etude.
Cette approche basee sur les preuves reduit considerablement le temps d'etude tout en ameliorant la retention.
L'application suit les progres et s'adapte aux patterns d'apprentissage individuels.
Apprentissage personnalise
Certaines questions USCIS ont des reponses qui dependent de votre situation specifique.
Cette attention aux details signifie que les utilisateurs apprennent les informations exactes dont ils auront besoin le jour du test.
Implementation technique
Entierement construit en SwiftUI pour iOS, Ace Citizenship tire pleinement parti des frameworks modernes d'Apple.
L'architecture est maintenable et efficace.
Suivre les Human Interface Guidelines d'Apple garantit que l'application se sent native.
Sous le capot
Quelques patterns interessants du codebase qui rendent l'application efficace.
Algorithme de repetition espacee
Le moteur d'apprentissage principal priorise les questions avec lesquelles vous avez des difficultes.
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))
}
Personnalisation specifique a l'etat
L'application maintient une base de donnees de tous les 50 etats plus les territoires.
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
]
Theming type-safe
Le systeme de theming utilise la fonctionnalite KeyPath de Swift pour la securite a la compilation.
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)
Elle a reussi
Ma femme a utilise Ace Citizenship pour preparer son test de naturalisation. Elle a reussi.
Ce moment a rendu chaque heure de developpement utile.
Aider les autres
Apres le succes de ma femme, j'ai publie Ace Citizenship sur l'App Store. Il a obtenu une note de 5 etoiles.
Un utilisateur a ecrit : "J'ai utilise cette application pour m'entrainer 30 minutes par jour pendant un mois et j'ai reussi !"
L'application continue d'aider les immigrants a atteindre leur objectif de devenir citoyens americains.
Remerciements
Ace Citizenship represente ce que j'aime dans la creation de logiciels.
Ce projet m'a permis de travailler sur l'ensemble du cycle de vie du produit.
L'application est et restera gratuite.