In Firebase we have many Objective-C libraries and some Swift extensions that add APIs for features like Codable, async/await (where it doesn't auto-translate), and SwiftUI integrations. CocoaPods supports mixed languages but SwiftPM does not, so Firebase SDKs need to provide two separate modules (ex. FirebaseRemoteConfig and FirebaseRemoteConfigSwift). This results in a poor user experience and a potential doubling of the number of frameworks to manage (one existing Obj-C module and a Swift module).
We're investigating the feasibility of adding mixed language support to SwiftPM in order to alleviate these issues and wanted to check in beforehand:
- Is this something that would be accepted as a contribution?
- Have there been any previous attempts to add support that we should be aware of?
- Any hidden complexities or things we should know before digging in?
- Is it feasible to add cross-language support without touching Xcode?
- Would this be helpful to others in the community as well?
We haven't taken too close a look at what it would do to the Package Manifest's API surface, if anything, but will do so once we have a better idea of the scope of the project.
Ryan from the Firebase team