Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
sageseid authored Jun 15, 2022
1 parent 84479f7 commit f811ba9
Showing 1 changed file with 39 additions and 10 deletions.
49 changes: 39 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,25 +1,54 @@
# Movie-DB-SwiftUI
The app is built using the MVVM + RxSwift architecture with offline support via coredata persistant storage. The app fetches movies and movie details from the TMDB database. As of now only part of the app has been build, the following features and pages will be added later on.
# Flicks
<img src="https://img.shields.io/badge/status-Active-green" height="20"> <img src="https://img.shields.io/github/issues/adumrewal/tmdb-ios-app" height="20"> <img src="https://img.shields.io/github/stars/adumrewal/tmdb-ios-app" height="20"> <img src="https://img.shields.io/github/license/adumrewal/tmdb-ios-app" height="20"> <img src="https://img.shields.io/badge/architecture-MVVM-yellow" height="20"> <img src="https://img.shields.io/badge/language-Swift-yellow" height="20">

The app is built using the MVVM + Combine architecture with offline support via coredata persistant storage. The app fetches movies and movie details from the TMDB database. As of now only part of the app has been build, the following features and pages will be added later on.

The Movie Database (TMDb) iOS App in Swift - https://developers.themoviedb.org/3/getting-started/introduction


## Technical specs
- Language: Swift
- Networking: URLSession
- DB Store: CoreData
- Architecture: MVVM
- Pagination
- ViewModelsfor storing UI state
- Protocols for Movie list views
- Custom Built Image Loader for image fetching and caching
- Swift standard coding/decoding for custom objects

## Features
- Now Playing tab
- Popular tab
- Top Rated tab
- Upcoming tab
- Movie Detail view
- App works offline and saves previous responses in DB (using Core Data)
- Pagination - fixes required
- Search Tab - not implemented
- Fav Tab - not implemented

## TODO:

- [ ] Pull to refresh in LazyVStack.
- [x] Movie Details page.
- [ ] Unit testing of view models.
- [ ] Unit testing of store class.
- [x] Rewrite network manager and store classes to utilize combine.
- [x] Monitoring network connection and refreshing UI.
- [ ] Implement pagination fixes
- [ ] Add a favourite tab
- [ ] Unit testing of view models.
- [ ] Unit testing of service class.

## Installation

The app relies on three external libraries,
Kingfisher - For loading images
Reachability - For monitoring network availabilty change
SwiftUIX - For UI components missing in SwiftUI
The app relies on no external libraries,
- Clone repo (pod files are included)
- Open `Flicks.xcodeproj` in XCode
- Choose simulator/device of choice
- Clean Build Folder
- Click on Run

Funtionality
## MoviesList

The page by default loads the popular movies from the TMDB database and caches it to coredata for offline usage, when the app is offline an bar is show to indicate that the current movie data is cached data. Using network monitoring if there is nodata the app reload the movies list.

## MovieDetails
Expand Down

0 comments on commit f811ba9

Please sign in to comment.