GitHub

Overview

KiteKit is an iOS and macOS framework you can embed in your application that allows you to view and play Kite documents (.kite) made with Kite Compositor.

Requirements

  • iOS: 10.0+
  • macOS: 10.12+

KiteKit is written in Swift and currently requires your app to embed the Swift standard libraries. This will only be a concern to you if your app is 100% Objective-C and contains no existing Swift sources.

One other limitation is that being a Swift binary framework, it requires your app to have Whole Module Optimization turned on in the project settings to launch. I'm not 100% what the cause of this is yet, but if you know of any tips on this please let me know.

Getting Started

To use the framework, clone/download this repository and locate the example project for the platform you're targeting. Inside the repo there are three example projects:

  • iOS Simulator – The framework compiled to target the iOS Simularator.
    /iOSKiteKitExample (Simulator)/KiteKit.framework

  • iOS Device – The framework compiled to target arm and arm64 devices.
    /iOSKiteKitExample (Device)/KiteKit.framework

  • macOS – The framework compiled to target macOS.
    /MacKiteKitExample/KiteKitMac.framework

Copy the framework bundle into your own project as shown in the example project. Apple has a helpful guide for embedding frameworks here if you need help with this step.

Loading and Playing a Kite Document

In your UIViewController or NSViewController subclass, you can load and create a KitePresentationViewController to display and play a Kite document.

Step by step

1. Import the KiteKit module in your Swift file

import AVFoundation
import JavaScriptCore
import MobileCoreServices // (iOS only)
import KiteKit

2. Get a URL for your embedded Kite document

let documentURL = Bundle.main.url(forResource: "Heart", withExtension: "kite")

3. Create a KiteDocument object to load the document from the URL

let kiteDocument = KiteDocument(fileURL: documentURL)

4. Create a KitePresentationViewController to control playback of the Kite view

let kitePresentationViewController = KitePresentationViewController(kiteDocument: kiteDocument)!

5. Add the KitePresentationViewController's view to the view hieararchy of your app

self.placeholderView?.addSubview(kitePresentationViewController.view)

6. Play the document

kitePresentationViewController.startPresenting()

All together:

import AVFoundation
import JavaScriptCore
import MobileCoreServices // (iOS only)
import KiteKit
override func viewDidLoad()
{
    super.viewDidLoad()
    // Get a URL to the embedded Kite document 'Heart.kite'
    //
    guard let documentURL = Bundle.main.url(forResource: "Heart", withExtension: "kite") else {
        fatalError("Bundled kite document not found!")
    }
    // Create a KiteDocument object to load the file
    //
    let kiteDocument = KiteDocument(fileURL: documentURL)
    // Create a KitePresentationViewController to present the view
    //
    guard let kitePresentationViewController = KitePresentationViewController(kiteDocument: kiteDocument) else {
        fatalError("Could not create Kite Presentation View Controller")
    }
    // Hold on to a strong reference to the view controller
    //
    self.kiteViewController = kitePresentationViewController
    // Add the KitePresentationView to the view hierarchy
    //
    self.placeholderView?.addSubview(kitePresentationViewController.view)
    // Start the document playback
    //
    self.kiteViewController?.startPresenting()
}

Read the original on github.com ↗