@@ -11,6 +11,47 @@ contributing to the Firebase iOS SDK.
11
11
12
12
## Modernization - More Swifty
13
13
14
+ As we go into 2022, it's a top priority for the Firebase team to improve
15
+ usability and functionality for Swift developers. We welcome the community's
16
+ input and contribution as we work through this.
17
+
18
+ Please upvote existing feature requests, add new feature requests, and send PRs.
19
+ * [ Example Feature Request] ( https://github.com/firebase/firebase-ios-sdk/issues/8827 )
20
+ * [ Example Pull Request] ( https://github.com/firebase/firebase-ios-sdk/pull/6568 )
21
+
22
+ See [ Contributing.md] ( Contributing.md ) for full details about contributing
23
+ code to the Firebase repo.
24
+
25
+ Thanks in large part to community contributions, we already have several Swift
26
+ improvements:
27
+ * Analytics
28
+ * Enabling [ SwiftUI Screen tracking] ( https://github.com/firebase/firebase-ios-sdk/blob/master/FirebaseAnalyticsSwift/CHANGELOG.md )
29
+ automated view logging for SwiftUI apps
30
+ * Firestore and RTDB
31
+ * Codable Support ([ Firestore] ( https://github.com/firebase/firebase-ios-sdk/pull/3198 ) ,
32
+ [ Database] ( https://github.com/firebase/firebase-ios-sdk/tree/master/FirebaseDatabaseSwift/Sources/Codable ) )
33
+ eliminated manual data processing
34
+ * [ Property wrappers] ( https://github.com/firebase/firebase-ios-sdk/pull/8408 ) for Firestore collections dramatically simplified client coding
35
+ * Storage
36
+ * Eliminated impossible states, provided new and improved async API usage via
37
+ [ Result type] ( https://github.com/firebase/firebase-ios-sdk/blob/master/FirebaseStorageSwift/CHANGELOG.md )
38
+ and [ async/await] ( https://github.com/firebase/firebase-ios-sdk/blob/master/FirebaseStorageSwift/CHANGELOG.md )
39
+ additions
40
+ * ML Model Downloader
41
+ * Full [ SDK implementation in Swift] ( https://github.com/firebase/firebase-ios-sdk/tree/master/FirebaseMLModelDownloader/Sources )
42
+ * In App Messaging
43
+ * Vastly simplified usage from SwiftUI with
44
+ [ SwiftUI modifiers] ( https://github.com/firebase/firebase-ios-sdk/pull/7496 ) to show messages and
45
+ [ preview helpers] ( https://github.com/firebase/firebase-ios-sdk/pull/8351 )
46
+
47
+ ### Phase 1 - Address Low Hanging Fruit for all Firebase Products
48
+ * Swift API tests
49
+ * async/await API evaluation, tests, and augmentation
50
+ * Fix non-Swifty APIs
51
+ * Fill API gaps
52
+ * Property Wrappers (Not necessarily low hanging, but can be high value)
53
+ * Identify larger projects for future phases
54
+
14
55
### APIs
15
56
16
57
Continue to evolve the Firebase API surface to be more
@@ -23,14 +64,8 @@ Codable support for Firestore.
23
64
24
65
Add more such APIs to improve the Firebase Swift API.
25
66
26
- More details in the
27
- [ project] ( https://github.com/firebase/firebase-ios-sdk/projects/2 ) .
28
-
29
- ### Combine
30
-
31
- Add combine support for Firebase. See the
32
- [ Tracking Issue] ( https://github.com/firebase/firebase-ios-sdk/issues/7295 ) and
33
- [ Project] ( https://github.com/firebase/firebase-ios-sdk/projects/3 ) .
67
+ More examples in the
68
+ [ feature requests] ( https://github.com/firebase/firebase-ios-sdk/issues?q=is%3Aopen+is%3Aissue+label%3A%22Swift+API%22 ) .
34
69
35
70
### SwiftUI
36
71
@@ -40,7 +75,16 @@ Firebase should be better integrated with SwiftUI apps. See SwiftUI related
40
75
### Swift Async/Await
41
76
42
77
Evaluate impact on Firebase APIs of the
43
- [ Swift Async/await proposal] ( https://github.com/apple/swift-evolution/blob/main/proposals/0296-async-await.md )
78
+ [ Swift Async/await proposal] ( https://github.com/apple/swift-evolution/blob/main/proposals/0296-async-await.md ) .
79
+ For example, Objective C callback APIs that return a value do not get an
80
+ async/await API automatically generated and an explicit function may need to be
81
+ added. See these
82
+ [ Firebase Storage examples] ( https://github.com/firebase/firebase-ios-sdk/blob/master/FirebaseStorageSwift/Sources/AsyncAwait.swift ) .
83
+
84
+ ### Combine
85
+
86
+ Firebase has community support for Combine (Thanks!). See
87
+ [ Combine Readme] ( FirebaseCombineSwift/README.md ) for usage and project details.
44
88
45
89
## More complete Apple platform support
46
90
@@ -59,12 +103,16 @@ primarily *watchOS* for several libraries.
59
103
### Quickstarts
60
104
61
105
Modernize the [ Swift Quickstarts] ( https://github.com/firebase/quickstart-ios ) .
62
- Continue the work done in 2020 for
106
+ Continue the work done in 2020 and 2021 that used better Swift style, SwiftUI,
107
+ Swift Package Manager, async/await APIs, and multi-platform support for
63
108
[ Analytics] ( https://github.com/firebase/quickstart-ios/tree/master/analytics ) ,
109
+ [ ABTesting] ( https://github.com/firebase/quickstart-ios/tree/master/abtesting ) ,
64
110
[ Auth] ( https://github.com/firebase/quickstart-ios/tree/master/authentication ) ,
111
+ [ Database] ( https://github.com/firebase/quickstart-ios/tree/master/database ) ,
112
+ [ Functions] ( https://github.com/firebase/quickstart-ios/tree/master/functions ) ,
113
+ [ Performance] ( https://github.com/firebase/quickstart-ios/tree/master/performance ) ,
65
114
and
66
- [ RemoteConfig] ( https://github.com/firebase/quickstart-ios/tree/master/config ) to
67
- use modern Swift and support multiple Apple platforms.
115
+ [ RemoteConfig] ( https://github.com/firebase/quickstart-ios/tree/master/config ) .
68
116
69
117
## Product Improvements
70
118
0 commit comments