FaveMovies is an iOS application for discovering popular movies from The Movie Database. It uses a modular architecture with a network layer powered by Moya and maps responses into Swift models with ObjectMapper.
- Fetches movie lists and details from the TMDB API through a shared API manager
- Infinite scrolling and pull-to-refresh on the movie list
- Skeleton loading placeholders while data is loading
- Detailed movie view with images, genres, language, synopsis and a booking link
- Xcode 11 or later
- iOS 13.0+
- CocoaPods
- Clone the repository:
git clone <repository-url> cd FaveMovies
- Install dependencies:
pod install
- Open
FaveMovies.xcworkspacein Xcode. - Build and run the app on a simulator or device.
The TMDB API key is defined in AppConstants.swift and can be replaced if needed.
Application– Application entry points and configuration.Models– Data models for movies and responses.Network–APIManagerandAPIProviderfor interacting with the TMDB API.Stories– UI modules for the movie list and movie detail screens.Storyboards– Interface Builder storyboards.Utilities– Constants and helper extensions.
Dependencies are managed with CocoaPods and include:
- Moya
- ObjectMapper
- SkeletonView
- ReachabilitySwift
- SDWebImage
- UIScrollView-InfiniteScroll
- AMRefresher
Run the test suite with Xcode or from the command line:
xcodebuild test -workspace FaveMovies.xcworkspace -scheme FaveMovies -destination 'platform=iOS Simulator,name=iPhone 11'This project is provided as-is for educational purposes.