Introducing MoveSearch, discovering and exploring movies! With MoveSearch, you can easily search for popular movies. This app fetches the popular movie data from TMDB sources, providing you with accurate and up-to-date information.
Architecture comprises three key components: the Database Data Provider, the Web Data Provider, and the Service layer. The Database Data Provider interacts directly with our local database, efficiently managing local data storage and retrieval. Meanwhile, the Web Data Provider interfaces with external web services, handling data fetching and synchronization with remote servers. Central to our architecture is the Service layer, which serves as the orchestrator of data operations. It encapsulates both the Database and Web Data Providers, providing a unified interface for the ViewModel layer to interact with. This abstraction shields the ViewModel from the complexities of data management, promoting modularity and ease of testing.
Connecting it all together is the ViewModel layer, responsible for mediating between the Service layer and the View. Through reactive bindings and data transformation, the ViewModel fetches data from the Service layer and prepares it for presentation in the View.
This project only has two SPM package dependencies which are also written by myself. I mostly use them to construct POC for ideas. Please feel free to have a look.
Just download the project and let the packages get resolved. And It's ready to build.
- Popular Movie listing with Pagination
- Search
- Details View
- Offline Mode (Shows last Fetched data)
- Online/Offline Indicator
- UI supports both dark and light mode
- Image Caching
- Unit tests
I have added the coverage report which provides valuable insights into the quality and effectiveness of our test suite. By analyzing the coverage report, we can assess which parts of our codebase are adequately tested and identify areas that may require additional testing. I havenot added UITests as you can see coverage are low for UI files.
- Favorite List
- Search via API
- UI Tests
- Localize Strings
- Fetches list for popular movies saves into local database and allow pagination
- Can view details by clicking on each item
- Search results are based on local database
- In Offline Mode it show last fetched datas