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 comenzó a prepararse para su examen de naturalización estadounidense, no pude encontrar una aplicación de estudio que cumpliera con mis estándares. La mayoría estaban repletas de anuncios, utilizaban contenido obsoleto o ignoraban técnicas de aprendizaje comprobadas. Entonces construí uno.

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 fueron decepcionantes. Los anuncios intrusivos interrumpieron las sesiones de estudio. Los muros de pago de suscripción bloquearon el acceso a contenido esencial. El diseño parecía una ocurrencia tardía.

Sabía que podía hacerlo mejor. Así que diseñé, puse marca y diseñé toda la aplicación desde cero: un trabajo de amor que combinó mi experiencia en diseño de productos con mi pasión por crear software útil.

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 máximo los marcos modernos de Apple. La aplicación utiliza SwiftData para la persistencia local, lo que garantiza la sincronización del progreso entre dispositivos a través de iCloud sin necesidad de cuentas de usuario.

La arquitectura es mantenible y eficiente. El banco de preguntas se actualiza sin problemas cuando USCIS revisa su lista oficial y el motor de repetición espaciada se ejecuta completamente en el dispositivo para obtener comentarios instantáneos.

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

Después del éxito de mi esposa, publiqué Ace Citizenship en la App Store. Obtuvo una calificación de 5 estrellas y los usuarios informan constantemente que la aplicación les ayudó a aprobar su examen de ciudadanía.

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 aplicación es y seguirá siendo gratuita. Porque algunas cosas, como ayudar a las personas a convertirse en ciudadanos del país que han elegido llamar hogar, son más importantes que los ingresos.

Descargar en App Store →