David Sinclair, owner and developer of Dejal, has released the following Cocoa/Objective-C code as open source for macOS and iOS.
You are welcome to download and use this code, subject to the License Agreement. Read on for more information.
Looking for a developer for your macOS or iOS project? David may be able to help. With more than a quarter century of commercial Mac programming experience, and nearly a decade on iOS, he brings a rich set of skills to any project. David is willing to consider long- or short-term projects, on an hourly, milestone, or per-job basis, working from his home office near Portland, Oregon. Learn more on the Consulting page.
The Dejal open source code is released under a standard BSD license.
If you want or need to use the code without giving Dejal credit, non-attribution licenses are available for purchase from the Developer Store.
You can use this code completely free of charge, if you give Dejal credit. But if this code helps you solve a problem or saves you time, David always appreciates a donation to support and encourage future open source development.
Alternatively, a fun option is to send David a gift from his Amazon.com Wish List. It's always nice to receive a surprise package in the mail.
Get In Touch!
If you use this code, David wants to hear from you! In the future we might link to apps that use these projects, which would help your Google juice. David can't promise to help with the code, but will try to answer questions about it or licensing. Contact us.
If you find issues or want to request enhancements, please use the issue tracker for each project (hosted on GitHub). Or better yet, fork the code and implement the feature/fix yourself, then submit a pull request.
Keep Up To Date
Preferably use the GitHub repositories rather than zip archives to make it easier to get any updates.
DejalObject is an abstract data model class that can represent subclasses as dictionary or JSON data for saving to disk or over the network.
DejalObject: This is an abstract subclass of NSObject that adds methods to represent the receiver as a dictionary or JSON data, load default values, track changes, enumerate an array of DejalObject instances, and more.
DejalColor: A concrete subclass of DejalObject to represent a color (for macOS or iOS), enabling it to be stored in a DejalObject subclass.
DejalDate: Another concrete subclass to represent a date, primarily so it can automatically be represented as JSON.
DejalInterval: A subclass to represent a time interval or a range of intervals, including an amount and units, with methods to represent the interval or range in various ways, including as human-readable strings (see also the DejalIntervalPicker project for macOS).
DejalFoundationCategories is a collection of Foundation-level categories, to add useful methods to classes like NSArray, NSDictionary, NSString, and others.
NSArray+Dejal: 30+ methods extending NSArray and NSMutableArray, including object matching, reversal, sorting, deep copying, adding and removing.
NSAttributedString+Dejal: 10+ methods extending NSAttributedString and NSMutableAttributedString, including convenience initializers, RTF and font methods.
NSData+Dejal: A couple of methods to make archiving and unarchiving objects slightly more convenient.
NSDate+Dejal: 50+ methods extending NSDate, including convenience initializers, handy date component properties and calculators, JSON date support, string formatting, and relative date output.
NSDictionary+Dejal: 25+ methods extending NSDictionary and NSMutableDictionary, including object matching, scalar support, deep copying, and more.
NSFileManager+Dejal: 15+ methods extending NSFileManager, including convenient file attributes, file renaming, and path building.
NSObject+Dejal: 15+ methods extending the NSObject base class, including key-value conveniences, “equivalent” comparisons, and performSelector methods.
NSString+Dejal: 80+ methods extending NSString and NSMutableString, including scalar value formatting, contains evaluation, comparisons, substring and range utilities, reformatting, checksum and encoding utilities, internet utilities, file path methods, and appending and replacing methods.
NSUserDefaults+Dejal: 15+ methods extending NSUserDefaults, including support for default values, sanitizing values, time intervals, factory settings, and copying preferences.