Skip to content

snehageorge/countries-quest-app

Repository files navigation

CountriesQuest

A SwiftUI-based iOS application that allows users to browse countries, view country details, and play a quiz game to guess the capital cities.

Features

  • Country Listing Screen – Displays a list of countries with search functionality.
  • Country Details Screen – Shows country details such as capital, population, region, and opens the capital location in Apple Maps.
  • Quiz Game – A simple game where the user guesses the capital city of a country from four choices.
  • Localization Support – Base English localization included. Easily extendable to support more languages.
  • Accessibility– Accessibility labels and hints are added to key UI elements to support VoiceOver.
  • Unit Testing – Core logic and services are unit tested.
  • UI Testing – UI-level tests included for main screens and interactions.
  • Light and Dark Mode – Supports both themes.

Tech Stack

  • Language: Swift
  • UI Framework: SwiftUI
  • Architecture: MVVM
  • Networking: URLSession with async/await
  • Dependency Management: SPM (Swift Package Manager)

Libraries Used

  • Kingfisher – For loading the flag image in Country Details.

How to Run

  1. Open CountriesQuest.xcodeproj in Xcode (16 or later).
  2. Select a simulator or a device.
  3. Build and run the app.

Requirements

  • iOS 17.6+
  • Xcode 16+

Development Notes

  • Followed MVVM and protocol-oriented design to keep the codebase scalable and maintainable.
  • Strings and constants are centralised to improve maintainability.
  • Accessibility identifiers are added to key UI elements for testing.
  • Code is modular with clear separation between networking, models, and views.

Known Issues / Future Improvements

  • Offline support is not implemented.
  • UI accessibility support can be improved further.
  • Add pull to refresh in country list.
  • Landscape mode is not fully tested.
  • Some parts of the UI can be visually refined for better responsiveness and polish.

About

This is a SwiftUI-based application that allows users to explore a list of countries.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages