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

[iOS][macOS] Remove iOS Xcode Project #2082

Merged
merged 8 commits into from
Sep 18, 2024

Conversation

mischreiber
Copy link
Contributor

@mischreiber mischreiber commented Aug 7, 2024

Platforms Impacted

  • iOS
  • visionOS
  • macOS

Description of changes

Use SPM exclusively for consuming Fluent within our macOS and iOS demo apps.

A side-effect of this change is a major overhaul of how our library interacts with Xcode. In particular:

  • The FluentUI iOS Xcode project has been completely removed.
  • The workspace that wrapped the iOS library and demo app has been removed.
  • The macOS Xcode project has had the library target removed.

Both demo app projects (macOS and iOS) will now consume the FluentUI library directly via Swift Package Manager. This will facilitate upcoming refactors to make it easier to share code between iOS and macOS.

Binary change

The current system for measuring binary impact is no longer valid, since there will no longer be a discrete libFluentUI.a created as part of the build process. I'm currently exploring newer approaches to measure binary impact.

Verification

Extensive sanity passes of both macOS and iOS test apps confirm no loss of functionality.

Tests included:

  • SwiftUI components
  • AppKit/UIKit components
  • Components that load image resources (e.g. Avatar)
  • Objective-C demos
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 changed the title Remove iOS Xcode Project [DRAFT] Remove iOS Xcode Project Aug 12, 2024
@mischreiber mischreiber force-pushed the removeXcodeProjects branch 3 times, most recently from bfa9dbe to e2deaf7 Compare August 13, 2024 17:40
@mischreiber mischreiber marked this pull request as ready for review September 17, 2024 20:43
@mischreiber mischreiber requested review from a team as code owners September 17, 2024 20:43
@mischreiber mischreiber changed the title [DRAFT] Remove iOS Xcode Project [iOS][macOS] Remove iOS Xcode Project Sep 17, 2024
@mischreiber
Copy link
Contributor Author

Confirmed through testing in a few apps that this should represent a <10kB binary increase across the board.

@mischreiber mischreiber merged commit 2db2f49 into microsoft:main Sep 18, 2024
7 checks passed
@mischreiber mischreiber deleted the removeXcodeProjects branch September 18, 2024 03:02
@mischreiber mischreiber mentioned this pull request Oct 17, 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.

4 participants