Skip to content

AhmedRady2024/NetworkMoviesApp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 

Repository files navigation

Network Movie App

Overview

Movie App is an iOS application designed to provide users with a rich movie experience. Using The Movie Database (TMDB) API, the app showcases a variety of movies, including popular, top-rated, upcoming, and now playing titles. Users can also search for movies by name, view detailed information, and watch trailers directly from YouTube. The app leverages SwiftUI for the user interface, Kingfisher for image handling, Combine for reactive programming, AVKit for video playback, and WebKit for displaying web content.

Features

  • Popular Movies: Browse a list of popular movies.
  • Top-Rated Movies: Discover highly-rated films.
  • Upcoming Movies: Stay updated with upcoming releases.
  • Now Playing Movies: View currently playing movies in theaters.
  • Search: Find movies by name with a powerful search feature.
  • Movie Details: View detailed information about each movie, including release date, rating, and synopsis.
  • Trailers: Watch movie trailers embedded from YouTube.
  • Smooth and responsive UI with Combine and async/await

Screenshots

1-Screen Shot 2-Screen Shot 3-Screen Shot 4-Screen Shot

Requirements

iOS 14.0+ Xcode 12.0+ Swift 5.3+

Setup

1-Clone the repository: <<git clone https://github.com/yourusername/MovieSearchApp.git>> <> 2-Open the project in Xcode: <> 3-Install dependencies: This project uses for image loading. Ensure you have Cocoapods or Swift Package Manager set up in your project. 4-Replace the API key: -Go to The Movie Database and create an account. -Generate an API key. -Replace My-API in SearchViewModel.swift with your TMDB API key. 5-Build and run the app: <<xcodebuild -scheme NetworkMovieApp -destination 'platform=iOS Simulator,name=iPhone 12'>>

Usage

1- Launch the App: Open the Movie App on your device or simulator. 2- Explore Movies: Navigate between tabs to view popular, top-rated, upcoming, and now playing movies. 3- Search for Movies: Use the search feature to find movies by name. 4- View Movie Details: Tap on a movie to see detailed information, including release date, rating, and synopsis. 5- Watch Trailers: Watch movie trailers embedded from YouTube directly within the app.

Code Structure

Models : Movie: Represents a movie object with properties such as id, title, posterPath, etc. MovieDetail: Represents detailed information about a movie.

ViewModels : SearchViewModel: Handles the search logic, debouncing input, and fetching movies from TMDB.

Views: SearchView: Main view with a search bar and a list of movie results. DetailesView: Detailed view for a selected movie. SearchBarView: Custom search bar component.

Utilities

JSONNull: A utility class for handling null values in JSON responses.

Technologies

1- SwiftUI: For building the user interface. 2- Combine: For handling asynchronous data streams and reactive programming. 3- Kingfisher: For efficient image loading and caching. 4- AVKit: For video playback of movie trailers. 5- WebKit: For embedding and displaying web content such as YouTube trailers. 6- TMDB API: For fetching movie data.

Contributing

1-Fork the repository. 2-Create a new branch (git checkout -b feature/your-feature-name). 3-Commit your changes (git commit -am 'Add some feature'). 4-Push to the branch (git push origin feature/your-feature-name). 5-Create a new Pull Request.

Finally : this is a Demo Video for how application works..

NetworkMovies.mp4

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages