Skip to content

theleftbit/BSWInterfaceKit

Repository files navigation

BSWInterfaceKit

This framework will allow you to build better iOS apps faster since it leverages battle tested classes for various common use cases in modern apps

Documentation

Please check out the documentation generated with DocC and hosted generously by Swift Package Index

Android Support

BSWInterfaceKit also ships Android-only Compose primitives under Sources/BSWInterfaceKit/Skip.

These types are intentionally kept as plain infrastructure components so product apps can wrap them with their own branding, strings and visual defaults:

  • BSWAsyncView: async loading/error/content container with built-in Swift ViewModel retention.
  • BSWAsyncButton: async action core for Compose buttons, including inline and blocking loading styles.
  • BSWSheet: modal bottom sheet wrapper that scopes Swift-backed view models correctly for sheet presentations.
  • BSWNavDisplay: shared Navigation 3 setup with UIKit-style push/pop transitions and entry decorators.
  • BSWBackButton: system Material back button used by the default Android views in this package.
  • BSWSwiftViewModelOwnerRetention and swiftViewModel(...): bridge helpers used to retain Swift-backed state correctly on Android.

Naming convention

SwiftUI components keep their native names on Apple platforms, such as AsyncView and AsyncButton.

Android-only Compose APIs use the BSW prefix, such as BSWAsyncView and BSWAsyncButton, to avoid collisions with bridged SwiftUI symbols generated by Skip.

Integration guidance

Apps are expected to wrap the plain Android components above when they need:

  • localized strings
  • product-specific loading and error views
  • custom button and sheet styling
  • feature-specific navigation entry providers