Displayable
protocol.ComponentView
has been renamed ComponentDisplayable
.CollectionViewAdapter
and TableViewAdapter
.ViewObserver
is a dedicated class.DataSource
protocol.ComponentView.componentControllerClass
not called when creating component.anyViewModel()
getter on ComponentController
.AsyncCommand.completed
closure to escape.ComponentViewController
. Replace it with UIViewController, ComponentController
.ComponentView.bindings(_:viewModel:)
is now generic.Command
now expects data instead than the control itself.UICollectionViewDelegate
.componentLifecycle
from ComponentView
.ComponentViewModel
conform to new Updatable
protocol.router
property on ComponentViewModel
. Use it to navigate btw your controllers.AsyncCommand
.ComponentItemViewModel
with Selectable
and Unselectable
.componentControllerClass
could not be overriden.updateCanExecute
not called into initTL;DR Drastically simplified DataSource protocols for UITableView and UICollectionView.
Now you only have DataSource*
protocols to use.
convert(_: (Element -> NewElement))
for simple conversions.didLoad
to didLoadComponent
. Additionally this method is called everyComponentCollectionView
and ComponentTableView
.ComponentCollectionViewModel
. Methods moved to DataSource
.DataType
typealiasTL;DR Support binding with CollectionView was added. Some important features are missing and will be added in beta 3.
API is globally stable but some changes might happen in further betas.
Nib(nib)
, StoryboardId(id)
File()
to load a template from a source.ItemIdentifier
and SectionIdentifier
now need to conform to RawStringRepresentable
instead of RawStringRepresentable
.RawStringRepresentable
to your String enum declaration to make it automatically conform to the protocol.UICollectionView
and UITableView
by adding a layout
attribute to the later one.tableViewSectionTemplate
.CollectionLayout
and CollectionAutoLayout
as TableViewLayout
and TableViewFlowLayout
.observe(observable:attribute:)
method.Converter
expecting A
with a Optional<A>
.TemplateView
init not marked as public.DataType
not marked as implicitly unwrapped optional.TL;DR Support for binding with TableView was added. Some important features are missing and will be added in beta 2.
ComponentViewModel
instances on UITableView
bindTo
on optional Command
ViewModel
as ComponentViewModel
for consistency with other related protocols (ComponentView
and ComponentController
)Akane is now compatible with Xcode 7.1+.
0.12.0 requires iOS8+ and Swift 2.0+.
Also note that due to a bug into Cocoapods 0.39, Akane is not compatible with Xcode 7.1+.
bindings:viewModel
from ViewComponent
protocol.RelayCommand
or a custom one with Command
protocol.