My Exchange App
Currency Exchange and Gold Price Tracker (Clean Architecture)
The Currency Exchange and Gold Price Tracker is a robust program that follows the principles of Clean Architecture to provide users with real-time information and analysis on currency exchange rates and gold prices, specifically tailored for the Swedish Krona (SEK). The program offers multi-language support (Swedish, English, and Arabic) and incorporates three types of error handling (server errors, no internet connection, and no saved data). It also includes dark mode, memorize mode, and automatic language and mode detection to enhance the user experience.
Clean Architecture: The program follows the principles of Clean Architecture, separating the core business logic from external dependencies and infrastructure. This architecture ensures modularity, testability, and maintainability, making it easier to adapt and extend the program’s functionality in the future.
Currency Exchange Rates: The program fetches up-to-date currency exchange rates, focusing on the Swedish Krona, from reliable sources. Following Clean Architecture, this feature is implemented as a use case within the program’s core business logic, making it independent of external services and easily testable.
- Currency Conversion: The program allows users to perform currency conversion, with the Swedish Krona (SEK) always available as the base currency. Users can input the desired amount and select the source and target currencies, including the Swedish Krona. The program will provide the converted value based on the latest exchange rates.
- Gold Price Tracking: Real-time gold prices, specifically in relation to the Swedish Krona, are provided as another use case within the program’s core business logic. By adhering to Clean Architecture principles, this feature remains decoupled from external dependencies, enabling easy modification or replacement of gold price data sources.
- Multi-Language Support: The program supports multiple languages (Swedish, English, and Arabic) to cater to a diverse user base. Clean Architecture ensures that language-related functionalities, such as translations and language selection, are encapsulated within the presentation layer, making them easily adaptable and testable.
Previous Price Display: In case of no internet connection, the program allows users to view previous currency exchange rates and gold prices. This functionality ensures that users have access to historical data, enabling them to make informed decisions even when offline.
Value Update on Scroll Down: The program allows users to update the currency exchange rates and gold prices by simply scrolling down on the screen. This intuitive feature enables users to effortlessly retrieve the latest values without the need for manual refresh or interaction with buttons.
- Currency Search: The program includes a powerful search feature that enables users to search for specific currencies and retrieve detailed information about them. Users can input the currency code or name and obtain relevant data
- Error Handling: The program employs Clean Architecture principles to handle various error scenarios effectively. Server errors, no internet connection, and no saved data are treated as separate error cases, with corresponding use cases and error handling mechanisms in place. Error handling remains separate from the core business logic, promoting maintainability and testability.
- Dark Mode: The program features a dark mode option that provides a visually appealing and comfortable user interface. Following Clean Architecture, this presentation layer feature is decoupled from the core business logic, ensuring flexibility and extensibility.
- Memorize Mode: The program incorporates a memorize mode that allows users to save their preferred settings, such as language preferences.
- Memorize Language: The program incorporates a memorize Language that allows users to save their preferred settings, such as language preferences.
- Language and Mode Detection: The program automatically detects the language preferences of the user’s device and adjusts the program’s interface accordingly. It also detects the device’s mode (light or dark) and aligns its appearance accordingly. Clean Architecture promotes modularity and separation of concerns, enabling easy integration of language and mode detection functionalities within the presentation layer.
By adhering to Clean Architecture principles, the Currency Exchange and Gold Price Tracker program achieves a high level of modularity, testability, and maintainability. This architectural approach allows for seamless extension and modification of features while ensuring a clean separation between core business logic and external dependencies. Users can benefit from real-time currency exchange rates and gold prices, multi-language support, error handling, dark mode, memorize mode, and automatic language and mode detection, all within a well-structured and adaptable program.