- Summery
- Requirements
- Installation
- Technology use in this project
- Gitwokflow
- Documentation
- Extra Information
The Application was written in a Swift 5.3. The App represent The MovieDB.org API and Authentication as Client.
Application contains the three layers which are the Data Layer, Domain Layer or Business Layer and Presentation Layer. The Presnetation layer was architected in MVVM Coordinator.
- Xcode 12.2 or laster.
- Swift 5.3.1 or later.
- iOS 13.0 or later.
-
Step 1: Download or clone the project github repository
$ git clone https://github.com/farshadmb/YouTV-App
-
Step 2: Install Bundler via Running the below command.
$ gem install bundler
Install Cocoapods via
$ gem install cocoapods --user-install
then run
$ pods installcommand. -
Step 3: Open
YouTVDemo.xcworkspacefile. -
Step 4: Run and enjoy the app.
- Reactive Functional Programming
- RxSwift
- Combine
- Clean Code
- Clean Arch Reference
- Modern MVVM
- Coordinator
- SwiftUI
- Localization
- CI Testing
- Swiftlint
- Jazzy for documentation.
- Github Actions workflow.
- SOLID Principles.
- Dependency Injection based on Factory Strategy.
open Docs folder at root folder on master branch.
Note: The latest Documentation is placed on
docsbranch. if you want to see it please checkoutdocsthen open Docs folder.
Please see the Pull Requests in this Repository. Pull Requests
- Dealing With
UICollectionViewCompositionalLayoutto implement Custom Home Layout. - Finding and exploring the best approach to handle multiple section and item view Model.
- Implementing ViewModel for each specific section and item in Home Presentation Layer.
- Building the Swiftlint Checker and Documents Generator with GitHub Action.
- Following the SOLID Principles.
The project took around two weeks to develop and deploy.