A SwiftUI-based iOS application that allows users to browse countries, view country details, and play a quiz game to guess the capital cities.
- 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.
- Language: Swift
- UI Framework: SwiftUI
- Architecture: MVVM
- Networking: URLSession with async/await
- Dependency Management: SPM (Swift Package Manager)
- Kingfisher – For loading the flag image in Country Details.
- Open
CountriesQuest.xcodeprojin Xcode (16 or later). - Select a simulator or a device.
- Build and run the app.
- iOS 17.6+
- Xcode 16+
- 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.
- 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.
