Show HN: Early Reader – 4세 아이를 위해 만든 무료 오픈 소스 독서 앱
hackernews
|
|
{'이벤트': '📰', '머신러닝/연구': '📰', '하드웨어/반도체': '📰', '취약점/보안': '📰', '기타 AI': '📰', 'AI 딜': '📰', 'AI 모델': '📰', 'AI 서비스': '📰', 'discount': '📰', 'news': '📰', 'review': '📰', 'tip': '📰'} AI 서비스
#ai
#claude
#distar
#mobile app
#open source
#reading app
요약
개발자가 4살 딸의 학습을 위해 직접 제작한 'Early Reader' 앱은 시그프리드 엥겔만의 DISTAR 파닉스 방법론과 간격 반복 알고리즘, AI를 결합하여 유아들의 읽기 학습을 돕습니다. 총 721개의 카드, AI 생성 이미지, 4,000개 이상의 전문 음성 파일이 포함된 커리큘럼을 오프라인으로 무료 이용할 수 있으며 데이터 수집이나 계정 생성이 필요 없습니다. React Native와 Expo로 개발된 이 오픈소스 앱은 유치원생과 홈스쿨링 가정을 위해 연구 기반의 체계적인 교육을 제공하는 것을 목표로 합니다.
왜 중요한가
본문
A mobile app implementing the DISTAR phonics methodology pioneered by Siegfried Engelmann, combined with spaced repetition learning algorithms and a touch of AI. Early Reader is available for free on the App Store: No account required. No data collection. Works completely offline. I built this app for my 4-year-old daughter to help her learn to read before starting first grade. As a parent, I wanted something based on proven research rather than gamified edutainment—and I'm sharing it with other parents who feel the same way. Early Reader is designed for: - 💒 Pre-schoolers (ages 3-6) learning to read - 👪 Parents who want a research-backed approach - 🏠 Homeschooling families - 👩🏫 Tutors and educators using phonics-based instruction This isn't just another flashcard app. Early Reader is built on decades of research: - DISTAR Phonics: A systematic, phonics-first approach developed by Siegfried Engelmann that has been proven effective for teaching children to read - Spaced Repetition (SM-2): The same algorithm used by Anki and SuperMemo, optimized for long-term retention - AI-Powered Cards: Contextual word generation and imagery that adapts to your child's learning journey The app includes a comprehensive curriculum with pre-generated assets: | Category | Cards | Description | |---|---|---| | Letters (Phonemes) | 31 | Individual letter sounds (a, m, s, etc.) | | Digraphs | 12 | Two-letter combinations (sh, th, ch, etc.) | | Words | 590 | Decodable words built from learned phonemes | | Sentences | 88 | Simple sentences for reading practice | | Total Cards | 721 | Complete DISTAR-based curriculum | - 🖼️ 721 images — AI-generated illustrations for each card - 🔊 4,195 audio files — Professional voice recordings including: - Word/phoneme pronunciations - Prompts ("What sound does this make?") - Encouragement ("Great job!") - Hints and retry prompts - Node.js 18+ - Git LFS (for large assets like images and audio files) - Expo CLI ( npm install -g expo-cli ) - iOS Simulator (macOS) or Android Emulator # Clone the repository git clone https://github.com/melvinmt/early-reader-app.git cd early-reader-app # Install Git LFS (if not already installed) # macOS brew install git-lfs # Ubuntu/Debian sudo apt install git-lfs # Initialize Git LFS git lfs install git lfs pull # Install dependencies npm install Note: Speech recognition features require a native build and cannot run in Expo Go. For full functionality, use native development mode (see below). # Start the development server npm start # Or use the init script ./init.sh Then: - Press i for iOS Simulator - Press a for Android Emulator - Scan QR code with Expo Go app on physical device Speech recognition features require a native build. Follow these steps: - Install dependencies and prebuild native code: # Install npm dependencies npm install # Generate native iOS/Android projects # Use WITHOUT --clean to preserve existing Xcode project settings # Only use --clean if you need a completely fresh start npx expo prebuild # For iOS, install CocoaPods dependencies cd ios && pod install && cd .. Important: - Use npx expo prebuild (without--clean ) to preserve your existing Xcode project settings - Only use npx expo prebuild --clean when you need a completely fresh native project (this will overwrite all custom settings) - If you have custom Xcode settings, consider using Expo config plugins to apply them programmatically - Run on a physical device (speech recognition requires a physical device): # For iOS - requires physical device connected npx expo run:ios --device # For Android - can use emulator or physical device npx expo run:android Important Notes: - iOS Simulator does NOT support speech recognition - you must use a physical iOS device - After prebuild, always use npx expo run:ios ornpx expo run:android rather than opening Xcode/Android Studio directly - The app will gracefully degrade if microphone/speech permissions are denied - it will work normally without pronunciation checks The app requests the following permissions: - Microphone: Required for speech recognition to help children practice pronunciation - Speech Recognition: Required to validate pronunciation accuracy Both permissions are optional - the app functions normally if permissions are denied, just without pronunciation validation features. early-reader-app/ ├── app/ # Expo Router screens │ ├── auth/ # Authentication screens │ ├── onboarding/ # Onboarding flow │ └── ... ├── src/ │ ├── components/ # Reusable UI components │ ├── services/ # API and storage services │ │ └── storage/ # SQLite database │ ├── stores/ # Zustand state stores │ └── types/ # TypeScript types ├── scripts/ # Build and generation scripts ├── features.json # Feature tracking └── claude-progress.txt # Development progress log - Framework: React Native + Expo - Navigation: Expo Router - State Management: Zustand - Database: SQLite (local-first) - Animations: React Native Reanimated + Lottie DISTAR (Direct Instruction System for Teaching Arithmetic and Reading) was developed by Siegfried Engelmann in the 1960s. Key principles include: - Explicit phonics instruction - Teaching letter-sound relationships directly - Carefully sequenced lessons - Building skills progressively - Immediate feedback - Correcting errors right away - High engagement - Keeping children actively involved Combined with spaced repetition, this approach maximizes retention while minimizing study time. We welcome contributions! Here's how to get involved: - Fork the repository - Create a feature branch ( git checkout -b feature/amazing-feature ) - Commit your changes ( git commit -m 'Add amazing feature' ) - Push to the branch ( git push origin feature/amazing-feature ) - Open a Pull Request Because this project has a commercial release on the App Store and Google Play, all contributors must sign a Contributor License Agreement (CLA). This grants Instalabs, LLC the right to include your code in our app store releases while keeping your contribution open source for the community. This project is dual-licensed to support both open research and sustainable development: - Community Use: The source code is available under the GNU Affero General Public License v3.0 (AGPLv3). This ensures that the research and educational methodology remain open for everyone to learn from and improve. - Commercial Use: The official builds on the Apple App Store and Google Play are published by Instalabs, LLC under a standard commercial license. Copyright © 2025-2026 Instalabs, LLC