Skip to content

znelson/CoreZen

Repository files navigation

CoreZen.framework

Xcode - Build and Analyze

A macOS Cocoa framework made up of useful bits of code from my side projects.

Written by Zach Nelson. See the LICENSE file for license info (it's the MIT license).

Getting Started

FMDB.framework Dependency

CoreZen links against and bundles FMDB.framework. The Xcode project is set up to find FMDB installed using Carthage.

Installation: Run carthage update --platform mac to build Carthage/Build/Mac/FMDB.framework. The CoreZen Xcode project will find it from there.

mpv and libav Dependencies

CoreZen links against and bundles dynamic libraries for libmpv and libav. The Xcode project is set up to find headers and libraries installed using Homebrew.

Installation:

  1. Run brew install mpv ffmpeg to install mpv and libav.
  2. Run Scripts/stage_dependencies.py. This will gather mpv and libav dylibs and headers into Dependencies/lib and Dependencies/include, respectively. The CoreZen Xcode project will find them there.

What's In CoreZen.framework?

1. Preferences

Create dynamic preference windows, inspired by CCNPreferencesWindowController.

2. Foundation Categories

Categories to add functionality to Foundation classes:

3. Domain Data Modeling and Persistence

I. Object Identifiers

ZENIdentifier is an (atomically unique increasing) 64-bit integer identifier and the ZENIdentifiable protocol is for objects with such an identifier.

II. Object Cache

ZENObjectCache is a thread safe object cache for ZENIdentifiable objects, configurable to hold either weak or strong refs to cached objects.

III. Database

Helper classes around FMDB and sqlite3, including:

Note on dependencies: ZENDatabaseQueue and other classes in CoreZen depend on FMDB.framework. See above for installation from Carthage.

IV. Domain Objects

Helper classes to build a domain model, including:

4. Media

Classes to support reading audio and video media files:

  • ZENMediaFile is a Work In Progress. Currently supports only basic media metadata retrieval including: video frame size, media duration, and audio and video codec names.

Note on dependencies: ZENMediaFile and other classes in CoreZen depend on libmpv and libav. See above for installation from Homebrew.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published