AI prompts
base on [WIP] Open source implementation of Apple's SwiftUI. # OpenSwiftUI
[](https://swiftpackageindex.com/OpenSwiftUIProject/OpenSwiftUI) [](https://swiftpackageindex.com/OpenSwiftUIProject/OpenSwiftUI) [](https://codecov.io/gh/OpenSwiftUIProject/OpenSwiftUI)
OpenSwiftUI is an open source implementation of Apple's [SwiftUI](https://developer.apple.com/documentation/swiftui)
The project is for the following purposes:
- Build GUI app on non-Apple platform (eg. Linux & Windows)
- Diagnose and debug SwiftUI issues on Apple platform
And the API design is to stay the same as the original SwiftUI API as possible.
Currently, this project is in early development.
You can find the API [documentation](https://swiftpackageindex.com/OpenSwiftUIProject/OpenSwiftUI/main/documentation/openswiftui) here.
> [!WARNING]
> This package use a lot of hidden API and private framework on Apple platform.
>
> Please **DO NOT** use this package in Apple's production environment(eg. App Store).
>
> Otherwize it may break your build or crash your app at any future SDK/OS update.
## Usage
See Example folder and try it with ExampleApp
> [!IMPORTANT]
> Clone OpenGraph in the same directory before running the example.
>
> See [Example/README.md](Example/README.md) for more detail.
## Build
The current suggested toolchain to build the project is Swift 6.0 / Xcode 16.0.
### Build without testing framework
```
./Scripts/build
```
### Build with Library Evolution
```
./Scripts/openswiftui_swiftinterface
```
> [!NOTE]
> You can use tools like [EnvPane](https://github.com/hschmidt/EnvPane/releases/) or [MenuHelper](https://github.com/Kyle-Ye/MenuHelper/releases)
> on macOS platform to manage the environment variable more easily.
## Supported platforms
The table below describes the current level of support that `OpenSwiftUI` has
for various platforms:
| **Platform** | **CI Status** | **Support Status** | Build | Test | Deploy |
|-|:-|-|-|-|-|
| **SwiftUI Compatibility** | [](https://github.com/OpenSwiftUIProject/OpenSwiftUI/actions/workflows/compatibility_tests.yml) | | | | |
| **macOS** | [](https://github.com/OpenSwiftUIProject/OpenSwiftUI/actions/workflows/macos.yml) | ⭐️⭐️⭐️ *[^1] | ✅ | ✅ | ✅ |
| **iOS** | [](https://github.com/OpenSwiftUIProject/OpenSwiftUI/actions/workflows/ios.yml) | ⭐️⭐️⭐️⭐️ *[^2] | ✅ | ✅ | ✅ |
| **Ubuntu 22.04** | [](https://github.com/OpenSwiftUIProject/OpenSwiftUI/actions/workflows/ubuntu.yml) | ⭐️⭐️ *[^3] | ✅ | ✅ | ❌ |
| **Wasm** | [](https://github.com/OpenSwiftUIProject/OpenSwiftUI/actions/workflows/wasm.yml) | ⭐️ *[^4] | ✅ | ❌ | ❌ |
| **Windows** | None | Not supported yet | ❌ | ❌ | ❌ |
[^1]: AppKit and other UI framework backend is not intergrated yet.
[^2]: UIKit intergration is partly implemented. No Render support yet.
[^3]: Build and test is supported. But some feature is cut due to known Swift compiler issue.
[^4]: Build is supported. Test is not supported yet dut to upstream issue.
> [!NOTE]
> The cross-platform OpenGraph is not fully implemented.
>
> It is only API compatible with AttributeGraph now.
>
> So most of the core feature is only available on Apple platform built with
> AttributeGraph varient.
## Products
- OpenSwiftUI
- A SwiftUI source compatibility framework.
- OpenSwiftUIExtension
- Extensive API collections for OpenSwiftUI & SwiftUI.
- OpenSwiftUIBridge
- A bridge layer for migrating other DSL framework to OpenSwiftUI incrementally and mixing them freely.
## License
This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.
Part of the header file is from Apple Open Source project which is license under APSL
## Related Projects
- https://github.com/Cosmo/OpenSwiftUI
- https://github.com/helbertgs/OpenSwiftUI
## Star History
<a href="https://star-history.com/#OpenSwiftUIProject/OpenSwiftUI&Date">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=OpenSwiftUIProject/OpenSwiftUI&type=Date&theme=dark" />
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=OpenSwiftUIProject/OpenSwiftUI&type=Date" />
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=OpenSwiftUIProject/OpenSwiftUI&type=Date" />
</picture>
</a>
", Assign "at most 3 tags" to the expected json: {"id":"12944","tags":[]} "only from the tags list I provide: [{"id":77,"name":"3d"},{"id":89,"name":"agent"},{"id":17,"name":"ai"},{"id":54,"name":"algorithm"},{"id":24,"name":"api"},{"id":44,"name":"authentication"},{"id":3,"name":"aws"},{"id":27,"name":"backend"},{"id":60,"name":"benchmark"},{"id":72,"name":"best-practices"},{"id":39,"name":"bitcoin"},{"id":37,"name":"blockchain"},{"id":1,"name":"blog"},{"id":45,"name":"bundler"},{"id":58,"name":"cache"},{"id":21,"name":"chat"},{"id":49,"name":"cicd"},{"id":4,"name":"cli"},{"id":64,"name":"cloud-native"},{"id":48,"name":"cms"},{"id":61,"name":"compiler"},{"id":68,"name":"containerization"},{"id":92,"name":"crm"},{"id":34,"name":"data"},{"id":47,"name":"database"},{"id":8,"name":"declarative-gui "},{"id":9,"name":"deploy-tool"},{"id":53,"name":"desktop-app"},{"id":6,"name":"dev-exp-lib"},{"id":59,"name":"dev-tool"},{"id":13,"name":"ecommerce"},{"id":26,"name":"editor"},{"id":66,"name":"emulator"},{"id":62,"name":"filesystem"},{"id":80,"name":"finance"},{"id":15,"name":"firmware"},{"id":73,"name":"for-fun"},{"id":2,"name":"framework"},{"id":11,"name":"frontend"},{"id":22,"name":"game"},{"id":81,"name":"game-engine "},{"id":23,"name":"graphql"},{"id":84,"name":"gui"},{"id":91,"name":"http"},{"id":5,"name":"http-client"},{"id":51,"name":"iac"},{"id":30,"name":"ide"},{"id":78,"name":"iot"},{"id":40,"name":"json"},{"id":83,"name":"julian"},{"id":38,"name":"k8s"},{"id":31,"name":"language"},{"id":10,"name":"learning-resource"},{"id":33,"name":"lib"},{"id":41,"name":"linter"},{"id":28,"name":"lms"},{"id":16,"name":"logging"},{"id":76,"name":"low-code"},{"id":90,"name":"message-queue"},{"id":42,"name":"mobile-app"},{"id":18,"name":"monitoring"},{"id":36,"name":"networking"},{"id":7,"name":"node-version"},{"id":55,"name":"nosql"},{"id":57,"name":"observability"},{"id":46,"name":"orm"},{"id":52,"name":"os"},{"id":14,"name":"parser"},{"id":74,"name":"react"},{"id":82,"name":"real-time"},{"id":56,"name":"robot"},{"id":65,"name":"runtime"},{"id":32,"name":"sdk"},{"id":71,"name":"search"},{"id":63,"name":"secrets"},{"id":25,"name":"security"},{"id":85,"name":"server"},{"id":86,"name":"serverless"},{"id":70,"name":"storage"},{"id":75,"name":"system-design"},{"id":79,"name":"terminal"},{"id":29,"name":"testing"},{"id":12,"name":"ui"},{"id":50,"name":"ux"},{"id":88,"name":"video"},{"id":20,"name":"web-app"},{"id":35,"name":"web-server"},{"id":43,"name":"webassembly"},{"id":69,"name":"workflow"},{"id":87,"name":"yaml"}]" returns me the "expected json"