Tokamak/CHANGELOG.md

16 KiB

0.4.0 (30 September 2020)

This is mainly a bugfix and compatibility release with a small feature addition. Namely, Slider view is introduced in the DOM renderer, and binding updates for SVG elements are working now. During this development cycle efforts of our team were devoted to recently released JavaScriptKit 0.7 and carton 0.6. Both of those releases are pretty big updates that improve developer experience significantly, and this version of Tokamak requires those as minimum versions.

Many thanks to @j-f1 and @kateinoigakukun for their contributions to these updates!

Closed issues:

  • HTML + Binding (#278)

Merged pull requests:

0.3.0 (19 August 2020)

This release improves compatibility with the SwiftUI API and fixes bugs in our WebAssembly/DOM renderer, included but not limited to:

  • support for App/Scene lifecycle;
  • ColorScheme detection and environment setting;
  • dark mode styles;
  • @StateObject property wrapper implementation;
  • SidebarListStyle, ButtonStyle, GeometryProxy types;
  • NavigationView and GeometryReader views.

Additionally, new TokamakStaticHTML renderer was added that supports rendering stateless views into static HTML that doesn't include any JavaScript or WebAssembly dependencies. This is useful for static websites and in the future could be used together with TokamakDOM for server-side rendering.

Tokamak 0.3.0 now requires 5.3 snapshots of SwiftWasm, which in general should be more stable than the development snapshots that were previously used, and is also compatible with Xcode 12 betas. If you have a .swift-version file in your project, you should specify wasm-5.3-SNAPSHOT-2020-07-27-a in it or a later 5.3 snapshot, otherwise carton 0.5 selects a compatible 5.3 snapshot for you automatically. Allowing carton to select a default snapshot is the recommended approach, so in general we recommend avoiding .swif-version files in projects that use Tokamak.

Many thanks to @carson-katri, @j-f1, and @Outcue for their contributions to this release.

The complete list of changes included in this release is available below.

Closed issues:

  • Command "carton dev" failed (#258)
  • Dark mode detection causes crashes in Safari (#245)
  • Add dark color scheme style (#237)
  • Establish App lifecycle as the only way to start rendering (#224)
  • Runtime issues with dynamic properties in App types (#222)
  • List appearance changes when reloaded (#212)
  • List scrolling does not work on Firefox 78 on macOS (#211)
  • Scrolling broken when List is child of NavigationView (#208)
  • Rectangle frame is not being set properly (#185)
  • Implement SidebarListStyle (#180)
  • Implement GeometryReader/GeometryProxy (#176)
  • @StateObject support (#158)
  • NavigationView/NavigationLink (#129)

Merged pull requests:

0.2.0 (21 July 2020)

This is the first release that supports WebAssembly and browser apps with the new TokamakDOM module. The API now closely follows SwiftUI, while the new React-like API is no longer available. Unfortunately, since older versions of iOS don't support opaque types, and you already can use SwiftUI on iOS versions that do support it, iOS and macOS renderers are no longer available. Many thanks to @carson-katri, @j-f1, @helje5, @hodovani, @Outcue, @filip-sakel and @noontideox for their contributions to this release!

Closed issues:

  • State vars have to be first (#190)
  • Implicit 8 pixel margin added to html body (#188)
  • Unable to set Color value (#186)
  • Crash in protocol conformance code (#167)
  • Extend Path to match the SwiftUI API (#156)
  • Some primitive Views cannot access @Environment (#139)
  • Logo for the project (#132)
  • ZStack? (#111)
  • View has - by default - a Body of type Never. (#110)
  • Getting value of type 'String' has no member 'components' (#108)
  • Does iOS 10 work? (#105)
  • Add Tokamak project linter (#77)
  • Ambiguous reference to member 'node' (#68)

Merged pull requests:

0.1.2 (18 March, 2019)

Update example code in README for CocoaPods page.

0.1.1 (18 March, 2019)

Update rendered README.md on CocoaPods page.

0.1.0 (18 March, 2019)

First release with an iOS renderer for UIKit and a basic macOS renderer for AppKit.