The markdown parsing is broken/disabled for release notes. Sorry about that, I'm chasing the source of a crash that's been bringing this website down for the last couple of days.
0.8.0 - Japan
7 years ago
<img src="http://captaingino.com/wp-content/uploads/2016/03/maxresdefault-2.jpg" width="500">
# Changes
### Core
- Add defaults to `completedAction` and `failedAction` in `AsyncAction`
- Fix Plastic issue with frame rounding
- Add ability to mock internal state of `NodeDescription`. See [this issue](https://github.com/BendingSpoons/katana-swift/issues/111) for the the complete description of the feature, and [this PR](https://github.com/BendingSpoons/katana-swift/pull/114) for the implementation
- Refactor Store's action management. The old implementation had issues in the very early stages of the Store. See [this PR](https://github.com/BendingSpoons/katana-swift/pull/120) for more information
- Fix issue with Plastic layout and improve test coverage
### MacOS
- Improve properties of the Button
# Breaking Changes
### Core
- Dependency Container now takes `getState` as parameter in the init
0.7.0 - Iguassu
7 years ago
<img src="http://res.cloudinary.com/www-intelligenttravelsolutions-com/image/upload/v1427917042/DB/SLIDE%20PACKAGES%20DB/iguassu-falls-brazil-03.jpg" width="500">
# Changes
### Core
- Fix animation bug when animating node descriptions with children
- Fix animation bug that led to strange behaviours due to some wrong optimisations
# Breaking Changes
### Core
- [Refactor Side Effects](https://github.com/BendingSpoons/katana-swift/pull/107)
0.6.0 - Milan
7 years ago
<img src="http://www.ilmessaggero.it/photos/HIGH/95/15/1879515_duomomilano.jpg" width="500">
# Changes
### Core
- Ad `shouldUpdate` method to `NodeDescription`. This method can be used to control when a description should be updated. The default implementation of this method checks, using `Equatable` if current and next props / state are the same
- Improve animations performances. Katana now skips useless update when possible
# Breaking Changes
### Core
- Refactor `Action`, `SyncAction` and `AsyncAction`. See [this issue](https://github.com/BendingSpoons/katana-swift/issues/99) for more information
0.5.0 - Argentina
7 years ago
<img src="http://cdn-7.nikon-cdn.com/Images/Learn-Explore/Events/Nikon-Workshops/2015/Easter-Island-Patagonia-trip/Media/Katsu-Tanaka-2014_patagonia_mountains-02.jpg" width="500">
# Changes
### Core
- `scaleValue` is now a public function of `PlasticView`. Thanks @[sroddy](https://github.com/sroddy)
- Implement [Linkable Actions](https://github.com/BendingSpoons/katana-swift/pull/98). Thanks @cipolleschi
### MacOS
- Improve `Button`
- `cornerRadius` can now be customized
- `isEnabled` can now be customized
# Breaking Changes
### Core
- It is not possible to invoke `dispatch` and `update` asynchronously in the lifecyle hooks. This required to change the signatures of the methods by adding the `@escaping` parameter
0.4.0 - Santa Claus
7 years ago
<img src="http://plusquotes.com/images/quotes-img/santa29.png" width="150">
# Changes
### Core
- `Node` now exposes `container`, which is the (platform dependent) native view in which the node is rendered
- Fix documentation and add documentation where was missing
- Add [Lifecycle hooks](https://github.com/BendingSpoons/katana-swift/pull/90)
- Fix random int generation on 32-bit platforms
- Improve codebase style through Swiftlint
### MacOS
- `NSViewCustom` and `NativeButton` are now open classes and can be subclassed
- Improved MacOS support
- Improve MacOS elements
# Breaking Changes
- `renderer` in `AnyNode` is now optional
- Rename `middlewares` to `middleware`
- Middleware is now non-generic, in order to allow reusable middleware (e.g., middleware shipped with libraries)
0.3.0 - MacOS Support 🖥
7 years ago
# Changes
### Katana
- Fix documentation
- Fix cocoapods instructions
- Fix bug that caused crashes in some animations
- Store is now an open class. It is now possible to subclass it for testing purposes
- **Added Support for MacOS** :rocket:
# Breaking Changes
### Katana Elements
- Changed default value of `isUserInteractionEnabled` in `View` from `false` to `true`
### Plastic
#### Layout DSL
We introduced a new DSL for Plastic. It is now possible to express constraints in a more fluent way
``` swift
// before
view.setTop(anotherView.bottom, offset: .scalable(10))
// now
view.top = anotherView.bottom + 10 // Plastic assumes 10 is scalable
// the following are also valid
view.top = anotherView.bottom + .scalable(10)
view.top = anotherView.bottom + .fixed(10)
```
Changes:
- Remove `setTop`, `setBottom`, `setLeft`, `setRight`, `setCenterX` and `setCenterY` methods. Use `+` and `-` as shown in the example above
- Remove confusing init from `Value`, `Size` and `EdgeInsets`
#### Confusing Methods
The previous fill method was confusing. We decided to split the fill/fit management in two separated methods:
- removed `fill(top:left:bottom:right:aspectRatio:insets:)`
- added `fill(top:left:bottom:right:insets:)`
- added `fit(top:left:bottom:aspectRatio:insets:)`
### CHANGELOG
#### Breaking changes
- `static func updateState(action:currentState:)` is now `func updateState(currentState:)`. See [this PR](https://github.com/BendingSpoons/katana-swift/pull/68) for more information. Thanks @Danappelxx
#### Non breaking changes
- Fix Demo (affects `pod try`)
- Minor internal fixes