Skip to content

feat(Android): RN 76 new arch for Android #7965

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

Merged
merged 55 commits into from
May 15, 2025
Merged

Conversation

gosha212
Copy link
Contributor

@gosha212 gosha212 commented Jan 28, 2025

Resolves #7966

@gosha212 gosha212 changed the title Feat/rn77 android newarch feat(Android): RN 76 new arch for Android Feb 20, 2025
@gosha212
Copy link
Contributor Author

The work for Android is Done

@d4vidi d4vidi linked an issue Feb 20, 2025 that may be closed by this pull request
@erennyuksell
Copy link

Hi, thank you for your hard work. When will this pr be merged and released in the next version? Is there an estimated time?

@gosha212
Copy link
Contributor Author

gosha212 commented Mar 3, 2025

@erennyuksell we are going to release a new version with Android and iOS support of new arch.
The Android implementation is finished and we are actively working on the iOS implementation. It still has a lot of issues and we can't commit to any specific timeline. My estimation is about 2 weeks - 2 month for the first RC version for both platforms.

@gosha212 gosha212 changed the base branch from feat/rn77 to master March 3, 2025 17:22
Copy link
Collaborator

@d4vidi d4vidi left a comment

Choose a reason for hiding this comment

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

Notes and suggestions - for ~now
Test @Igore's - discuss offline

gosha212 and others added 9 commits March 23, 2025 16:15
…ReactView.java

Co-authored-by: d4vidi <amit.d4vidi@gmail.com>
…s/LayoutFactory.java

Co-authored-by: d4vidi <amit.d4vidi@gmail.com>
…s/LayoutFactory.java

Co-authored-by: d4vidi <amit.d4vidi@gmail.com>
Co-authored-by: d4vidi <amit.d4vidi@gmail.com>
# Conflicts:
#	lib/android/app/src/test/java/com/reactnativenavigation/mocks/TitleBarReactViewCreatorMock.java
@gosha212
Copy link
Contributor Author

gosha212 commented Apr 8, 2025

First preview of new arch is out https://github.com/wix/react-native-navigation/releases/tag/8.1.0-alpha01

@peteAhn
Copy link

peteAhn commented Apr 8, 2025

First preview of new arch is out https://github.com/wix/react-native-navigation/releases/tag/8.1.0-alpha01

It happened android compile error

CMake Error at app/node_modules/react-native/ReactAndroid/cmake-utils/ReactNative-application.cmake:103 (target_link_libraries):
    Cannot specify link libraries for target "react_codegen_rnnavigation" which
    is not built by this project.
  Call Stack (most recent call first):
    CMakeLists.txt:31 (include)
at com.android.build.gradle.internal.cxx.process.ExecuteProcessKt.execute(ExecuteProcess.kt:288)
  	at com.android.build.gradle.internal.cxx.process.ExecuteProcessKt$executeProcess$1.invoke(ExecuteProcess.kt:108)
  	at com.android.build.gradle.internal.cxx.process.ExecuteProcessKt$executeProcess$1.invoke(ExecuteProcess.kt:106)
  	at com.android.build.gradle.internal.cxx.timing.TimingEnvironmentKt.time(TimingEnvironment.kt:32)

gosha212 and others added 3 commits April 10, 2025 17:45
* auto renaming

* changes

* native fixes - passes build with manual change in RCTAppSetupUtils.h

* all works still with change in RCTAppSetupUtils

* loads the menu - playground works

* fixed event receivers

* hermes falg

* fix side menu pres test

* test ot .mm

* comment out test that fail linkage

* fix testSetRoot_withAnimation and testPush_shouldResolvePromiseAndSendCommandCompletionWithPushedComponentId

* fix linking by a hack

* remove invalidation

* fix Stub in Turbo Module

* Fix StaticLifecycleEvents tests

* Delay will appear and did appear when component not already mounted

* Update RNNReactView to use RCTSurfacePresenterStub and adjust component lifecycle methods for new architecture

* Better implementation

* Fix buttons

* Fix button order test

* Another buttons fix

* Refactor component lifecycle methods in RNNReactButtonView and RNNReactView

* fix snapshot c++ error

* fix snapshot refactor mm

* fix snapshot c code

* view controller factory

* moved turbo module spec to async

* codegen type

* cleanup native sender

* Fixed types

* adjust interface

* fix remaining e2e

* another test bites the dust

* Disable failing E2E, failing snapshot and Turbo Modules on Android

* comment ios test out

* wrong test

* Fixed android screenshot

* Update package.json version to 8.1.0-alpha01 [buildkite skip]

* Update package.json version to 8.1.0-alpha [buildkite skip]

* Android Turbo Modules (#7999)

* Implemented turbo modules for android

* Implemented missing method

* Complete Android Turbo module implementation

* Complete Android Turbo module implementation

* Undo some unneeded fixes

* Fixed build on ios

* WIP

(cherry picked from commit c8a2fad)

* Revert "WIP"

This reverts commit 497ebd6.

* Feat/rn 76 to 77 upgrade (#8005)

* WIP

* Update package-lock.json

* Fixed ios build

* Fixed unit tests

* Fixed ios build

* Fixed ios build

* Revert "Fixed ios build"

This reverts commit 3dbd98a.

* Fixed ios build

* fix tests for ios

* Fixed eslint

* DO NOT RELEASE THIS COMMIT!

* Revert "DO NOT RELEASE THIS COMMIT!"

This reverts commit b0e840e.

* Fixed build for ios 77

* Fixed android turbo modules generation and autolinking (#8006)

* iOS: RN 77 no lifecycle events for Top Bar Title component (#8015)

The problem was that when setting a titleView of a navigationItem the normal life cycle flow of a view will not be called so the RNNReactView componentWillAppear and DidAppear need to be implicitly called. This was somehow removed from the TopBarTitlePresenter.mm unit but is present on the current Master branch's file.

This PR restores those two lines and also actives the Unit test for that module.

* Better alignment of willAppear and didAppear events throughout the lifecycle (#8019)

* Better alignment of willAppear and didAppear events throughout the lifecycle

* clean up of logs and polymorphism.

* Reverting some changes

* Update for NavigationTests. Two tests still fail, RNNCommandsHandlerTest and RNNModalManagerEventHandlerTest, which in this push are disabled.

* Fixing pr

* More fixes for PR

---------

Co-authored-by: yogevbd <yogev132@gmail.com>
Co-authored-by: Georgy Steshin <georgys@wix.com>
Co-authored-by: undefined <undefined>
Co-authored-by: mobileoss <mobileoss@wix.com>
Co-authored-by: Georgy Steshin <gosha212@gmail.com>
Co-authored-by: markdevocht <50657916+markdevocht@users.noreply.github.com>
@gosha212 gosha212 merged commit e06cc38 into master May 15, 2025
4 of 5 checks passed
@gosha212 gosha212 deleted the feat/rn77-android-newarch branch May 15, 2025 08:21
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.

React Native 76 - new arch (android)
5 participants