- Update example project to Swift 4 (#99)
- Update to latest libyaml (#98)
- Fix warnings (#97)
- Update to Xcode 9.1 (#96)
- Fix memory leaks (#95)
- Disable code flow instrumentation build setting (
GCC_INSTRUMENT_PROGRAM_FLOW_ARCS
)
- Speed up theme source observation with deep source directories and theme hierarchies (#91)
- Fixes an issue that could cause some classes to not resolve superclass properties (#90)
- Project updates for Xcode 8 (#89)
- Fix angle bracet issue when included via CocoaPods (#82)
- Migrate from gcov to profdata (#87)
- Fixes an issue that could cause an
EXC_BAD_ACCESS
when an error occurred while creating a theme (#81) - Fixes an issue where multiple inter-theme constant references could fail to resolve by recursively resolving constant references (#82)
- The Motif CLI now uses nullability annotations and modular imports in generated Objective-C symbols files (#76)
- Migrates to
NSError
s to communicate theme application failure in place of runtime exceptions.applyClassWithName:toObject:
is nowapplyClassWithName:to:error:
and applier blocks and value transformers are expected to populate a pass-by-referenceNSError
in the case of failure. (#67) - Applying the same theme class twice in a row does not perform the work of applying twice. This is helpful in the context of reusable views where performance is critical. (#70)
- Adds support for Swift symbol output from the Motif CLI by passing the
-s
or--swift
flag. (#56) - Fixes a logic error that could cause the Motif CLI to display an error when there wasn't one when generating theme files. (#57)
- Adds annotations for Obj-C lightweight generics. (#60)
- Removes Example project's dependency on Masonry in place of
UIStackView
. (#61)
- Mapped constant values are now cached to prevent unnecessary overhead of requesting them on each access. (#75)
- Codebase cleanup (#62, #63, #64, #65, #68, #69, #71, #72, #73)
- Fixes for Xcode 7 and iOS 9 (thanks @ekurutepe!) (#51, #52, #53, #54)
- Simplify Swift example project (#49)
- Adds support for YAML in addition to JSON as a much more human-friendly way of writing your theme files. See the README for some examples (#38)
- Of course, while YAML is now the recommended way of writing theme files, JSON will still work
- Adds a class method to
NSValueTransformer
to enable easy registration of Motif value transformer subclasses without having to declare a new interface & implementation (#28) - Removes the need specify value transformer names as part of applier registration (#43)
- Adds default value transformers for the following: (#42)
- Creating
UIEdgeInsets
from an array, dictionary, or number in a theme file - Creating
CGSize
from an array, dictionary, or number in a theme file - Creating
CGPoint
from an array, dictionary, or number in a theme file - Creating
UIOffset
from an array, dictionary, or number in a theme file
- Creating
- Removes old string value transformers in favor of the above
- Adds a keyword applier registration method for easily specifying enums as strings in themes (#31)
- Fixes a YAML number parsing bug (thanks @jlawton!) (#44)
- Removes backwards-compatible nullability annotations as Xcode 6.3+ is standard now. (#40)
- Uses modular imports in headers (#32)
- Re-throws non-NSUndefinedKeyException exceptions when applying classes (#30)
- Handles duplicate appliers with different classes (#29)
- Inlines applier blocks to work around rdar://20723086 (#37)
- Prevents Carthage from building the tests as part of build 3cc0695
- Overrides missing designated initializer (#46)
- Catch theme class application exceptions when live reloading themes
- Improve theme class application exception copy to better communicate ways to resolve issue
- Vastly improve documentation throughout Motif
- Remove unused file MTFThemeHierarchy.h
- Add tests to screen brightness theme applier
- Error when a theme class' superclass is self-referential or invalid
- Add live reloading dynamic theme applier, see the section in the README for documentation
- Remove unused git submodules from repo
- Add warning to screen brightness example when run on simulator
- Ensure that a theme class reference is not applied to a theme class property
- Fix compilation errors when integrated with an Objective-C++ project
- Suggest
load
instead ofinitialize
in Objective-C, due to initialize being called multiple times in categories, which could lead to duplicate appliers being registered
- Initial release