CountriesApp iOS application that retrieves and displays a list of all countries in the world using the REST Countries API.
Install my-CountriesApp via Terminal
git clone https://github.com/cgmajoor/CountriesApp.git
- PureLayout for layout
- Kingfisher for loading images from URL strings
- Lottie for loading and error animation In Xcode -> File -> Packages -> Resolve Package Versions
Screen captures
Original Requirements:
-
The app should fetch country data from the REST Countries API (https://restcountries.com/).
-
Display a list of all countries on the main screen. Each list item should at least display the country name and its flag.
-
Tapping on a country should navigate the user to a detail screen where more information about the country is shown.
-
The detail screen should display additional information about the selected country, such as:
- Country name
- Capital
- Population
- Area
- Region
- Subregion
- Borders (if any)
- Languages spoken
- Currency
-
Implement error handling for network requests and display appropriate error messages to the user if fetching data fails.
-
Implement loading indicators to indicate to the user when data is being fetched.
-
Utilize appropriate design patterns (e.g., MVC, MVVM) and architectural principles to structure the app's codebase.
-
Ensure the app's UI is visually appealing and follows iOS design guidelines.
-
Incorporate unit tests to ensure the stability and reliability of the app.
Bonus:
-
Implement search functionality to allow users to search for specific countries by name or capital city.
-
Add a feature to filter countries by region or subregion.
-
Implement caching mechanisms to store fetched data locally and improve app performance.
-
Provide at least two language translations of the app (e.g., English and Spanish).
Note: Feel free to use any additional libraries or frameworks you deem necessary to accomplish the task efficiently. Make sure to document any dependencies and provide reasoning for their inclusion.