fyne-io / fyne

Cross platform GUI toolkit in Go inspired by Material Design
https://fyne.io/
Other
24.81k stars 1.37k forks source link

Remove 32bit iOS support #2508

Closed changkun closed 2 years ago

changkun commented 3 years ago

Is your feature request related to a problem? Please describe:

Is it possible to construct a solution with the existing API?

No

Describe the solution you'd like to see:

Remove 32bit iOS support in the next release.

andydotxyz commented 3 years ago

Personally I am against this, we support Go 1.14 which supports iOS 32bit. Apart from 2 open bugs (file dialog crash and status bar under-draw) it seems to work well. We support Android KitKat which was launched 8 years ago, Apple's iOS 10.3 was the last to support 32bit and it was released around 4 years ago.

changkun commented 3 years ago

Apart from 2 open bugs (file dialog crash and status bar under-draw) it seems to work well. We support Android KitKat which was launched 8 years ago, Apple's iOS 10.3 was the last to support 32bit and it was released around 4 years ago.

These two arguments seem relatively weak.

  1. The 2 opening bugs shows people are not targeting these platform as they are important bugs
  2. Supporting "X years ago devices" seems to be a catchy word for advertisement, but it is also a technical debt to pay, especially in long term perspective. Say for how long iOS 32bit should be supported? 6 months? 2 years? Any longer means that one have to test these combinations to guarantee it indeed works: 5 Go versions (1.14,1.15,1.16,1.17,1.18), 9 iOS platforms (ios/arm, ios/arm64, ios/amd64, darwin/arm, darwin/arm64, darwin/amd64, iossimulator/arm, iossimulator/arm64, iossimulator/amd64), that is already: 45 combinations of possibilities.
Jacalz commented 3 years ago

I am actually in favour for dropping the 32-bit support. Looking through all my installed applications, only three out of 30 had support for iOS 10. The vast majority supported iOS 13+, after that there were a bunch with iOS12+ and then maybe five-ish supporting iOS11+. I think it would be a reasonable target to drop, especially with iPhone 5 and lower not even making up 1% of the total marketshare https://deviceatlas.com/blog/most-popular-iphones.

andydotxyz commented 3 years ago

This is probably because Apple standard tools don't compile for it... So folk have to do a little extra work to support these completely functional devices. That's the thing that I am trying to push against - I don't feel that Apple pushing people off a platform means we should abandon it. I am struggling to find info but it looks like iPad 32bit could be much higher - perhaps between 5 and 10% (it's iPad 1-4 and the Mini1 I think). If there was a compelling reason to stop supporting it I would understand, but so far there is not a significant win that we obtain for leaving it behind.

changkun commented 2 years ago

I got my iPhone 5 repaired today, and after I re-explored the system for a while, here are some interesting data to show. In Germany, the App Store top 10 free non-game apps: all require iOS 12.0. All games require iOS 12.0

This means the remaining users can't even use it in their daily life since they can't use it for traveling, paying, gaming but only basic IM.

Based on these data, I'd say iOS 10 is dead basically. For iPad 2, the above data also applies. Not sure why people still using the device, but it is clear that they are not using such a device daily and actively.

changkun commented 2 years ago

Not even GitHub :)

IMG_0034

andydotxyz commented 2 years ago

I don't know that you can use the supported levels of apps inside Apple store as a measure of the OS that they want to support - as Apple dictates that. More interesting is ad-hoc or corporate distribution (MDM) where they can support whichever device sets they desire.

Jacalz commented 2 years ago

I don’t think usage levels for companies is going to look any better. All of the companies that I know provide work phones have a three year rolling upgrade schedule. This means that any iPhone 5 (or lower) was replaced at least six years ago. As an example, a relative of mine upgraded from iPhone 4 to 5S to 7 and recently to an 11, so the 32bit devices have been long gone in that situation.

andydotxyz commented 2 years ago

What I cannot escape is the photos of the thousands of those old devices that businesses no longer want and Apple don't support. They still work well and can run Fyne applications. If we can continue to support them maybe we can help to improve the environmental impact.

Bottom line is we support Go 1.14 and that supports iOS 32bit. If we stop supporting 32bit before we remove 1.14 then we are dropping it early. When we upgrade minimum to 1.15 this conversation becomes moot.

changkun commented 2 years ago

When we upgrade the minimum to 1.15 this conversation becomes moot.

If we are removing 1.15 in the next release, then this proposal should be accepted? and PRs that are targeting for the next release can be accepted :)

andydotxyz commented 2 years ago

We do not yet have a date for when we stop supporting v1.14. As our plan is to track the lowest standard install for system packages we need to wait for next Debian release, that seems to be the slowest to move.

changkun commented 2 years ago

But Debian cannot build an iOS app... Removing 32bit iOS support from 1.14 should not be because of Debian.

andydotxyz commented 2 years ago

I don’t think we should have different minimum Go versions on different platforms.

changkun commented 2 years ago

I am running out of arguments. It looks like we failed to converge the discussion here, and not much can proceed on the topic. Instead of spending more energy here, I'd suggest that we move on and leave the 32bit iOS related issues open and see if there are people interested in supporting them. What do you think?

andydotxyz commented 2 years ago

I'd suggest that we move on and leave the 32bit iOS related issues open and see if there are people interested in supporting them. What do you think?

Yeah sounds good, thanks.

changkun commented 2 years ago

As discussed above. I retract the proposal of removing 32bit iOS support. Hence, close.