Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

jjwon2149/WordQuizDaily

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

69 Commits

Repository files navigation

WordQuizDaily

iOS SwiftUI Localization Status

WordQuizDaily is a SwiftUI vocabulary learning app that helps learners review one Korean word every day, solve short quizzes, and keep a steady study rhythm through reminders.

The project is built as a real App Store product, with localized resources, widget support, push notification integration, and a local learning-word model designed to keep the core study flow available even when remote services are unavailable.

View App Store · Product Page · Project Docs

WordQuizDaily screenshots

Why This Project Stands Out

  • Product-minded iOS implementation: today word, quiz, reminder, widget, and App Store presentation are treated as one user journey.
  • Offline-first learning data: the MVP learning content is stored locally so definitions, examples, romanization, and feedback can load without depending on a server.
  • Localized learner experience: Korean, English, and Japanese resources support a broader learner audience.
  • Maintainable SwiftUI structure: screens, view models, models, network clients, services, helpers, and localization resources are separated by responsibility.
  • Recruiter-friendly documentation: product scope, architecture notes, QA checklist, and implementation boundaries are documented for reviewers.

Core Features

Area Description
Today Word Shows a daily Korean word with learner-friendly definition, romanization, part of speech, difficulty, and example sentence.
Quiz Generates multiple-choice quizzes from the local learning-word repository and gives answer feedback after submission.
Feedback Explains the correct answer with meaning, example, romanization, difficulty, and review hints.
Reminder Supports notification-driven study habits through Firebase Cloud Messaging integration.
Widget Provides a home-screen widget target for quick daily-word exposure.
Localization Maintains Korean, English, and Japanese resource files for app labels and learning flow text.

Tech Stack

  • Language/UI: Swift, SwiftUI
  • Architecture: MVVM-style screen state with ObservableObject view models
  • Data: Local LearningWordRepository sample data and validation rules
  • Networking/Media: Naver image search integration, Kingfisher image loading
  • Notifications/Analytics: Firebase Analytics, Firebase Messaging
  • Monetization: Google Mobile Ads banner integration
  • Distribution Assets: App Store screenshots and GitHub Pages product page

Project Structure

WordQuizDaily/
├── WordQuizDaily/
│ ├── WordQuizDaily/ # Main SwiftUI app target
│ │ ├── Models/ # Learning words, Naver response models
│ │ ├── Views/ # Home, quiz, settings, AdMob views
│ │ ├── Network/ # Naver API clients
│ │ ├── Services/ # FCM service and notification manager
│ │ ├── Helpers/ # Localization and formatting helpers
│ │ └── Resources/Localizations # ko, en, ja strings
│ ├── WordQuizWidget/ # Widget extension
│ └── NotificationServiceExtension/
├── AppStoreScreenshots/ # Store-ready screenshots
├── docs/ # Product page and project documentation
└── tools/ # Screenshot framing utility

Getting Started

Requirements

  • macOS with Xcode 15 or newer
  • iOS 17.0+ deployment target for the main app
  • CocoaPods if you want to install pod-based dependencies
  • Firebase configuration file for local notification/analytics builds

Local Setup

  1. Clone the repository.
  2. Run pod install inside the WordQuizDaily/ directory if the Pods/ support files are not present locally.
  3. Copy WordQuizDaily/WordQuizDaily/Config.xcconfig.example to WordQuizDaily/WordQuizDaily/Config.xcconfig and fill in local API/ad identifiers.
  4. Add a valid GoogleService-Info.plist to the app target when building Firebase-enabled flows.
  5. Open WordQuizDaily/WordQuizDaily.xcworkspace in Xcode.
  6. Confirm signing settings for the app, widget, and notification extension targets.
  7. Build and run the WordQuizDaily scheme on an iOS simulator or device.

GoogleService-Info.plist and local .xcconfig files are intentionally ignored by Git because they contain environment-specific configuration.

Documentation

Product Direction

The next product milestone focuses on foreign Korean learners. The MVP keeps the existing today-word, quiz, and reminder flows, then strengthens them with:

  • English meaning
  • Easy Korean definition
  • Romanization
  • Part of speech
  • Difficulty
  • Korean example sentence
  • English example translation
  • Incorrect-answer feedback

This keeps the learning experience clear, reviewable, and resilient without requiring a new backend during the MVP phase.

Privacy

WordQuizDaily does not require account creation for the core learning flow. The MVP learning content is local-first and does not depend on server-side personal study history.

Contact

Commit Convention

  • feat: new feature
  • fix: bug fix
  • docs: documentation update
  • style: formatting-only change
  • refactor: code refactor
  • test: test update
  • chore: build or maintenance task

About

매일 한국어 단어를 배우고 퀴즈로 복습하는 SwiftUI iOS 앱

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

Contributors

AltStyle によって変換されたページ (->オリジナル) /