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

feat(iOS): support bridgeless mode. #4681

Merged
merged 78 commits into from
Feb 16, 2025
Merged
Changes from 1 commit
Commits
Show all changes
78 commits
Select commit Hold shift + click to select a range
667f7a2
test(iOS): enable bridgeless mode on test app.
asafkorem Jan 8, 2025
0b37365
test(ios): fix swift bridge.
asafkorem Jan 8, 2025
b06b68c
demo(iOS): support bridgeless mode with new-arch.
asafkorem Jan 10, 2025
2e4d9d7
ci: ensure RN .73 without new arch works.
asafkorem Jan 10, 2025
ae22233
ci: update pipeline step title.
asafkorem Jan 10, 2025
03a8397
test(fix,ios): support background search.
asafkorem Jan 10, 2025
e75c276
test(ios): extend timer of visible message if needed.
asafkorem Jan 10, 2025
304afe0
fix(iOS): ignore `RCTAccessibilityElement` from view hierarchy.
asafkorem Jan 10, 2025
d13085e
test(ios): update `type` variants based on new-arch.
asafkorem Jan 10, 2025
924437c
test(iOS): make elements accessible for descendant/ancestor matchers.
asafkorem Jan 10, 2025
8881334
test(iOS): update view-hierarchy artifact for new arch view.
asafkorem Jan 10, 2025
6f325bf
feat(ios): support `RCTEnhancedScrollView` for scrolling.
asafkorem Jan 10, 2025
a60faac
fix(iOS): replace invalid return value.
asafkorem Jan 11, 2025
7bbace4
chore: bump `DetoxSync` submodule head.
asafkorem Jan 11, 2025
86343ff
fix(iOS): support `RNCSliderComponentView` slider.
asafkorem Jan 11, 2025
5f46e01
test: remove react-native .71 old test.
asafkorem Jan 11, 2025
9f40644
test(iOS): ensure wrapping element is accessible.
asafkorem Jan 11, 2025
c58cac8
test(ios): fix matcher class name.
asafkorem Jan 11, 2025
743390e
fix(ios): extract slider property only if exists.
asafkorem Jan 11, 2025
57a7d38
test(ios): undo skip tests due to new-arch.
asafkorem Jan 11, 2025
72c93fd
test(ios): change element accessibility for fabric tests.
asafkorem Jan 11, 2025
95388b5
feat(iOS): support `ToggleValueExpectation` for new arch.
asafkorem Jan 11, 2025
3d145bb
fix(iOS): migrate to RCT_EXPORT_METHOD.
asafkorem Jan 13, 2025
87c9ea2
test(ios): skip bridge stress test.
asafkorem Jan 13, 2025
44f3095
test: add @new-arch and @legacy test markers (for specifying test-env).
asafkorem Jan 14, 2025
f735c2b
test: skip tests on new arch.
asafkorem Jan 14, 2025
ec91497
test(ios): fix overlay messages layout
asafkorem Jan 14, 2025
b3db439
test(ios): fix test expectation
asafkorem Jan 15, 2025
6c88053
test(ios): fix accessibility.
asafkorem Jan 15, 2025
0e4fc22
feat: bump DetoxSync dependency.
asafkorem Jan 15, 2025
310bfe7
feat: bump DetoxSync dependency.
asafkorem Jan 15, 2025
958628d
test(ios): remove @legacy flag.
asafkorem Jan 15, 2025
694eb1a
chore: bump DetoxSync.
asafkorem Jan 16, 2025
3ff5526
test(unit): fix unit test.
asafkorem Jan 16, 2025
6bbfd8d
mark failing tests
asafkorem Jan 16, 2025
7d0b97f
Merge remote-tracking branch 'origin/master' into feat/bridgeless-mode
asafkorem Jan 16, 2025
a57dd5e
test: fix expectation.
asafkorem Jan 16, 2025
ac76f69
test(ios): fix toHaveToggleValue value.
asafkorem Jan 16, 2025
c685ea3
chore: update DetoxSync.
asafkorem Jan 18, 2025
4bd5010
test: reduce flakiness in stress screen test
asafkorem Jan 18, 2025
b1baeeb
test(StressScreen): use min value on JS timer stress test.
asafkorem Jan 19, 2025
caaf943
chore: bump detox-sync.
asafkorem Jan 19, 2025
569b65a
test: avoid missing key warnings.
asafkorem Jan 19, 2025
b7a44bd
test(e2e): remove test duplication.
asafkorem Jan 19, 2025
a09ee29
test: remove todos.
asafkorem Jan 19, 2025
2cacc25
chore: bump detox-sync.
asafkorem Jan 19, 2025
2cc6a62
ci: temp disable android tests.
asafkorem Jan 19, 2025
f8db9e7
ci: rename jobs.
asafkorem Jan 19, 2025
35b9d13
test(app): avoid missing key warning.
asafkorem Jan 19, 2025
3c989f2
test: mark legacy test failing.
asafkorem Jan 19, 2025
1073d38
fix: getAttributes for new-arch elements.
asafkorem Jan 19, 2025
ad4fcac
chore: update detox-sync.
asafkorem Jan 19, 2025
b8db8fe
test: make location test pass.
asafkorem Jan 19, 2025
afe892b
fix: type cast.
asafkorem Jan 19, 2025
01637c0
feat: expose util methods.
asafkorem Jan 19, 2025
773d8d4
fix(ios): date picker interaction.
asafkorem Jan 20, 2025
7ca1098
chore: bump DetoxSync with RN sync fixes.
asafkorem Jan 29, 2025
176be93
fix: bump DetoxSync.
asafkorem Jan 29, 2025
2c0bab2
Merge remote-tracking branch 'origin/master' into feat/bridgeless-mode
asafkorem Jan 29, 2025
bd12259
test(ios): update view-hierarchy snapshots (new-arch).
asafkorem Jan 29, 2025
9c78beb
fix(ios): support date-pickers on new-arch.
asafkorem Jan 29, 2025
3ebca52
fix(ios): support pickers on new arch.
asafkorem Jan 29, 2025
0a831b0
test(ios): update webview snapshots on new-arch.
asafkorem Jan 29, 2025
67e0898
test(ios): disable flaky test on new-arch.
asafkorem Jan 29, 2025
52b16fc
fix(ios, new arch): handle crash on the main-queue.
asafkorem Feb 1, 2025
915275c
test(ios): disable failing check on new-arch.
asafkorem Feb 1, 2025
abccfe5
test(ios): update web-view image snapshot.
asafkorem Feb 2, 2025
316ef6a
test(ios): apply changes due to new-arch class-name changes.
asafkorem Feb 2, 2025
b6ae4cc
fix(ios): JS crash handling on new-arch.
asafkorem Feb 9, 2025
743c2bb
test(ios): crash handling.
asafkorem Feb 9, 2025
2d498e7
chore(.github): update `upload-artifact` on actions.
asafkorem Feb 9, 2025
2e1cdb7
test(ios): mark flaky test.
asafkorem Feb 10, 2025
a40f974
chore: revent pipeline_common changes (comments).
asafkorem Feb 10, 2025
3718329
Merge branch 'master' into feat/bridgeless-mode
asafkorem Feb 10, 2025
525a6bb
Merge remote-tracking branch 'origin/master' into feat/bridgeless-mode
asafkorem Feb 12, 2025
193ae92
test: replace jestExpect with expectToThrow
asafkorem Feb 13, 2025
43f71e4
fix(ios): do not dispatch-async on mainthread if already running on.
asafkorem Feb 15, 2025
ec530a8
test(ios new arch): update snapshots.
asafkorem Feb 15, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
demo(iOS): support bridgeless mode with new-arch.
asafkorem committed Jan 15, 2025
commit b06b68cd526d5b3e5cd6c987e12a8ac7a26b204d
14 changes: 2 additions & 12 deletions examples/demo-react-native/ios/example/AppDelegate.h
Original file line number Diff line number Diff line change
@@ -1,16 +1,6 @@
/**
* Copyright (c) 2015-present, Facebook, Inc.
* All rights reserved.
*
* This source code is licensed under the BSD-style license found in the
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*/

#import <RCTAppDelegate.h>
#import <UIKit/UIKit.h>

@interface AppDelegate : UIResponder <UIApplicationDelegate>

@property (nonatomic, strong) UIWindow *window;
@interface AppDelegate : RCTAppDelegate

@end
43 changes: 16 additions & 27 deletions examples/demo-react-native/ios/example/AppDelegate.m
Original file line number Diff line number Diff line change
@@ -1,40 +1,29 @@
/**
* Copyright (c) 2015-present, Facebook, Inc.
* All rights reserved.
*
* This source code is licensed under the BSD-style license found in the
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*/

#import "AppDelegate.h"
#import <React/RCTRootView.h>

#import <React/RCTBundleURLProvider.h>

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
NSURL *jsCodeLocation;
#ifdef DEBUG
jsCodeLocation = [NSURL URLWithString:@"http://localhost:8081/index.ios.bundle?platform=ios&dev=true"];
#else
jsCodeLocation = [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];
#endif
self.moduleName = @"example";
self.initialProps = @{};

RCTRootView *rootView = [[RCTRootView alloc] initWithBundleURL:jsCodeLocation
moduleName:@"example"
initialProperties:nil
launchOptions:launchOptions];
rootView.backgroundColor = [[UIColor alloc] initWithRed:1.0f green:1.0f blue:1.0f alpha:1];
return [super application:application didFinishLaunchingWithOptions:launchOptions];
}

self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
UIViewController *rootViewController = [UIViewController new];
rootViewController.view = rootView;
self.window.rootViewController = rootViewController;
[self.window makeKeyAndVisible];
- (NSURL *)sourceURLForBridge:(RCTBridge *)bridge
{
return [self bundleURL];
}

return YES;
- (NSURL *)bundleURL
{
#if DEBUG
return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index"];
#else
return [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];
#endif
}

@end