In this app, you can search for the movie you want and view its details.
- Search and display the list of movies you want 🍿.
- Display detailed movie information 🍿.
- Clone the project.
- Go to the repo folder.
- Open the MovieApp.xcodeproj file.
- Wait for SPM to fetch all dependencies.
- generate an API key from The Movie Database (TMDB).
- Save the API key as API_KEY in the Config.xcconfig file.
- Run the app using Command + R.
- Good luck 🎉
- iOS 15.0+
- Xcode 15.x
- Swift 5.x
Note You must be registered on the TMDB site before generating the API key. The app will not work without an API key
- Presenter: It contains all User interface application code
- Domain: Contains business logic and doesn’t depend on any other layer.
- Data: Gets data from remote or local data sources and depend domain layer
- App: It contains the Dependency Injection Container & the Environment.
Presentation Layer & Data Layer both depend on Domain Layer Presentation Layer & Data Layer don’t depend on each other App Layer depends on all of them
This project supports multiple languages.
- [English]
- [Persian]
"Product menu > Scheme > Edit Scheme". You can change the language that your app will launch by choosing it from the "App Language" option
It uses SPM for dependency management and you do not need to install the other third-party management (Swift Package Manager)
- SimpleKeychain : It is a utility for securely storing sensitive data, such as passwords, tokens, or API keys, in the iOS Keychain.
- FActory : Factory is A new approach to Container-Based Dependency Injection for Swift
- ✅ Compile-time safety
- ✅ Laziness
- ✅ Control the lifecycle/scope - Factory provides us with 5 scopes: Singleton, Cached, Shared, Graph, Unique.
- ✅ Using mocks for testing is so easy
Feedback, suggestions, and contributions are welcome. Please use GitHub issues.
Javad arji (j.arji)