Changelog History
-
v1.0.0-rc.6 Changes
October 30, 2019 -
v1.0.0-rc.5 Changes
October 23, 2019โจ Enhancement
โ Add support for SwiftUI compatibility ๐ (#58)
struct HelloMessage: Component, View { ...}struct ContentView: View { var body: some View { ScrollView { VStack { Text("GREET") .font(.title) .padding(.horizontal, 16) HelloMessage("World") .frame(height: 60) .background(Color.red) } } } }
โ Add Group.init without elements (#50)
๐ฅ Breaking Changes
- โ Add
Component.intrinsicContentSize(for:)
to get intrinsic content size for content to infer size of the UIView in SwiftUI (#58)
-
v1.0.0-rc.4 Changes
September 13, 2019โจ Enhancement
- ๐ Fix Package.swift (#49)
-
v1.0.0-rc.3 Changes
September 11, 2019 -
v1.0.0-rc.2 Changes
September 04, 2019๐ This version Carbon supports both Swift 5.0 and Swift 5.1.
๐ฅ Breaking Changes
- 0๏ธโฃ Make
Adapter.alwaysRenderVisibleComponents
true by default. (#37) - โก๏ธ Make
Component.shouldContentUpdate
returns false by default. (#37) โก๏ธ Constraints of type parameters
Adapter
inUITableViewUpdater
is now changed toUITableViewAdapter
. (#37)- class CustomUpdater<A: Adapter & UITableViewDataSource & UITableViewDelegate>: UITableViewUpdater<A> {...}+ class CustomUpdater<A: UITableViewAdapter>: UITableViewUpdater<A> {...}
โก๏ธ Constraints of type parameters
Adapter
inUICollectionViewUpdater
is now changed toUICollectionViewAdapter
. (#37)- class CustomUpdater<A: Adapter & UICollectionViewDataSource & UICollectionViewDelegate>: UICollectionViewUpdater<A> {...}+ class CustomUpdater<A: UITableViewAdapter>: UITableViewUpdater<A> {...}
Adapter.skipReloadComponents
is now obsolete. (#37)0๏ธโฃ Make
referenceSize(in bounds:)
returnsnil
by default. (#38)๐จ Refactor method signature and responsibility of the
UITableViewUpdater/UICollectionViewUpdater
. (#40)
โก๏ธ You can now intercepts arbitrary processes before or after updates, for example:- override func performDifferentialUpdates(target: UITableView, adapter: A, data: [Section], stagedChangeset: StagedDataChangeset, completion: (() -> Void)?) {}+ super.performDifferentialUpdates(target: target, adapter: adapter, stagedChangeset: stagedDataChangeset)
open func performDifferentialUpdates(target: UITableView, adapter: Adapter, stagedChangeset: StagedDataChangeset) { super.performDifferentialUpdates(target: target, adapter: adapter, stagedChangeset: stagedDataChangeset) if stagedChangeset.allSatisfy({ $0.hasChanges }) { let y = target.contentSize.height - (target.bounds.height - target.adjustedContentInset.bottom) let contentOffset = CGPoint(x: target.contentOffset.x, y: y) setContentOffset(contentOffset, animated: true) } }
โ Remove
completion
fromRenderer
. (#40)- renderer.completion {- // do something- }+ renderer.updater.completion {+ // do something+ }
โก๏ธ Change constraints of type parameters Adapter of
UITableViewReloadDataUpdater/UICollectionReloadDataViewUpdater
toUITableViewAdapter/UICollectionViewAdapter
. (#40)๐ Closure style render function and section initializer are now deprecated. (#42)
โจ Enhancement
- 0๏ธโฃ Make
-
v1.0.0-rc.1 Changes
July 29, 2019๐ This version Carbon supports both Swift 5.0 and Swift 5.1.
๐ Features
- โ Add support for use custom container cell/header/footer class (#21)
- โ Add closure style initializer for
Section
(#28) - โ Add a render function with closure style builder (#28)
- โ Add completion closure property to
Renderer
(#28)
๐ฅ Breaking Changes
-
v0.3.0 Changes
May 13, 2019๐ This version Carbon supports both Swift 4.2 and Swift 5.
๐ Features
- Add
isAnimationEnabledWhileScrolling
option for disable animation while scrolling (#17) Initializing
Renderer
without passing the target instance (#18)let renderer = Renderer( adapter: UITableViewAdapter(), updater: UITableViewUpdater() ) renderer.target = tableView
๐ Deprecation
โก๏ธ 1.
Renderer.init(target:adapter:updater:)
is now deprecated. UseRenderer.init(adapter:updater:)
instead (#18) - Add
-
v0.2.0 Changes
March 28, 2019 -
v0.1.0 Changes
February 12, 2019๐ Initial public release of Carbon ๐ด