SDWebImage/librlottie-Xcode

A wrapper for librlottie + Xcode project. Support Carthage && CocoaPods && SwiftPM.


Keywords
carthage, cocoapods, cpp, lottie, rlottie, swiftpm

Documentation

librlottie + Xcode

CI Status Version License Platform Carthage compatible SwiftPM compatible

A wrapper for rlottie + Xcode project. This enables Carthage && SwiftPM support.

This repo also including the CocoaPods's spec file to use rlottie.

Requirements

  • iOS 9
  • macOS 10.10
  • tvOS 9.0
  • watchOS 2.0

Note

The Samsung's rlottie does not currently use any release tag, see: rlottie#159.

  • v0.1.0 use the commit HASH a717479

For iOS and Simulator

The rlottie source code use C++ Thread Local feature. However, iOS use system provided ABI for C++ thread local support but not language side, which works only on iOS 9.0+, and does not support 32-bit i386 Simulator.

This is why we have to limit the min deployment target version on iOS. Learn more here: Why does Apple clang disallow C++11 thread_local when 'official' clang supports it

Installation

Carthage

librlottie is (via this repo) available through Carthage.

github "SDWebImage/librlottie-Xcode"

CocoaPods

librlottie is available through CocoaPods.

pod 'librlottie'

SwiftPM

librlottie is available through Swift Package Manager.

let package = Package(
    dependencies: [
        .package(url: "https://github.com/SDWebImage/librlottie-Xcode", from: "0.1.0")
    ],
    // ...
)

Usage

Use librlottie as you would normally, this is just a repo that adds an Xcode proj.

For Swift Package Manager user, it's recommended to use the modular import instead of C headers.

  • Objective-C
@import librlottie;
// or if you don't use module
#import <rlottie/rlottie_capi.h>
  • Swift
import librlottie

For C++ user

The rlottie umbrella header and modulemap does not contains C++ header rlottie.h, because Swift/Objective-C can not import C++ interface (Objective-C++ can, but with clang module disabled).

If you need the C++ interface, use the public header search path to include, make sure you have disable module as well.

License

librlottie is available under the LGPL License.