SwiftUI: Generic parameter 'Subject' could not be inferred

Since your LoadingView is not going to modify .isLoading, you do not need to pass it as a binding:

LoadingView(isShowing: self.$charStore.isLoading)

Instead, remove the @Binding in LoadingView:

struct LoadingView<Content>: View where Content: View {

    var isShowing: Bool
    ...

and create it like this (remove the dollar sign):

LoadingView(isShowing: self.charStore.isLoading) { ... }

On the contrary, if you insist on passing a binding, then you need to remove the private(set) from:

@Published private(set) var isLoading = false