Modernization - More Swifty
As we go into 2022, it's a top priority for the Firebase team to improve
usability and functionality for Swift developers. We welcome the community's
input and contribution as we work through this.
See the Project Dashboard.
Please upvote existing feature requests, add new feature requests, and send PRs.
See Contributing.md for full details about contributing
code to the Firebase repo.
Thanks in large part to community contributions, we already have several Swift
improvements:
- Analytics
- Firestore and RTDB
- Storage
- Eliminated impossible states, provided new and improved async API usage via
Result type
and async/await
additions
- ML Model Downloader
- In App Messaging
Phase 1 - Address Low Hanging Fruit for all Firebase Products
- Swift API tests
- async/await API evaluation, tests, and augmentation
- Fix non-Swifty APIs
- Fill API gaps
- Better Swift Error Handling
- Property Wrappers (Not necessarily low hanging, but can be high value)
- Identify larger projects for future phases
APIs
Continue to evolve the Firebase API surface to be more
Swift-friendly. This is generally done with Swift specific extension libraries.
FirebaseFirestoreSwift is a larger library that adds
Codable support for Firestore.
Add more such APIs to improve the Firebase Swift API.
More examples in the
feature requests.
SwiftUI
Firebase should be better integrated with SwiftUI apps. See SwiftUI related
issues.
Swift Async/Await
Evaluate impact on Firebase APIs of the
Swift Async/await proposal.
For example, Objective-C callback APIs that return a value do not get an
async/await API automatically generated and an explicit function may need to be
added. See these
Firebase Storage examples.
Combine
Firebase has community support for Combine (Thanks!). See
Combine Readme for usage and project details.