{"id":13693999,"url":"https://github.com/DeluxeAlonso/UpcomingMovies","last_synced_at":"2025-05-03T01:31:02.147Z","repository":{"id":37389367,"uuid":"164586730","full_name":"DeluxeAlonso/UpcomingMovies","owner":"DeluxeAlonso","description":"Movies app written in Swift 5 using the TMDb API and demonstrating Clean Architecture, Dependency Injection, MVVM and Coordinators.","archived":false,"fork":false,"pushed_at":"2024-04-12T04:31:37.000Z","size":64707,"stargazers_count":514,"open_issues_count":0,"forks_count":66,"subscribers_count":7,"default_branch":"development","last_synced_at":"2024-04-12T13:24:55.430Z","etag":null,"topics":["accesibility","coordinator-pattern","coredata","dark-mode","dependency-injection","dependency-injection-container","fastlane","ios","ios-app","landscape","mvvm","portrait","storyboards","swift","swinject","themoviedb","themoviedb-api","uikit","voice-over","widgetkit"],"latest_commit_sha":null,"homepage":"","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DeluxeAlonso.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2019-01-08T07:10:27.000Z","updated_at":"2024-04-15T07:00:29.434Z","dependencies_parsed_at":"2024-04-15T07:10:54.876Z","dependency_job_id":null,"html_url":"https://github.com/DeluxeAlonso/UpcomingMovies","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DeluxeAlonso%2FUpcomingMovies","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DeluxeAlonso%2FUpcomingMovies/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DeluxeAlonso%2FUpcomingMovies/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DeluxeAlonso%2FUpcomingMovies/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DeluxeAlonso","download_url":"https://codeload.github.com/DeluxeAlonso/UpcomingMovies/tar.gz/refs/heads/development","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252130366,"owners_count":21699077,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["accesibility","coordinator-pattern","coredata","dark-mode","dependency-injection","dependency-injection-container","fastlane","ios","ios-app","landscape","mvvm","portrait","storyboards","swift","swinject","themoviedb","themoviedb-api","uikit","voice-over","widgetkit"],"created_at":"2024-08-02T17:01:22.117Z","updated_at":"2025-05-03T01:30:59.301Z","avatar_url":"https://github.com/DeluxeAlonso.png","language":"Swift","funding_links":[],"categories":["Media"],"sub_categories":["Content"],"readme":"# Upcoming Movies App\n\n[![License](https://img.shields.io/badge/license-MIT-blue)]()\n[![Platform](https://img.shields.io/badge/platform-iOS-violet)]()\n[![Swift 5](https://img.shields.io/badge/Swift-5-orange.svg?style=flat)](https://developer.apple.com/swift/)\n[![codecov](https://codecov.io/gh/DeluxeAlonso/UpcomingMovies/graph/badge.svg?token=WlD3VVKP1p)](https://codecov.io/gh/DeluxeAlonso/UpcomingMovies)\n\nMovies app written in Swift 5 using the TMDb API and demonstrating Clean Architecture, Dependency Injection, MVVM and Coordinators.\n\n## Demo\n\n\u003cimg src=\"Demo.gif\" width=\"200\" height=\"433\" /\u003e\n\n## Screenshots\n\n\u003cimg src=\"Screenshots/Home.png\" width=200 height=433\u003e \u003cimg src=\"Screenshots/Detail.png\" width=200 height=433\u003e\n\u003cimg src=\"Screenshots/Search.png\" width=200 height=433\u003e \u003cimg src=\"Screenshots/SearchResult.png\" width=200 height=433\u003e\n\u003cimg src=\"Screenshots/Reviews.png\" width=200 height=433\u003e \u003cimg src=\"Screenshots/Videos.png\" width=200 height=433\u003e\n\u003cimg src=\"Screenshots/Credits.png\" width=200 height=433\u003e \u003cimg src=\"Screenshots/Favorites.png\" width=200 height=433\u003e\n\u003cimg src=\"Screenshots/SignIn.png\" width=200 height=433\u003e \u003cimg src=\"Screenshots/Profile.png\" width=200 height=433\u003e\n\u003cimg src=\"Screenshots/CustomLists.png\" width=200 height=433\u003e \u003cimg src=\"Screenshots/CustomListDetail.png\" width=200 height=433\u003e\n\u003cimg src=\"Screenshots/TodayExtension.png\" width=200 height=433\u003e \u003cimg src=\"Screenshots/Widgets/Small/Upcoming.png\" width=200 height=433\u003e \n\u003cimg src=\"Screenshots/Widgets/Small/Search.png\" width=200 height=433\u003e\n\n## How to run\n\n### Requirements\n\n1. Xcode 14.0+\n2. Cocoapods 1.9.0+\n3. Fastlane 2.1.0+ (only needed if you want to run the unit tests and swift lint scans via the CLI).\n\n### Getting started\n\n1. Clone this repository.\n2. Via the CLI, go to the root folder of the project where Podfile is located and run `pod install`.\n3. Open the workspace file and you are ready to go.\n\n*Note: you can run the tests either using `CMD+U` on Xcode or running `fastlane tests` via the CLI.* \n\n## First-party libraries\n\n### DLProgressHUD (https://github.com/DeluxeAlonso/DLProgressHUD)\nLightweight Progress HUD implementation for iOS.\n\n## Third-party libraries\n\n### Kingfisher (https://github.com/onevcat/Kingfisher)\nUsed for downloading and caching images. In the app, it is used to show the poster and backdrop image of the movie.\n\n### CollectionViewSlantedLayout (https://github.com/yacir/CollectionViewSlantedLayout)\nCustom UICollectionViewLayout to display slanted content. In the app, it is used to present the list of favorite movies.\n\n### KeychainSwift (https://github.com/evgenyneu/keychain-swift)\nHelper functions for saving text in Keychain securely for iOS, OS X, tvOS and watchOS. In the app, it is used to save the Session Id and Account Id of the signed in user.\n\n### SwiftLint (https://github.com/realm/SwiftLint)\nA tool to enforce Swift style and conventions.\n\n### Swinject (https://github.com/Swinject/Swinject)\nDependency injection framework for Swift.\n\n## Contributing\n\nFeel free to open an issue or submit a pull request if you have any improvement or feedback.\n\n## Author\n\nAlonso Alvarez, alonso.alvarez.dev@gmail.com\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FDeluxeAlonso%2FUpcomingMovies","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FDeluxeAlonso%2FUpcomingMovies","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FDeluxeAlonso%2FUpcomingMovies/lists"}