Ace Citizenship

아내가 미국 시민권 테스트에 합격하도록 돕기 위해 만든 무료 iOS 앱입니다. 그녀는 합격했습니다. 이제 다른 사람들이 같은 꿈을 이루도록 돕고 있습니다.

Ace Citizenship app interface

요약

아내가 미국 귀화 시험 준비를 시작했을 때, 제 기준에 맞는 학습 앱을 찾을 수 없었습니다.

Ace Citizenship은 Duolingo를 효과적으로 만드는 것과 같은 기술인 간격 반복을 사용하여 공식 USCIS 시민 128개 질문 전체를 다룹니다.

앱은 완전히 무료이며 앞으로도 무료입니다. 광고 없음, 구독 없음, 함정 없음.

원점 이야기

저는 Ace Citizenship을 한 명의 청중, 즉 제 아내를 위해 만들었습니다. 그녀는 USCIS 귀화 시험에 합격해야 했고, 저는 그녀가 성공할 수 있는 최고의 도구를 주고 싶었습니다.

시장의 기존 앱들은 실망스러웠습니다. 침입적인 광고가 학습 세션을 방해했습니다. 구독 페이월이 필수 콘텐츠에 대한 접근을 차단했습니다.

저는 더 잘할 수 있다는 것을 알았습니다. 그래서 앱 전체를 처음부터 디자인, 브랜딩, 엔지니어링했습니다.

Ace Citizenship은 프리미엄 가격 없이 프리미엄 경험을 제공합니다. 인터페이스는 깔끔하고 집중적이며 시간을 존중합니다.

Welcome screen
Quiz interface
Completion screen
Settings screen

비주얼 디자인

저는 일관된 3D 비주얼 언어를 만들었습니다. 꿈같고, 낙관적이며, 명확히 미국적인 디자인으로 공부를 덜 지루하게 만듭니다.

모든 일러스트레이션은 100,000개 이상의 이미지 생성을 통해 다듬어진 커스텀 프롬프트를 사용하여 Midjourney에서 생성되었습니다.

dreamofelectric.com에서 더 많은 AI 생성 아트워크를 보세요. dreamofelectric.com.

3D flag
3D Capitol
3D States map

간격 반복

Ace Citizenship의 핵심에는 학습 세션을 최적화하는 간격 반복 알고리즘이 있습니다.

이 증거 기반 접근 방식은 기억력을 향상시키면서 학습 시간을 획기적으로 줄입니다.

앱은 진행 상황을 추적하고 개별 학습 패턴에 적응하여 지능적이고 반응성 있는 개인화된 경험을 제공합니다.

개인화된 학습

일부 USCIS 질문은 거주 주, 의회 대표자 등 특정 상황에 따라 답이 달라집니다. Ace Citizenship은 이러한 질문을 실제 테스트 조건에 맞게 개인화합니다.

이러한 세심한 배려 덕분에 사용자들은 일반적인 답을 암기하는 것이 아니라 시험 당일 필요한 정확한 정보를 배웁니다.

USCIS questions reference

기술 구현

iOS용으로 완전히 SwiftUI로 구축된 Ace Citizenship은 Apple의 최신 프레임워크를 최대한 활용합니다.

아키텍처는 유지 관리하기 쉽고 효율적입니다.

Apple의 Human Interface Guidelines를 따르면 앱이 네이티브하고 친숙하게 느껴집니다.

내부 구조

앱을 효과적으로 만드는 코드베이스의 몇 가지 흥미로운 패턴입니다.

간격 반복 알고리즘

핵심 학습 엔진은 어려워하는 질문을 우선시합니다. 틀리면 해당 카드가 별도의 큐로 이동하여 마스터할 때까지 어려운 내용을 더 자주 보게 됩니다.

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

주별 개인화

앱은 50개 주와 영토의 데이터베이스를 유지하며 현재 119대 의회에 맞게 업데이트됩니다. 주를 선택하면 상원의원, 주지사, 수도에 관한 질문이 실제 테스트 조건에 맞게 개인화됩니다.

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
]

타입 세이프 테마

테마 시스템은 컴파일 시간 안전성을 위해 Swift의 KeyPath 기능을 사용합니다.

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)

그녀는 합격했습니다

제 아내는 Ace Citizenship을 사용하여 귀화 시험을 준비했습니다. 그녀는 합격했습니다. 오늘 그녀는 미국 시민입니다.

그 순간 - 그녀가 귀화 증명서를 들고 USCIS 사무실에서 함께 서 있었을 때 - 개발의 모든 시간이 가치 있게 되었습니다.

Citizenship ceremony materials
충성 서약
Naturalization ceremony
오늘, 저는 미국인입니다

다른 사람들 돕기

아내의 성공 후, Ace Citizenship을 App Store에 출시했습니다. 5점 평점을 받았고, 사용자들은 앱이 시민권 테스트 합격에 도움이 되었다고 일관되게 보고합니다.

한 사용자가 썼습니다: "매일 30분씩 한 달간 이 앱으로 연습해서 합격했어요!" 이런 이야기가 제가 소프트웨어를 만드는 이유를 상기시켜 줍니다.

이 앱은 이민자들이 미국 시민이 되는 목표를 한 번에 하나의 학습 세션으로 달성하도록 계속 돕고 있습니다.

감사

Ace Citizenship은 제가 소프트웨어 구축에서 사랑하는 것을 대표합니다: 소중한 사람을 위해 진짜 문제를 해결하고 그 솔루션을 세상과 공유하는 것.

이 프로젝트를 통해 필요 파악부터 경험 디자인, 모든 코드 라인 작성까지 전체 제품 수명 주기에 걸쳐 작업할 수 있었습니다.

앱은 무료이며 앞으로도 무료입니다. 왜냐하면 사람들이 고향이라고 부르기로 선택한 나라의 시민이 되도록 돕는 것과 같은 일부는 수익보다 더 중요하기 때문입니다.

App Store에서 다운로드 →