-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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: add Fabric on iOS without ComponentViews #1821
Merged
Merged
Changes from all commits
Commits
Show all changes
93 commits
Select commit
Hold shift + click to select a range
4cf59b8
feat: add FabricExample app
WoLewicki 73898fc
feat: add first look on Android implementation
WoLewicki ff85474
feat: android compiling
WoLewicki 2b421a2
feat: first look at adding Circle
WoLewicki 0539a45
feat: start iOS work with svgView and Circle
WoLewicki 7ebd829
feat: use contentViews and add group and circle
WoLewicki b5336b5
feat: circle rendered on iOS
WoLewicki c13fa3a
feat: add fill on Android
WoLewicki ae77760
chore: upgrade rn version to 0.68.1
WoLewicki cbb8abe
feat: add implicit changes from 0.68.1
WoLewicki 9927404
fix: add proper ndk resolving for m1
WoLewicki 0bdc342
feat: visible circle on Android
WoLewicki adb7d0d
feat: add CI for Fabric
WoLewicki b9655f5
Merge branch 'main' into @wolewicki/add-fabric
WoLewicki aa0fd08
feat: add fill prop on iOS by changing prop to object
WoLewicki c9b539e
feat: add fill prop on Android by changing prop to object
WoLewicki 82fcd44
feat: add compiling of macos and Android on paper
WoLewicki e4fe662
feat: all props in svgView and NumberProp to string
WoLewicki 44cc926
feat: add almost all props to group component
WoLewicki 03ec651
feat: add common props parsing to group and circle
WoLewicki 02f0f2d
fix: minor improvements
WoLewicki 57fd538
fix: rename contentView and props so it is easier to replicate
WoLewicki 0ee49fb
feat: add clipPath
WoLewicki 67d7eae
feat: add defs
WoLewicki b080954
feat: add ellipse
WoLewicki b3bf699
fix: remove properties from circle header
WoLewicki a50eab0
feat: add foreignObject and make template functions static
WoLewicki aa2c427
fix: remove static for now
WoLewicki 9826a9a
feat: add line
WoLewicki 870bf0b
feat: add rect
WoLewicki 5ca6a74
fix: change include to import and name of FabricConversions
WoLewicki d86f73c
feat: add linearGradient
WoLewicki 56113b6
feat: add radialGradient
WoLewicki 187f526
feat: add marker and abstract meetOrSlice
WoLewicki 53b4f91
feat: add mask
WoLewicki 5858877
feat: add path
WoLewicki 7b67ee3
feat: add pattern
WoLewicki ab45eac
feat: add symbol and change its viewManager inheritance to match view
WoLewicki 27fbd5f
fix: dont stringify undefined and null values
WoLewicki d9be439
feat: add use
WoLewicki 33abbb8
fix: better stringifying implementation
WoLewicki ddbafe2
feat: add text
WoLewicki 6a0cae6
feat: add textPath
WoLewicki 6642d0b
feat: add tspan
WoLewicki fbff912
feat: add image without src prop
WoLewicki 284acce
fix: add adding children to text components
WoLewicki 87a7d4f
fix: color resolving issues
WoLewicki 7e08472
feat: add Example app files to FabricExample
WoLewicki 22d5a56
fix: remove unnecessary files with components
WoLewicki 8c29e33
feat: first look at image source
WoLewicki e8de06b
feat: exlude fabric-specific files on old arch
WoLewicki 17c4758
fix: cleanup svgView and add missing prop updates
WoLewicki 3150b7e
chore: extract mount and unmount to functions
WoLewicki f05a2eb
fix: extract group props to methods and types and fix text handling b…
WoLewicki 182d623
fix: wrong prop
WoLewicki 2bb622d
fix: make commands work and add example to FabricExample
WoLewicki d52e224
fix: make touch responders work with kinda hacky solution
WoLewicki e27adad
fix: use currentBridge directly each time so it works after reloads
WoLewicki 1a2cbd7
feat: make project compile with all .mm files and transfer circle
WoLewicki 82675cf
feat: reset all props of circle so it recycles correctly
WoLewicki 3b8767f
feat: add rest of the shapes
WoLewicki fe51eae
feat: add imgae
WoLewicki 5ff0854
feat: add defs
WoLewicki bf8c7de
feat: add gradients
WoLewicki 29bdf34
feat: add path
WoLewicki 3c3a7a7
feat: add use
WoLewicki fcb7104
feat: add group
WoLewicki 4ccd529
feat: add clipPath
WoLewicki c1b0d91
feat: add foreignObject
WoLewicki ddcc1fe
feat: add marker
WoLewicki 1762c33
feat: add mask
WoLewicki cef8380
feat: add pattern
WoLewicki 877dd16
feat: add symbol
WoLewicki 26a3aaa
feat: add text
WoLewicki c865132
feat: add textPath
WoLewicki 60bd064
feat: add TSpan
WoLewicki e37c7ba
feat: add svgView with black background
WoLewicki da22d8d
fix: remove opaque background of svg
WoLewicki cac788d
feat: apply review suggestions
WoLewicki 634f1c3
fix: make non-fabric compile
WoLewicki 9c1cddf
fix: remove contentView from VMs
WoLewicki 9fa4c63
fix: remove unnecessary code and fix textPath recycling
WoLewicki 61a430e
feat: clean up code
WoLewicki eb5f1c7
feat: add tranform handling via core tranform prop
WoLewicki 6275823
fix: remove all android-related changes
WoLewicki 1492e41
chore: merge current main
WoLewicki 8425fbb
feat: make ios compile wo fabric
WoLewicki 94a3caf
fix: apply changes to CI for Fabric
WoLewicki 23f7e87
fix: run format
WoLewicki e75abe1
fix: tests
WoLewicki d33087d
fix: changes for macos
WoLewicki e8614eb
fix: macos not compiling
WoLewicki 6aa9a82
chore: remove App.tsx from main folder
WoLewicki File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
|
||
[android] | ||
target = Google Inc.:Google APIs:23 | ||
|
||
[maven_repositories] | ||
central = https://repo1.maven.org/maven2 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
module.exports = { | ||
root: true, | ||
extends: '@react-native-community', | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,67 @@ | ||
[ignore] | ||
; We fork some components by platform | ||
.*/*[.]android.js | ||
|
||
; Ignore "BUCK" generated dirs | ||
<PROJECT_ROOT>/\.buckd/ | ||
|
||
; Ignore polyfills | ||
node_modules/react-native/Libraries/polyfills/.* | ||
|
||
; Flow doesn't support platforms | ||
.*/Libraries/Utilities/LoadingView.js | ||
|
||
.*/node_modules/resolve/test/resolver/malformed_package_json/package\.json$ | ||
|
||
[untyped] | ||
.*/node_modules/@react-native-community/cli/.*/.* | ||
|
||
[include] | ||
|
||
[libs] | ||
node_modules/react-native/interface.js | ||
node_modules/react-native/flow/ | ||
|
||
[options] | ||
emoji=true | ||
|
||
exact_by_default=true | ||
|
||
format.bracket_spacing=false | ||
|
||
module.file_ext=.js | ||
module.file_ext=.json | ||
module.file_ext=.ios.js | ||
|
||
munge_underscores=true | ||
|
||
module.name_mapper='^react-native/\(.*\)$' -> '<PROJECT_ROOT>/node_modules/react-native/\1' | ||
module.name_mapper='^@?[./a-zA-Z0-9$_-]+\.\(bmp\|gif\|jpg\|jpeg\|png\|psd\|svg\|webp\|m4v\|mov\|mp4\|mpeg\|mpg\|webm\|aac\|aiff\|caf\|m4a\|mp3\|wav\|html\|pdf\)$' -> '<PROJECT_ROOT>/node_modules/react-native/Libraries/Image/RelativeImageStub' | ||
|
||
suppress_type=$FlowIssue | ||
suppress_type=$FlowFixMe | ||
suppress_type=$FlowFixMeProps | ||
suppress_type=$FlowFixMeState | ||
|
||
[lints] | ||
sketchy-null-number=warn | ||
sketchy-null-mixed=warn | ||
sketchy-number=warn | ||
untyped-type-import=warn | ||
nonstrict-import=warn | ||
deprecated-type=warn | ||
unsafe-getters-setters=warn | ||
unnecessary-invariant=warn | ||
signature-verification-failure=warn | ||
|
||
[strict] | ||
deprecated-type | ||
nonstrict-import | ||
sketchy-null | ||
unclear-type | ||
unsafe-getters-setters | ||
untyped-import | ||
untyped-type-import | ||
|
||
[version] | ||
^0.170.0 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,61 @@ | ||
# OSX | ||
# | ||
.DS_Store | ||
|
||
# Xcode | ||
# | ||
build/ | ||
*.pbxuser | ||
!default.pbxuser | ||
*.mode1v3 | ||
!default.mode1v3 | ||
*.mode2v3 | ||
!default.mode2v3 | ||
*.perspectivev3 | ||
!default.perspectivev3 | ||
xcuserdata | ||
*.xccheckout | ||
*.moved-aside | ||
DerivedData | ||
*.hmap | ||
*.ipa | ||
*.xcuserstate | ||
|
||
# Android/IntelliJ | ||
# | ||
build/ | ||
.idea | ||
.gradle | ||
local.properties | ||
*.iml | ||
*.hprof | ||
|
||
# node.js | ||
# | ||
node_modules/ | ||
npm-debug.log | ||
yarn-error.log | ||
|
||
# BUCK | ||
buck-out/ | ||
\.buckd/ | ||
*.keystore | ||
!debug.keystore | ||
|
||
# fastlane | ||
# | ||
# It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the | ||
# screenshots whenever they are needed. | ||
# For more information about the recommended setup visit: | ||
# https://docs.fastlane.tools/best-practices/source-control/ | ||
|
||
*/fastlane/report.xml | ||
*/fastlane/Preview.html | ||
*/fastlane/screenshots | ||
|
||
# Bundle artifact | ||
*.jsbundle | ||
|
||
# Ruby / CocoaPods | ||
/ios/Pods/ | ||
/vendor/bundle/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
module.exports = { | ||
arrowParens: 'avoid', | ||
bracketSameLine: true, | ||
bracketSpacing: false, | ||
singleQuote: true, | ||
trailingComma: 'all', | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
{} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
source 'https://rubygems.org' | ||
|
||
# You may use http://rbenv.org/ or https://rvm.io/ to install and use this version | ||
ruby '2.7.4' | ||
|
||
gem 'cocoapods', '~> 1.11', '>= 1.11.2' |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,100 @@ | ||
GEM | ||
remote: https://rubygems.org/ | ||
specs: | ||
CFPropertyList (3.0.5) | ||
rexml | ||
activesupport (6.1.5) | ||
concurrent-ruby (~> 1.0, >= 1.0.2) | ||
i18n (>= 1.6, < 2) | ||
minitest (>= 5.1) | ||
tzinfo (~> 2.0) | ||
zeitwerk (~> 2.3) | ||
addressable (2.8.0) | ||
public_suffix (>= 2.0.2, < 5.0) | ||
algoliasearch (1.27.5) | ||
httpclient (~> 2.8, >= 2.8.3) | ||
json (>= 1.5.1) | ||
atomos (0.1.3) | ||
claide (1.1.0) | ||
cocoapods (1.11.3) | ||
addressable (~> 2.8) | ||
claide (>= 1.0.2, < 2.0) | ||
cocoapods-core (= 1.11.3) | ||
cocoapods-deintegrate (>= 1.0.3, < 2.0) | ||
cocoapods-downloader (>= 1.4.0, < 2.0) | ||
cocoapods-plugins (>= 1.0.0, < 2.0) | ||
cocoapods-search (>= 1.0.0, < 2.0) | ||
cocoapods-trunk (>= 1.4.0, < 2.0) | ||
cocoapods-try (>= 1.1.0, < 2.0) | ||
colored2 (~> 3.1) | ||
escape (~> 0.0.4) | ||
fourflusher (>= 2.3.0, < 3.0) | ||
gh_inspector (~> 1.0) | ||
molinillo (~> 0.8.0) | ||
nap (~> 1.0) | ||
ruby-macho (>= 1.0, < 3.0) | ||
xcodeproj (>= 1.21.0, < 2.0) | ||
cocoapods-core (1.11.3) | ||
activesupport (>= 5.0, < 7) | ||
addressable (~> 2.8) | ||
algoliasearch (~> 1.0) | ||
concurrent-ruby (~> 1.1) | ||
fuzzy_match (~> 2.0.4) | ||
nap (~> 1.0) | ||
netrc (~> 0.11) | ||
public_suffix (~> 4.0) | ||
typhoeus (~> 1.0) | ||
cocoapods-deintegrate (1.0.5) | ||
cocoapods-downloader (1.5.1) | ||
cocoapods-plugins (1.0.0) | ||
nap | ||
cocoapods-search (1.0.1) | ||
cocoapods-trunk (1.6.0) | ||
nap (>= 0.8, < 2.0) | ||
netrc (~> 0.11) | ||
cocoapods-try (1.2.0) | ||
colored2 (3.1.2) | ||
concurrent-ruby (1.1.9) | ||
escape (0.0.4) | ||
ethon (0.15.0) | ||
ffi (>= 1.15.0) | ||
ffi (1.15.5) | ||
fourflusher (2.3.1) | ||
fuzzy_match (2.0.4) | ||
gh_inspector (1.1.3) | ||
httpclient (2.8.3) | ||
i18n (1.10.0) | ||
concurrent-ruby (~> 1.0) | ||
json (2.6.1) | ||
minitest (5.15.0) | ||
molinillo (0.8.0) | ||
nanaimo (0.3.0) | ||
nap (1.1.0) | ||
netrc (0.11.0) | ||
public_suffix (4.0.6) | ||
rexml (3.2.5) | ||
ruby-macho (2.5.1) | ||
typhoeus (1.4.0) | ||
ethon (>= 0.9.0) | ||
tzinfo (2.0.4) | ||
concurrent-ruby (~> 1.0) | ||
xcodeproj (1.21.0) | ||
CFPropertyList (>= 2.3.3, < 4.0) | ||
atomos (~> 0.1.3) | ||
claide (>= 1.0.2, < 2.0) | ||
colored2 (~> 3.1) | ||
nanaimo (~> 0.3.0) | ||
rexml (~> 3.2.4) | ||
zeitwerk (2.5.4) | ||
|
||
PLATFORMS | ||
ruby | ||
|
||
DEPENDENCIES | ||
cocoapods (~> 1.11, >= 1.11.2) | ||
|
||
RUBY VERSION | ||
ruby 2.7.4p191 | ||
|
||
BUNDLED WITH | ||
2.2.27 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
BUNDLE_PATH: "vendor/bundle" | ||
BUNDLE_FORCE_RUBY_PLATFORM: 1 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
2.7.4 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
# To learn about Buck see [Docs](https://buckbuild.com/). | ||
# To run your application with Buck: | ||
# - install Buck | ||
# - `npm start` - to start the packager | ||
# - `cd android` | ||
# - `keytool -genkey -v -keystore keystores/debug.keystore -storepass android -alias androiddebugkey -keypass android -dname "CN=Android Debug,O=Android,C=US"` | ||
# - `./gradlew :app:copyDownloadableDepsToLibs` - make all Gradle compile dependencies available to Buck | ||
# - `buck install -r android/app` - compile, install and run application | ||
# | ||
|
||
load(":build_defs.bzl", "create_aar_targets", "create_jar_targets") | ||
|
||
lib_deps = [] | ||
|
||
create_aar_targets(glob(["libs/*.aar"])) | ||
|
||
create_jar_targets(glob(["libs/*.jar"])) | ||
|
||
android_library( | ||
name = "all-libs", | ||
exported_deps = lib_deps, | ||
) | ||
|
||
android_library( | ||
name = "app-code", | ||
srcs = glob([ | ||
"src/main/java/**/*.java", | ||
]), | ||
deps = [ | ||
":all-libs", | ||
":build_config", | ||
":res", | ||
], | ||
) | ||
|
||
android_build_config( | ||
name = "build_config", | ||
package = "com.fabricexample", | ||
) | ||
|
||
android_resource( | ||
name = "res", | ||
package = "com.fabricexample", | ||
res = "src/main/res", | ||
) | ||
|
||
android_binary( | ||
name = "app", | ||
keystore = "//android/keystores:debug", | ||
manifest = "src/main/AndroidManifest.xml", | ||
package_type = "debug", | ||
deps = [ | ||
":app-code", | ||
], | ||
) |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ruby was bumped up to '2.7.5' with React Native 0.69.0 however I doubt it would cause any problems.