openfoodfacts/openfoodfacts-ios

Storyboardify app

aleene opened this issue · 10 comments

The implementation of the interface is now scattered over multiple xib-files and storyboards. These should be unified into a single storyboard.

These makes it much easier for maintainers to locate the correct interface element, to see how all interface elements are interrelated (segues) and to edit elements.

Xcode uses the relations from the storyboard to correctly morph an app to a specific device and window mode. We lose this now.

I suspect also that the lack of this information results in bad screen colors, as xcode can not figure out the role of an interface screen.

Putting P1, assuming that Storyboard is the thing pushed by Apple ?

Hi, I’m interested in helping out, but with the effort of a UI refactor anyway, I wanted to ask if migrating to SwiftUI has been considered?

@peteraisher I believe there were concerns of leaving too many devices in the dust. What would we loose with a move to SwiftUI ?

@teolemon According to Apple’s stats, 7% of all iPhone users are on versions older than iOS 13 and 12% of iPad users.

The percentages are lower for devices introduced in the last four years (2% and 1%, respectively) …

Does that seem like too many potential users to leave behind?

I would put the cutoff at IOS12 (included in support).

I have no experience with SwiftUI, but the issue is that much of the interface code is generated in code. So moving to SwiftUI will be a major update. But I guess we need to adopt more modern approaches.

I would cutoff as iOS 15 to start using SwiftUI, because I believe it's when it really starts to get more useful and less frustrating, otherwise in I think it's easier to use UIKit

I would cutoff as iOS 15 to start using SwiftUI, because I believe it's when it really starts to get more useful and less frustrating, otherwise in I think it's easier to use UIKit

@evertoncunha 15 ?
90% iOS 14
8% iOS 13

Is the app version support iOS 13+?

Regarding unifying the UI into a single storyboard, I would highly suggest otherwise. This increases the complexity for a team of developers working on the same project to introduce changes to the UI as merge conflicts would occur and be difficult to resolve.