Skip to content

Commit f6b92c4

Browse files
Merge pull request #463 from theleftbit/add-async-view-android
Quality of life improvements for Android apps
2 parents cf096dc + ef5a61f commit f6b92c4

File tree

10 files changed

+1180
-0
lines changed

10 files changed

+1180
-0
lines changed

README.md

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,3 +9,31 @@ This framework will allow you to build *better* iOS apps *faster* since it lever
99
## Documentation
1010

1111
Please check out [the documentation](https://swiftpackageindex.com/theleftbit/BSWInterfaceKit/documentation/) generated with DocC and hosted generously by Swift Package Index
12+
13+
## Android Support
14+
15+
`BSWInterfaceKit` also ships Android-only Compose primitives under `Sources/BSWInterfaceKit/Skip`.
16+
17+
These types are intentionally kept as plain infrastructure components so product apps can wrap them with their own branding, strings and visual defaults:
18+
19+
- `BSWAsyncView`: async loading/error/content container with built-in Swift `ViewModel` retention.
20+
- `BSWAsyncButton`: async action core for Compose buttons, including inline and blocking loading styles.
21+
- `BSWSheet`: modal bottom sheet wrapper that scopes Swift-backed view models correctly for sheet presentations.
22+
- `BSWNavDisplay`: shared Navigation 3 setup with UIKit-style push/pop transitions and entry decorators.
23+
- `BSWBackButton`: system Material back button used by the default Android views in this package.
24+
- `BSWSwiftViewModelOwnerRetention` and `swiftViewModel(...)`: bridge helpers used to retain Swift-backed state correctly on Android.
25+
26+
### Naming convention
27+
28+
SwiftUI components keep their native names on Apple platforms, such as `AsyncView` and `AsyncButton`.
29+
30+
Android-only Compose APIs use the `BSW` prefix, such as `BSWAsyncView` and `BSWAsyncButton`, to avoid collisions with bridged SwiftUI symbols generated by Skip.
31+
32+
### Integration guidance
33+
34+
Apps are expected to wrap the plain Android components above when they need:
35+
36+
- localized strings
37+
- product-specific loading and error views
38+
- custom button and sheet styling
39+
- feature-specific navigation entry providers

0 commit comments

Comments
 (0)