Skip to content

iOS 26/27/Liquid Glass compatibility - #158

Open
mmertsock wants to merge 4 commits into
feature/os-27from
mmertsock/os-27
Open

iOS 26/27/Liquid Glass compatibility#158
mmertsock wants to merge 4 commits into
feature/os-27from
mmertsock/os-27

Conversation

@mmertsock

@mmertsockmmertsock commented Aug 27, 2026

Copy link
Copy Markdown
Member

Requires Xcode 27

Various toolbar/button changes to support iOS 26/27 and Liquid Glass (none of these changes apply for devices running iOS 18 or earlier):

  • Nav bar is explicitly opaque: various ResearchKit internal views (table views, etc.) have some layout peculiarities with margins/safe area underneath navigation bars, which produce ugly visual artifacts when using the default translucent toolbar look with liquid glass. Task view controllers configure an opaque navigation bar to avoid this (hard-coded to white; we have decided we will not support dark mode in ResearchKit)
  • ResearchKit V1 linear style progress bar: moved from the center (title) position in the nav bar to below the nav bar. I couldn't get the progress bar to stay nicely centered in the title position, and overall I think the new position looks better.
  • ResearchKit V2: text fields attach a "Done" button to the accessory bar above the software keyboard. Made adjustments to this to have it effectively use the iOS 18 look. I couldn't find a Liquid Glass appearance that looked good
  • Adjustments to various bar button items to get the best appearance with Liquid Glass

Enhancement:

  • Linear style progress bar in V1 surveys: progress changes are now animated

Asking for feedback or contrary opinions on design choices:

  • Do we like having liquid glass toolbar items in ResearchKit surveys, overall?
  • Cancel button: I opted for a text "Cancel" inside a liquid glass capsule. iOS does have a system cancel button that's a large "X" but I thought an explicit "Cancel" label was better for surveys.

Developer testing with Xcode (before this is fully integrated into MyDataHelps)

The easiest way to test is to use the corresponding CEVResearchKit PR, and run the CEVRKUITestVehicle app on a simulator or device. Suggested surveys: ConsentStep FormStep, FullBattery, ProgressOptions, QuestionStepText, QuestionStepTextAllowMultipleLinesInput. Don't forget to toggle the "version 2" switch to test both versions of ResearchKit.

QA testing

TODO

Screenshots

Each set of screenshots shows (1) the current appearance / iOS 18 appearance with this PR, (2) various UI bugs with Xcode 27 without the fixes in this PR, (3) the final UI rendered with this PR.

Basic bar buttons and progress bar

RK1 bar items

Save/discard prompt

Save discard

Navigation bar opacity

Note the bug in the center screenshot: a hard edge halfway down the nav bar.

Opaque bar

RK1 text-style progress indicator alternative

X of Y progress

RK2 "Done" button above keyboard

RK2 accessory

@mmertsock
mmertsock changed the base branch from CEVRelease-2.x to feature/os-27August 27, 2026 19:28
Sign up for freeto 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.

1 participant

@mmertsock