Skip to content

chickdan/TMDb

This branch is 35 commits behind adamayoung/TMDb:main.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

c8158b1 · Jun 12, 2024
Jan 15, 2024
May 22, 2024
Jun 12, 2024
Jun 12, 2024
Mar 27, 2024
Jul 28, 2023
Apr 3, 2024
Jul 28, 2023
Jan 15, 2024
Jan 17, 2024
Apr 13, 2023
Jul 28, 2023
Mar 30, 2020
May 15, 2024
Jan 15, 2024
May 22, 2024

Repository files navigation

TMDb - The Movie Database

CI Integration CodeQL Documentation codecov

A Swift Package for The Movie Database (TMDb) https://www.themoviedb.org

Requirements

  • Swift 5.9+
  • OS
    • macOS 13+
    • iOS 16+
    • watchOS 9+
    • tvOS 16+
    • visionOS 1+
    • Windows
    • Linux

Installation

Add the TMDb package as a dependency to your Package.swift file, and add it as a dependency to your target.

// swift-tools-version:5.9

import PackageDescription

let package = Package(
  name: "MyProject",

  dependencies: [
    .package(url: "https://github.com/adamayoung/TMDb.git", from: "13.0.0")
  ],

  targets: [
    .target(name: "MyProject", dependencies: ["TMDb"])
  ]
)

Xcode project

Add the TMDb package to your Project's Package dependencies.

Setup

Get an API Key

Create an API key from The Movie Database web site https://www.themoviedb.org/documentation/api.

Quick Start

let tmdbClient = TMDbClient(apiKey: "<your-tmdb-api-key>")

let moviesToDiscover = try await tmdbClient.discover.movies().results
let fightClub = try await tmdbClient.movies.details(forMovie: 550)

Documentation

Documentation and examples of usage can be found at https://adamayoung.github.io/TMDb/documentation/tmdb/

Development

Prerequisites

Install homebrew and the follow formulae

brew install swiftlint swiftformat markdownlint xcbeautify

Before submitting a PR

Unit and Integration Tests

Ensure all new code is covered by unit tests. If any new methods are added to services that make calls to TMDb API endpoints, ensure there are integration tests covering these.

Coding Style

Coding style is enforced by swiftlint and swiftformat.

Use the following command to lint the codebase:

make lint

To format the codebase use:

make format

DocC Documentation

Ensure all public classes, structs, properties and methods are commented

The DocC documentation can be built and hosted locally by

make preview-docs

See DocC | Apple Developer Documentation for more details.

CI Checks

Before submitting a PR, ensure all CI checks will pass:

make ci

CI checks are made up of the follow tasks:

make lint
make lint-markddown
make test
make test-ios
make test-watchos
make test-tvos
make test-visionos
make test-linux
make integration-test
make build-release
make build-docs

In order to run integration tests the following environment variables need to be set.

  • TMDB_API_KEY - Your TMDb API key
  • TMDB_USERNAME - Your TMDb username
  • TMDB_PASSWORD - Your TMDB password

If these environment variables aren't set then integration tests are skipped when not using make.

Running unit tests on Linux requires Docker to be running.

References

License

This library is licensed under the Apache License 2.0. See LICENSE for details.

Releases

No releases published

Packages

No packages published

Languages

  • Swift 98.0%
  • Markdown 1.6%
  • Makefile 0.4%