Releases: orchetect/TimecodeKit
Releases · orchetect/TimecodeKit
2.3.2
Fixes
Timecode
: Adjusted ordering for static UT Type constants, which will now work as expected with pasteboard and drag/drog operationsTimecodeField
: Fixed potential bug in component focus navigation
New
TimecodeField
- Added init providing bindings to components and each individual timecode property
- Added
timecodeFieldInputRejectionFeedback
view modifier - Added
timecodeFieldPastePolicy
view modifier - Added
pulse
input rejection animation style in addition to defaultshake
Improvements
TimecodeField
- Internal refactors to enable unit testing
- Refined hardware keyboard input support on all platforms
TimecodeField
/TimecodeText
: Resolved type ambiguity issue with some view modifiersAttributedString
/NSAttributedString
: added additional style parameters for consistency and resolved some formatting issues
Maintenance
- Updated docs
- Updated example projects
- Updated unit tests
2.3.1
New
Timecode.StringFormat
: Added alwaysShowDays option
Changes
Timecode
: RenamedverboseDescription
property tostringValueVerbose
Timecode.StringFormat
: Deprecated redundantshowSubFrames
static constructorTimecodeField
/TimecodeText
: Changed style view modifiers to takeShapeStyle
instead ofColor
Fixes
TimecodeField
: Improved handling of keyboard input on iOS
Maintenance
- Updated docs
2.3.0
Important
This update bumps minimum requirements for compilation to Xcode 16.0 / Swift 5.9
Major Update Summary
- Fully updated for Swift 6 strict concurrency compatibility
- Restructured library
- 1 umbrella module (TimecodeKit) which imports the entire library and all submoduels
- 3 submodules (
TimecodeKitCore
,TimecodeKitAV
,TimecodeKitUI
) which may each be discretely imported
- Added two new extremely polished and versatile multiplatform SwiftUI controls:
TimecodeField
andTimecodeText
- Added 3 brand new in-depth multiplatform example projects
- Timecode Math: demonstrates basic math
- Timecode UI: demonstrates the new SwiftUI controls available and all of their options
- Movie Timecode: demonstrates reading and writing timecode tracks to QuickTime movie files
- Online docc documentation has been overhauled and now includes docs for all package modules
Detailed Release Notes
TimecodeKitCore
Timecode
- Added
isValid
computed property - Implemented more consistent
Equatable
andHashable
behavior - Renamed
propertiesForTimecodeString
method parameters topropertiesForString
- Added
isWithinValidComponentDigitCounts
property - Refactored
invalidComponents
static methods asTimecode.Components
instance methods - Refactored
stringValueValidated
method asnsAttributedString
, moved to TimecodeKitUI target - Added missing math methods (
add
,adding
,subtract
,subtracting
) for new timecode source value types TextFormatter
- Moved to TimecodeKitUI module
- Renamed
validationAttributes
property toinvalidAttributes
- Added
Timecode.Component
- Added
next(excluding:)
andprevious(excluding:)
methods - Added
first(excluding:)
andlast(excluding:)
methods - Added
numberOfDigits(at:)
method - Added suite of name properties
- Added
Timecode.Components
- Added
init(_ dictionary:)
anddictionary
property (get/set) - Added
init(_ array:)
andarray
property (get/set) - Added
Sequence
conformance to iterate on component values - Added
isWithinValidDigitCount(at:base:)
method
- Added
Timecode.SubFramesBase
:- Added
stringValueVerbose
property - Added
numberOfDigits
property
- Added
- Added new
random
timecode value source String
: RemovedtimecodeFrameRate
public category property
TimecodeKitUI
- SwiftUI Views
- Added new
TimecodeField
SwiftUI view for user-interactive timecode entry Timecode
: RefactoredstringValueValidatedText()
as a new SwiftUITimecodeText
view- Added view modifiers usable on
TimecodeField
andTimecodeText
- Added new
@TimecodeState
SwiftUI property wrapper for storing aTimecode
instance in view
- Added new
AttributedString
- Added
init(_ timecode:format:separatorStyle:validationStyle:)
overload
- Added
Maintenance
- Documentation overhaul
- Unit tests updated
- Minor codebase improvements
2.2.0
Important
This bumps the minimum requirement for AVFoundation
methods to macOS 12, iOS 15, tvOS 15, watchOS 8.
The requirements are only bumped for AVFoundation-specific methods. The core TimecodeKit functionality requirements remain the same as before.
Improvements
- Modernized the library: Migrated all
AVAsset
andAVAssetTrack
methods to Swift Concurrency
Added
Timecode.StringFormat
: AddedIdentifiable
andSendable
conformancesTimecode
: AddedUTType
static constantsTimecode
: AddedTransferable
conformance (conditionally available on supported platform versions)Timecode
: AddedNSItemProvider
encoding and decoding methods
Maintenance
- Updated docs with fixes and usage guide for the newly-added
UTType
/Transferable
/NSItemProvider
features - Improved unit test performance for some slow tests
2.1.0
2.0.11
2.0.10
2.0.9
2.0.8
Added
TimecodeInterval
: Addedinit(realTime: TimeInterval)
Fraction
: AddedSendable
conformanceTimecode.Properties
: AddedSendable
conformanceTimecode.UpperLimit
: AddedSendable
conformance
Improvements
Fraction
: ChangedEquatable
behavior to compare reduced values and not literal valuesFraction
:init(fcpxmlString:)
no longer reduces fraction implicitlyFraction
:fcpxmlStringValue
property no longer reduces fraction implicitly