Ace Citizenship

Una aplicacion iOS gratuita que construi para ayudar a mi esposa a pasar su examen de ciudadania estadounidense.

Ace Citizenship app interface

Resumen

Cuando mi esposa comenzo a prepararse para su examen de naturalizacion estadounidense, no pude encontrar una aplicacion de estudio que cumpliera mis estandares.

Ace Citizenship cubre las 128 preguntas civicas oficiales de USCIS usando repeticion espaciada.

La aplicacion es y seguira siendo completamente gratuita. Sin anuncios, sin suscripciones.

La historia del origen

Construi Ace Citizenship para una audiencia de una persona: mi esposa.

Las aplicaciones existentes en el mercado eran decepcionantes.

Sabia que podia hacerlo mejor.

La aplicacion

Ace Citizenship ofrece una experiencia premium sin el precio premium. La interfaz es limpia, enfocada y respetuosa con tu tiempo.

Welcome screen
Quiz interface
Completion screen
Settings screen

Diseno visual

Cree un lenguaje visual 3D cohesivo - sonador, optimista, distintivamente americano.

Cada ilustracion fue generada en Midjourney usando prompts personalizados que he refinado en mas de 100,000 generaciones de imagenes.

Mas de mi arte generado por IA en dreamofelectric.com. dreamofelectric.com.

3D flag
3D Capitol
3D States map

Repeticion espaciada

En el corazon de Ace Citizenship hay un algoritmo de repeticion espaciada que optimiza las sesiones de estudio.

Este enfoque basado en evidencia reduce dramaticamente el tiempo de estudio mientras mejora la retencion.

La aplicacion rastrea el progreso y se adapta a los patrones de aprendizaje individuales.

Aprendizaje personalizado

Algunas preguntas de USCIS tienen respuestas que dependen de tu situacion especifica.

Esta atencion al detalle significa que los usuarios aprenden la informacion exacta que necesitaran el dia del examen.

USCIS questions reference

Implementacion tecnica

Construido completamente en SwiftUI para iOS, Ace Citizenship aprovecha al maximo los frameworks modernos de Apple.

La arquitectura es mantenible y eficiente.

Seguir las Human Interface Guidelines de Apple asegura que la aplicacion se sienta nativa.

Bajo el capo

Algunos patrones interesantes del codigo que hacen la aplicacion efectiva.

Algoritmo de repeticion espaciada

El motor de aprendizaje principal prioriza las preguntas con las que tienes dificultades.

Flashcards.swift
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))
}

Personalizacion especifica del estado

La aplicacion mantiene una base de datos de los 50 estados mas territorios.

Questions.swift
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
]

Temas type-safe

El sistema de temas usa la caracteristica KeyPath de Swift para seguridad en tiempo de compilacion.

Theme.swift
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)

Ella paso

Mi esposa uso Ace Citizenship para prepararse para su examen de naturalizacion. Paso.

Ese momento hizo que cada hora de desarrollo valiera la pena.

Citizenship ceremony materials
El juramento de lealtad
Naturalization ceremony
Hoy soy estadounidense

Ayudando a otros

Despues del exito de mi esposa, publique Ace Citizenship en la App Store. Ha obtenido una calificacion de 5 estrellas.

Un usuario escribio: "Use esta aplicacion para practicar 30 minutos al dia durante un mes y pase!"

La aplicacion continua ayudando a inmigrantes a alcanzar su meta de convertirse en ciudadanos estadounidenses.

Agradecimientos

Ace Citizenship representa lo que amo de construir software.

Este proyecto me permitio trabajar a traves de todo el ciclo de vida del producto.

La aplicacion es y seguira siendo gratuita.

Descargar en App Store →