WebAssembly support
Pre-release
Pre-release
This is the first release that supports WebAssembly and browsers 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:
- Move view files to separate subdirectories (#194) via @MaxDesiatov
- Add
UIColor
stub and newColor.init(_:UIColor)
(#196) via @MaxDesiatov - Add Toggle implementation (#159) via @j-f1
- Add
TokamakShim
module to simplify imports (#192) via @MaxDesiatov - Organize all the re-exports into a single file (#193) via @j-f1
- Add
Picker
andPopUpButtonPickerStyle
as default (#149) via @MaxDesiatov - Add @EnvironmentObject (#170) via @carson-katri
- Allow non-consecutive state variables (#191) via @j-f1
- Add @ObservedObject implementation (#171) via @MaxDesiatov
- Avoid AnyView in the Counter code (#168) via @MaxDesiatov
- Mention
#webassembly
SwiftPM Slack channel in README.md (#187) via @MaxDesiatov - Add LazyHGrid and LazyVGrid (#179) via @carson-katri
- Implement
static func Binding<Value>.constant
(#178) via @MaxDesiatov - Extend Color to match SwiftUI (#177) via @carson-katri
- Add Text concatenation via + operator (#174) via @carson-katri
- Extend Path to match SwiftUI (#172) via @carson-katri
- Allow modified views to fill their parent if a child requires it (#165) via @carson-katri
- Build macOS demo on CI (#164) via @MaxDesiatov
- Add List and related Views (#147) via @carson-katri
- ViewBuilder buildIf fix (#162) via @carson-katri
- Use
let
instead ofvar
inTextFieldStyleKey: EnvironmentKey
(#160) via @MaxDesiatov - Update Acknowledgments section in README.md (#157) via @MaxDesiatov
- Credit SwiftWebUI in a special way in README.md (#140) via @MaxDesiatov
- Add Group implementation (#150) via @MaxDesiatov
- Update AnyView status in progress.md (#151) via @MaxDesiatov
- Use a range instead of an array in ForEach (#153) via @MaxDesiatov
- Documentation comments (#143) via @carson-katri
- Add Xcode project and native targets (#142) via @j-f1
- Add AppearanceActionModifier, onAppear/onDisappear (#145) via @MaxDesiatov
- Add doc comment to the ViewDeferredToRenderer protocol (#144) via @MaxDesiatov