-
-
Notifications
You must be signed in to change notification settings - Fork 69
Drop support for iOS 12, tvOS 12, watchOS 5, and macOS 10.13/14 #255
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
What versioning system is used for the Parse Swift SDK? Shouldn't a breaking change make a major version jump? |
I was using SemVer, but didn't think of moving to 2.0.0. I'm fine with this type of change. |
Yes, we're using semver across most (all?) Parse repos, so I think that would be good. |
Regarding this issue, I think a good indicator for making a decision whether to drop SDK support is the distribution. We can see that 7% of devices run on <=iOS 12, which I think is acceptable for dropping support, considering that this number includes all prior versions, not just iOS 12. Does this also drop iPadOS 12 support? In general we should be mindful that the device and OS distribution in industrialized regions differs considerably from developing regions. The stats we see in most articles do not reflect that. Dropping iOS 12 support has a larger impact on users in developing regions. In the sense of "inclusive product design", we should hold back with SDK support dropping if there are not considerably high costs related to it. Or alternatively adopt a LTS strategy to allow developers to stretch the support period, like we do with Parse Server. |
We don't know how many developers use the Swift SDK. In addition, out of the total number, we don't know how many use it for targeting apps for iOS 12. We do know that the first release of the Swift SDK was in 2021, after iOS 14 was released. When opening a new Xcode project, it defaults to the latest OS available, so by default, developers have been creating apps for iOS 14+. Of course, developers could have manually changed their project settings to iOS 12 (or its siblings). Before the first release and definitely before I took over coding in 2020, the SDK was unusable (didn't have enough features), so there's no way anyone could have used the Swift SDK to develop apps before 2020. If there are developers using the Swift SDK for iOS 12 and its siblings, they can still use <= 1.11.0 (when it's released). This allows them to take advantage of almost all of the latest features the server has to offer (excluding LiveQuery). My guess is that most developers who still support <= iOS 12 use the Objc SDK. |
yes, makes sense |
New Issue Checklist
Issue Description
Original discussion began here: #13 (comment)
The current OS's to be removed (iOS 12, tvOS 12, watchOS 5, and macOS 10.13/14) are currently in limbo as the Swift SDK should work well with them with the exception that
ParseLiveQuery
cannot be used. This is due to native websocket additions in iOS13+. Any OS before the aforementioned OS's already have to resort to the Obj-C SDK.The Swift SDK leverages modern Swift: value types,
Combine
, web sockets, and with modification; SwiftUI. The minimum requirements for the aforementioned modern features is iOS 13. In addition, the Swift SDK indirectly supports theIdentifiable
protocol (if the developer adds theid
property themselves) which simplifies usingParseObject
's as models for SwiftUI.iOS 13
supports devices as old as 6+ years (2015).Supporting the "limbo" OS's requires additional code (as seen in PR #254) and require extra care with maintaining. There were massive changes added by Swift 5.1 with minimum OS support for iOS13, tvOS 13, watchOS 6, and macOS 10.15. Dropping the "limbo" OS's allow for easier app development for developers as ParseObject's natively conform to
Identifiable
and simplifies maintenance and addition of features.What can happen next is next version of the Swift SDK, 1.11.0 (which should include #238 and #248) will be the last release supporting the "limbo" OS's. After, 2.0.0 will drop support.
Steps to reproduce
Try to use
Identifiable
,Combine
, natively on an older OS.Actual Outcome
Won't compile.
Expected Outcome
Environment
Client
Server
Database
The text was updated successfully, but these errors were encountered: