Skip to content
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

Create FluentUI_common module, part 1 #2094

Merged
merged 8 commits into from
Oct 21, 2024

Conversation

mischreiber
Copy link
Contributor

@mischreiber mischreiber commented Oct 1, 2024

Platforms Impacted

  • iOS
  • visionOS
  • macOS

Description of changes

This is part 1 of creating a new FluentUI_common module to share FluentTheme (and others) between iOS and macOS. The goal of this PR is to rework several files and interfaces in ways that will directly contribute towards the goal of moving this important logic out of the module.

Some highlights of the changes:

  • Making many previously internal classes/structures public so the FluentUI_ios module can consume them out of FluentUI_common. For example, much of ControlTokenSet.
  • No more TokenizedControlInternal interface. It's been fully folded into TokenizedControl.
  • The iOS DynamicColor has been reduced further in importance, and now largely exists only to have something to conform to ShapeStyle for iOS 17.
  • Several extensions have been broken up, separating UIKit and SwiftUI logic. The latter of these will often be shared with macOS.
  • Move isApplicableThemeChange() onto a UIView extension. This will make it possible to share theme changing logic in the future by creating an equivalent NSView extension.

Binary change

Still working on new system, but when comparing Archive output of the release iOS app:

Before After
16,755,710 16,792,142

Verification

Key scenario validation pass across iOS demo app.

Visual Verification
Before After
Screenshot or description before this change Screenshot or description with this change

Pull request checklist

This PR has considered:

  • Light and Dark appearances
  • iOS supported versions (all major versions greater than or equal current target deployment version)
  • VoiceOver and Keyboard Accessibility
  • Internationalization and Right to Left layouts
  • Different resolutions (1x, 2x, 3x)
  • Size classes and window sizes (iPhone vs iPad, notched devices, multitasking, different window sizes, etc)
  • iPad Pointer interaction
  • SwiftUI consumption (validation or new demo scenarios needed)
  • Objective-C exposure (provide it only if needed)
Microsoft Reviewers: Open in CodeFlow

@mischreiber mischreiber requested a review from a team as a code owner October 1, 2024 04:48
@mischreiber mischreiber enabled auto-merge (squash) October 21, 2024 17:52
@mischreiber mischreiber merged commit bd274ff into microsoft:main Oct 21, 2024
7 checks passed
@mischreiber mischreiber deleted the FluentUI_common_part1 branch October 22, 2024 14:01
@joannaquu joannaquu mentioned this pull request Nov 21, 2024
12 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants