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.
- 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.
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.
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() }