https://github.com/brightify/reactantui
Reactant extension for UI declaration in XML
https://github.com/brightify/reactantui
Last synced: 9 months ago
JSON representation
Reactant extension for UI declaration in XML
- Host: GitHub
- URL: https://github.com/brightify/reactantui
- Owner: Brightify
- License: mit
- Created: 2017-04-25T11:56:16.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2022-10-06T05:28:06.000Z (over 3 years ago)
- Last Synced: 2025-06-20T10:55:51.338Z (about 1 year ago)
- Language: Swift
- Size: 1.83 MB
- Stars: 19
- Watchers: 4
- Forks: 2
- Open Issues: 37
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# ReactantUI
## Reactant extension for UI declaration in XML
[](https://travis-ci.org/Brightify/ReactantUI)
[][reactant-cocoapods]
[][reactant-cocoapods]
[][reactant-cocoapods]
[][reactant-cocoapods]
[][slack]
Reactant UI is an extension for Reactant for declaration of views and layout using XML. There is no runtime overhead, as all the XML declarations are precompiled into Swift. Reactant then uses the generated code to create your UI. Reactant Live UI is an optional part responsible for live rendering your XML file in the simulator on every save. Check the [quick-start guide][quick-start] to learn more.
## Important note
Reactant UI is currently a preview. However we’ll try to keep the number of API changes to a minimum.
## Installation
In your `Podfile`:
```
pod 'Reactant'
pod 'ReactantUI'
pod 'ReactantLiveUI', :configuration => 'Debug'
```
Add new Run script phase to Build phases:
```bash
"$PODS_ROOT/ReactantUI/run" --download -- generate --enable-live --inputPath="$SRCROOT/Application/Sources/" --outputFile="$SRCROOT/Application/Generated/GeneratedUI.swift" --xcodeprojPath="$PROJECT_DIR/$PROJECT_NAME.xcodeproj"
```
To download a specific version using the `run` script, simply add semantic versioning number after the `--download` option. However, if you'd like to build the binary instead of downloading it if it's missing, delete the `--download` option altogether.
### Projects using Swift 4.0
In order to compile valid code, add `--swift 4.0` flag to the build script. Swift 4.1 works out of the box.
## Requirements
* iOS 9.0+
* Xcode 8.0+
* Swift 3.0+
## Communication
Feel free to reach us on Slack! [https://swiftkit.brightify.org/][slack]
## Get Started
Head to our [quick-start guide][quick-start] to learn how Reactant works and what it can do to decrease your development costs!
## Versioning
This library uses semantic versioning. We won't introduce any breaking changes without releasing a new major version. Our main goal is to keep the API as stable as possible. We build our applications on top of Reactant as well and we absolutely hate any breaking changes.
## Authors
* Tadeas Kriz, [tadeas@brightify.org](mailto:tadeas@brightify.org)
* Matyas Kriz, [matyas@brightify.org](mailto:matyas@brightify.org)
* Matous Hybl, [matous@brightify.org](mailto:matous@brightify.org)
* Filip Dolník, [filip@brightify.org](mailto:filip@brightify.org)
## Used libraries
### Runtime
* [Result](https://github.com/antitypical/Result)
* [SnapKit](https://github.com/SnapKit/SnapKit)
* [RxSwift](https://github.com/ReactiveX/RxSwift)
* [RxCocoa](https://github.com/ReactiveX/RxSwift)
* [RxOptional](https://github.com/RxSwiftCommunity/RxOptional)
* [RxDataSources](https://github.com/RxSwiftCommunity/RxDataSources)
### Tests
* [Quick](https://github.com/Quick/Quick)
* [Nimble](https://github.com/Quick/Nimble)
[quick-start]: https://docs.reactant.tech/getting-started/quickstart.html
[reactant-cocoapods]: https://cocoapods.org/pods/ReactantUI
[slack]: https://swiftkit.brightify.org/