https://github.com/newfiregroup/appexperiencekit
Reusable Swift package for app experience surfaces: release history, feature previews, feedback, and authentication.
https://github.com/newfiregroup/appexperiencekit
feedback ios macos release-notes swift swift-package swiftui
Last synced: 25 days ago
JSON representation
Reusable Swift package for app experience surfaces: release history, feature previews, feedback, and authentication.
- Host: GitHub
- URL: https://github.com/newfiregroup/appexperiencekit
- Owner: NewFireGroup
- License: mit
- Created: 2026-05-23T21:37:00.000Z (26 days ago)
- Default Branch: main
- Last Pushed: 2026-05-24T01:20:00.000Z (25 days ago)
- Last Synced: 2026-05-24T01:21:15.222Z (25 days ago)
- Topics: feedback, ios, macos, release-notes, swift, swift-package, swiftui
- Language: Swift
- Size: 59.6 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Security: SECURITY.md
Awesome Lists containing this project
README
# AppExperienceKit
`AppExperienceKit` is a reusable Swift package for app experience surfaces that
can be shared across Xcode app projects.
## Package Scope
- Public/internal release history models and Version History UI.
- Feature Previews models, release-control adapters, and status UI.
- Feedback models, draft storage, issue rendering, feedback UI, and client
protocols.
- Optional authentication models, local-authentication gates, and app-lock
launch coordination.
- Generic host copy through `AppExperienceHostConfiguration`.
Host apps own product names, release JSON resources, Optimizely keys, GitHub
repository defaults, navigation placement, build settings, signing, and target
resources.
## Installation
Use Swift Package Manager:
```swift
.package(url: "https://github.com/NewFireGroup/AppExperienceKit.git", from: "0.1.2")
```
For apps that need tighter pre-1.0 stability, pin to the current minor release
or an exact revision.
## Host-Defined Release Controls
Host apps can extend Feature Previews with app-owned release controls without
adding package enum cases:
```swift
let cashflowReports = ReleaseControlDescriptor(
key: "cashflow_reports_feature",
displayName: "Cashflow Reports"
)
AppSettingsView(
featurePreviewReleaseControls: ReleaseControlDescriptor.packageDefaults + [cashflowReports]
)
```
Use `ReleaseControlCustomEvent` for host-owned aggregate telemetry events that
should be evaluated with a host-defined descriptor.
## Validation
```bash
swift test
swift build
```
See [docs/APP_EXPERIENCE_KIT.md](docs/APP_EXPERIENCE_KIT.md) for adapter
boundary guidance.
## Versioning
`AppExperienceKit` uses semantic versioning. While the package is below 1.0,
minor releases may include source-breaking API changes as the public adapter
surface stabilizes. Patch releases should remain source-compatible within the
same minor version. See [CONTRIBUTING.md](CONTRIBUTING.md) for the pre-1.0
patch-versus-minor tagging policy.
## Contributing
Issues and pull requests are welcome. See [CONTRIBUTING.md](CONTRIBUTING.md)
before broad API, UI, or adapter changes so the package boundary can stay
useful across host apps.
See [CHANGELOG.md](CHANGELOG.md) for release notes.
## License
`AppExperienceKit` is available under the MIT License. See [LICENSE](LICENSE).