Skip to content

chore: support for macOS Designed for iPad mode - WPB-25053#4636

Open
netbe wants to merge 7 commits into
developfrom
chore/macos-ipad
Open

chore: support for macOS Designed for iPad mode - WPB-25053#4636
netbe wants to merge 7 commits into
developfrom
chore/macos-ipad

Conversation

@netbe
Copy link
Copy Markdown
Collaborator

@netbe netbe commented Apr 24, 2026

TaskWPB-25053 [iOS] Running iOS app instead of Web macOS client

Issue

In order to use more the Beta builds, this PR improve support for the app running on macOS via iPad design.

  • add resizable window
  • select part of messages
  • record video
  • disable callkit so calling works

Testing

  • Build as iPad

Checklist

  • Title contains a reference JIRA issue number like [WPB-XXX].
  • Description is filled and free of optional paragraphs.
  • Adds/updates automated tests.

UI accessibility checklist

If your PR includes UI changes, please utilize this checklist:

  • Make sure you use the API for UI elements that support large fonts.
  • All colors are taken from WireDesign.ColorTheme or constructed using WireDesign.BaseColorPalette.
  • New UI elements have Accessibility strings for VoiceOver.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 24, 2026

Test Results

1 865 tests   1 838 ✅  2m 1s ⏱️
  300 suites     27 💤
    1 files        0 ❌

Results for commit 1bd54cc.

♻️ This comment has been updated with latest results.

Summary: workflow run #26024622037
Allure report (download zip): html-report-30039-chore_macos-ipad

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Btw, requestAuthorization(_:) is deprecated.

Suggested change
PHPhotoLibrary.requestAuthorization(for: .readWrite) { status in

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

<array/>
<key>UIRequiresFullScreen</key>
<true/>
<false/>
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a big change. We need to test resizing thoroughly, especially with horizontalSizeClass changes before disabling this.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also any time we are doing UIDevice.current.userInterfaceIdiom we might be making assumptions about screen sizes.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I did run it quickly and did not see any issue, do you have something in mind ?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not really sure but off the top of my head I guess the tab bar needs checking when in narrow split screen and possible edge insets for the bubbles in conversations.

@netbe netbe requested review from samwyndham and removed request for johnxnguyen May 4, 2026 09:09
Copy link
Copy Markdown
Contributor

@samwyndham samwyndham left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice work. I really like the idea of getting this working and it's nice that the changes aren't too great.

My main concern is that we are changing a few fundamentals in production. Some questions:

  1. Will Designed for iPad also appear in production?
  2. Can we make the change to full screen mode internal/beta only?

SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
SUPPORTS_MACCATALYST = NO;
SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = NO;
SUPPORTS_MAC_DESIGNED_FOR_IPHONE_IPAD = YES;
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

question: Will this change apply to the production apps too?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In my opinion we shouldn't do that. Users already have access to a mac app. At least this seems like a product decision.

<key>UIRequiredDeviceCapabilities</key>
<array/>
<key>UIRequiresFullScreen</key>
<true/>
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

question: This is a pretty big change but probably the right direction to go. But have you thought about possible issues here? I guess there must be a bunch of things to test.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we make this change only in non production builds?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

maybe not, or using a value from xcconfig

Copy link
Copy Markdown
Contributor

@caldrian caldrian May 26, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we could remove UIRequiresFullScreen from Info.plist and set the value as build setting:
https://developer.apple.com/documentation/Xcode/build-settings-reference#Requires-Full-Screen
Than we're able to set different values (for AppStore and for internal TestFlight builds).

<array/>
<key>UIRequiresFullScreen</key>
<true/>
<false/>
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also any time we are doing UIDevice.current.userInterfaceIdiom we might be making assumptions about screen sizes.

@netbe netbe requested review from caldrian and samwyndham May 18, 2026 09:20
@sonarqubecloud
Copy link
Copy Markdown

Copy link
Copy Markdown
Contributor

@samwyndham samwyndham left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@netbe This is cool and I'm close to approving but I don't think it should be enabled for production apps or at least the ramifications of this should be considered and discussed with product. The ramifications are:

  • In the mac app store there would now be multiple versions of the app.
  • We would have to support this new version and any new bugs

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.

3 participants