Giter Site home page Giter Site logo

iosclientexposure's Introduction

Swift Platforms CocoaPods Compatible Carthage Compatible Swift Package Manager

Exposure

Features

  • Asset search
  • Authentication
  • Playback Entitlement requests
  • Download Entitlement requests
  • EPG discovery
  • Analytics drop-off
  • Server time sync
  • Carousel integration
  • Dynamic customer configuration
  • Content search with autocompletion

Requirements

  • iOS 9.0+

  • tvOS 10.0+

  • Swift 4.0+

  • Xcode 9.0+

  • Framework dependencies

Installation

Swift Package Manager

The Swift Package Manager is a tool for automating the distribution of Swift code and is integrated into the swift compiler. Once you have your Swift package set up, adding iOSClientExposure as a dependency is as easy as adding it to the dependencies value of your Package.swift.

dependencies: [
    .package(url: "https://github.com/EricssonBroadcastServices/iOSClientExposure", from: "3.8.0")
]

Carthage

Carthage is a decentralized dependency manager that builds your dependency graph without interfering with your Xcode project setup. CI integration through fastlane is also available.

Install Carthage through Homebrew by performing the following commands:

$ brew update
$ brew install carthage

Once Carthage has been installed, you need to create a Cartfile which specifies your dependencies. Please consult the artifacts documentation for in-depth information about Cartfiles and the other artifacts created by Carthage.

github "EricssonBroadcastServices/iOSClientExposure"

Running carthage update will fetch your dependencies and place them in /Carthage/Checkouts. You either build the .frameworks and drag them in your Xcode or attach the fetched projects to your Xcode workspace.

Finally, make sure you add the .frameworks to your targets General -> Embedded Binaries section.

CocoaPods

CocoaPods is a dependency manager for Cocoa projects. For usage and installation instructions, visit their website. To integrate iOSClientExposure into your Xcode project using CocoaPods, specify it in your Podfile:

pod 'iOSClientExposure', '~>  3.8.0'

Getting Started

Exposure conveys seamless integration with the EMP Exposure Layer and enables client applications quick access to functionality such as authentication, entitlement requests and EPG.

EMP Exposure Layer has three central concepts of special importance.

  • Environment Describes the customer specific Exposure environment
  • SessionToken Represents an authenticated user session
  • Asset Id A unique identifier for a media asset in the system.

The basic building block of any interaction with the EMP Exposure layer is Environment. This struct details the customer specific information required to make requests.

Besides an Environment, a valid SessionToken is required for accessing most of the functionality. This token is returned upon succesful authentication through the Authenticate endpoint. Several methods exist for dealing with user authentication, listed below.

Authenticate(environment: exposureEnv)
    .login(username: someUser,
           password: somePassword)
           
Authenticate(environment: exposureEnv)
    .anonymous()

Finally, Asset Id refers to unique media assets and may represent items such as tv shows, movies, tv channels or clips. Client applications should use this id when refering to media in the EMP system.

Release Notes

Release specific changes can be found in the CHANGELOG.

Upgrade Guides

The procedure to apply when upgrading from one version to another depends on what solution your client application has chosen to integrate Exposure.

Major changes between releases will be documented with special Upgrade Guides.

Carthage

Updating your dependencies is done by running carthage update with the relevant options, such as --use-submodules, depending on your project setup. For more information regarding dependency management with Carthage please consult their documentation or run carthage help.

iosclientexposure's People

Contributors

udayasri avatar fredriksjoberg avatar viktorgardart avatar fokswang avatar johnnysundblom avatar delarge77 avatar rdktrnwskbsg avatar robert-pelka avatar lucasmaupin avatar olivbraun avatar

Watchers

James Cloos avatar  avatar  avatar Robin Galmin avatar Eric Jakobsson avatar Edmond Dusa avatar Guillaume Prou avatar Johan Spaedtke avatar Quang Vu avatar  avatar Leonard Norberg avatar Erwan Gilles avatar Gabriel Vilén avatar Arnþór Helgi avatar Muhammad Ikram Ul Haq avatar Jenkins avatar Johan Svedberg avatar  avatar  avatar Catalin Soava avatar

iosclientexposure's Issues

Contract Restrictions

EMP specific implementation of the RightsProvider protocol as defined in Player

This means integrating:

  • Timeshift
  • Blackout
  • Session Expiration
  • FF
  • RW
  • Airplay
  • Bitrate
  • etc

Ref: EMP-9976

Carousel Integration

  • Listing all available carousels
  • Carousels by group
  • Individual carousels

Will require new response structs

Relates to RefApp issue

Ref: EMP-9697

Content Search

  • Autocomplete
  • EPG
  • Query
  • Suggestions

Related exposure endpoint responses need to be implemented.

Relates to RefApp issue

Ref: EMP-9822

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.