Skip to content

Conversation

@brainbicycle
Copy link
Contributor

@brainbicycle brainbicycle commented Oct 7, 2025

Description

This PR is the last of a series of PRs aiming to enable the new architecture in Eigen.

*Things to keep in mind

  • We tried as much as possible to bring changes to main whenever possible to limit the scope of this PR. Unfortunately, it wasn't always possible and at some point, we needed to make some changes to get the app to work nicely on the new architecture
  • We kept 99% feature parity with what we currently have but we changed in some cases how we render things.
    • The 1% that we couldn't keep, is the accurate columnIndex calculation because the API was dropped from Flashlist (will be discussed with data team)
  • For the first time, we used feature flags from reanimated and react-native in order to solve some performance issues we have. These feature flags refer to different methods of parsing the components tree and rendering items, and not new features. A list of the issues and feature flags can be found here https://docs.swmansion.com/react-native-reanimated/docs/guides/performance/#%EF%B8%8F-lower-fps-while-scrolling

How to review this PR
We tried as much as possible to approach this commit by commit. That's how I suggest reviewing this PR if you want to know what this journey was like. However, keep in mind that as you progress further in the commits, we change the approach we take accordingly, and sometimes we revert some changes.

QA boards
QA session 1: https://www.notion.so/artsy/2025-10-31-Mobile-App-QA-New-architecture-29dcab0764a0809d831ad7a43c2a6c46
QA session 2: https://www.notion.so/artsy/2025-11-21-Mobile-App-QA-version-8-89-0-iOS-build-2025-11-21-10-Android-build-8-89-0-2025112110--2b2cab0764a08010af36d6b48805aa24
QA session 3: https://www.notion.so/artsy/2025-12-10-Mobile-App-QA-version-8-90-0-iOS-build-2025-12-10-Y-Z-Android-build-XYZ-New-Architectu-2c5cab0764a08025a6e2e0cd25dba760

In Progress
Measuring performance impact

PR Checklist

  • I have tested my changes on the following platforms:
    • Android.
    • iOS.
  • I hid my changes behind a feature flag, or they don't need one.
  • I have included screenshots or videos at least on Android, or I have not changed the UI.
  • I have added tests, or my changes don't require any.
  • I added an app state migration, or my changes do not require one.
  • I have documented any follow-up work that this PR will require, or it does not require any.
  • I have added a changelog entry below, or my changes do not require one.

To the reviewers 👀

  • I would like at least one of the reviewers to run this PR on the simulator or device.
Changelog updates

Changelog updates

Cross-platform user-facing changes

iOS user-facing changes

Android user-facing changes

Dev changes

  • enable new architecture - brian, george, mounir

Need help with something? Have a look at our docs, or get in touch with us.

@brainbicycle brainbicycle self-assigned this Oct 7, 2025
@brainbicycle brainbicycle marked this pull request as draft October 7, 2025 19:01
@brainbicycle brainbicycle mentioned this pull request Oct 7, 2025
10 tasks
@MounirDhahri MounirDhahri force-pushed the moplat/new-arch-revisited branch 4 times, most recently from 6cb25b0 to 841f693 Compare October 14, 2025 10:34
@MounirDhahri MounirDhahri force-pushed the moplat/new-arch-revisited branch from 841f693 to f037931 Compare October 15, 2025 15:35
@MounirDhahri MounirDhahri marked this pull request as ready for review October 28, 2025 14:05
@MounirDhahri
Copy link
Member

I am opening the PR to make sure all CI stuff keeps on running

Copy link
Contributor

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

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

Greptile Overview

Greptile Summary

Enables React Native new architecture experiment by setting newArchEnabled=true on both iOS and Android platforms and converting native modules to C++ (.mm).

  • Enabled new architecture in android/gradle.properties, ios/Podfile, and ios/Podfile.properties.json
  • Converted ARAppDelegateHelper.m and ARPHPhotoPickerModule.m to .mm (Objective-C++) for new arch compilation compatibility
  • Updated react-native-context-menu-view and react-native-launch-arguments to fork branches with new architecture fixes
  • Added startTransition prop to FlagProvider to handle React 18 transitions
  • Bumped node cache version to v26

Issues found:

  • Logic error in photo picker: checking results.count instead of images.count after image loading could cause incorrect error handling

Additional Comments (1)

  1. ios/Artsy/Emission/EigenCommunications/ARPHPhotoPickerModule.mm, line 96 (link)

    logic: checking results.count == 0 here is incorrect - should check images.count == 0 since images may fail to load even when results exist

9 files reviewed, 2 comments

Edit Code Review Agent Settings | Greptile

Comment on lines +14 to 23

#import <AuthenticationServices/AuthenticationServices.h>
#import <SafariServices/SafariServices.h>
#import <FBSDKCoreKit/FBSDKCoreKit-swift.h>


#import <Firebase.h>
#import "BrazeReactBridge.h"
#import "BrazeReactUtils.h"
#import <BrazeUI/BrazeUI-Swift.h>
Copy link
Contributor

Choose a reason for hiding this comment

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

style: added imports for AuthenticationServices and SafariServices when converting to C++, but these frameworks don't appear to be used - consider removing unused imports

@MounirDhahri MounirDhahri force-pushed the moplat/new-arch-revisited branch from f037931 to ab97692 Compare November 14, 2025 09:04
@artsy artsy deleted a comment from ArtsyOpenSource Nov 14, 2025
@ArtsyOpenSource
Copy link
Contributor

ArtsyOpenSource commented Nov 14, 2025

This PR contains the following changes:

  • Dev changes (enable new architecture - brian, george, mounir - brainbicycle)

Generated by 🚫 dangerJS against 23f836f

@artsy-peril
Copy link
Contributor

artsy-peril bot commented Nov 14, 2025

zeego

Author: Fernando Rojo

Description: Logical UI primitives, made for screens.

Homepage: https://github.com/nandorojo/zeeg#readme

Createdabout 4 years ago
Last Updated10 months ago
LicenseMIT
Maintainers1
Releases73
Direct Dependencies@radix-ui/react-context-menu, @radix-ui/react-dropdown-menu and sf-symbols-typescript
Keywordsreact-native, ios and android
README

ERROR: No README data found!

react-native-ios-utilities

Author: Unknown

Description: Utilities for react-native + iOS and wrappers for using swift together with fabric/paper + JSI

Homepage: https://github.com/dominicstop/react-native-ios-utilities#readme

Createdover 3 years ago
Last Updated4 months ago
LicenseMIT
Maintainers1
Releases167
Keywordsreact-native, ios, utilities, utility, fabric, paper and JSI

react-native-ios-context-menu

Author: Unknown

Description: A react-native component to use context menu's (UIMenu) on iOS 13/14+

Homepage: https://github.com/dominicstop/react-native-ios-context-menu#readme

Createdabout 5 years ago
Last Updated4 months ago
LicenseMIT
Maintainers1
Releases117
Direct Dependencies@dominicstop/ts-event-emitter
Keywordsreact-native, ios, react-native-ios-context-menu and ReactNativeIosContextMenu

@react-native-menu/menu

Author: Jesse Katsumata

Description: UIMenu component for react-native

Homepage: https://github.com/react-native-menu/menu#readme

Createdabout 5 years ago
Last Updated4 months ago
LicenseMIT
Maintainers1
Releases41
Keywordsreact-native, ios and android
This README is too long to show.

New dependencies added: @react-native-menu/menu, react-native-ios-context-menu, react-native-ios-utilities and zeego.

Generated by 🚫 dangerJS against 23f836f

@MounirDhahri MounirDhahri force-pushed the moplat/new-arch-revisited branch 6 times, most recently from 01c525d to 17f792a Compare November 21, 2025 13:31
@MounirDhahri MounirDhahri force-pushed the moplat/new-arch-revisited branch from 17f792a to 32d96d6 Compare December 2, 2025 15:19
src/app/App.tsx Outdated

require("./system/ignoreLogs")

enableFreeze(true)
Copy link
Member

Choose a reason for hiding this comment

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

to look into again

}),
},
],
left: withTiming(followButtonTranslateX.value, { duration: 200, easing: Easing.sin }),
Copy link
Member

Choose a reason for hiding this comment

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

<Swiper
cards={artworks}
HeaderComponent={() => <InfiniteDiscoveryHeader topArtwork={topArtwork} />}
cards={[artworks[0]]}
Copy link
Member

Choose a reason for hiding this comment

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

revert this

@MounirDhahri MounirDhahri force-pushed the moplat/new-arch-revisited branch from 32d96d6 to 2a60107 Compare December 3, 2025 11:24
@MounirDhahri MounirDhahri force-pushed the moplat/new-arch-revisited branch from 2611752 to 918d89a Compare January 13, 2026 13:36
@github-actions
Copy link

github-actions bot commented Jan 13, 2026

🎉 Beta Versions Generated (commit: 918d89a)

Android 🤖

  • 8.91.0 (2026011313) - Available on Play Store
  • 8.91.0 (2026011313) - Available on Firebase

iOS 🍏

  • 8.91.0 (2026.01.13.13) - Available on Firebase

@artsy artsy deleted a comment from github-actions bot Jan 13, 2026
@artsy artsy deleted a comment from github-actions bot Jan 13, 2026
@artsy artsy deleted a comment from github-actions bot Jan 13, 2026
@artsy artsy deleted a comment from github-actions bot Jan 13, 2026
@artsy artsy deleted a comment from github-actions bot Jan 13, 2026
@artsy artsy deleted a comment from github-actions bot Jan 13, 2026
@artsy artsy deleted a comment from github-actions bot Jan 13, 2026
@artsy artsy deleted a comment from github-actions bot Jan 13, 2026
@artsy artsy deleted a comment from github-actions bot Jan 13, 2026
@artsy artsy deleted a comment from github-actions bot Jan 13, 2026
@artsy artsy deleted a comment from github-actions bot Jan 13, 2026
@artsy artsy deleted a comment from github-actions bot Jan 13, 2026
@artsy artsy deleted a comment from github-actions bot Jan 13, 2026
@artsy artsy deleted a comment from github-actions bot Jan 13, 2026
@artsy artsy deleted a comment from github-actions bot Jan 13, 2026
@github-actions
Copy link

github-actions bot commented Jan 13, 2026

🎉 Beta Versions Generated (commit: deb86af)

Android 🤖

  • 8.91.0 (2026011316) - Available on Firebase
  • 8.91.0 (2026011316) - Available on Play Store

iOS 🍏

  • 8.91.0 (2026.01.13.16) - Available on Firebase
  • 8.91.0 (2026.01.13.16) - Available on TestFlight

@github-actions
Copy link

github-actions bot commented Jan 14, 2026

🎉 Beta Versions Generated (commit: b77f447)

Android 🤖

  • 8.91.0 (2026011409) - Available on Firebase
  • 8.91.0 (2026011409) - Available on Play Store

iOS 🍏

  • 8.91.0 (2026.01.14.09) - Available on TestFlight
  • 8.91.0 (2026.01.14.09) - Available on Firebase

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants