├── .bundle
└── config
├── .editorconfig
├── .eslintrc.js
├── .gitignore
├── .husky
└── pre-commit
├── .prettierignore
├── .prettierrc.js
├── .watchmanconfig
├── App.tsx
├── CODE_OF_CONDUCT.md
├── Gemfile
├── Gemfile.lock
├── LICENSE
├── README.md
├── __tests__
└── App.test.tsx
├── android
├── app
│ ├── build.gradle
│ ├── debug.keystore
│ ├── proguard-rules.pro
│ └── src
│ │ ├── debug
│ │ └── AndroidManifest.xml
│ │ └── main
│ │ ├── AndroidManifest.xml
│ │ ├── java
│ │ └── com
│ │ │ └── falwithreactnative
│ │ │ ├── MainActivity.kt
│ │ │ └── MainApplication.kt
│ │ └── res
│ │ ├── drawable
│ │ └── rn_edit_text_material.xml
│ │ ├── mipmap-hdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-mdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-xhdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-xxhdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ ├── mipmap-xxxhdpi
│ │ ├── ic_launcher.png
│ │ └── ic_launcher_round.png
│ │ └── values
│ │ ├── strings.xml
│ │ └── styles.xml
├── build.gradle
├── gradle.properties
├── gradle
│ └── wrapper
│ │ ├── gradle-wrapper.jar
│ │ └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
└── settings.gradle
├── app.json
├── babel.config.js
├── index.js
├── ios
├── .xcode.env
├── FalWithReactNative.xcodeproj
│ ├── project.pbxproj
│ └── xcshareddata
│ │ └── xcschemes
│ │ └── FalWithReactNative.xcscheme
├── FalWithReactNative.xcworkspace
│ └── contents.xcworkspacedata
├── FalWithReactNative
│ ├── AppDelegate.h
│ ├── AppDelegate.mm
│ ├── Images.xcassets
│ │ ├── AppIcon.appiconset
│ │ │ └── Contents.json
│ │ └── Contents.json
│ ├── Info.plist
│ ├── LaunchScreen.storyboard
│ └── main.m
├── FalWithReactNativeTests
│ ├── FalWithReactNativeTests.m
│ └── Info.plist
├── Podfile
└── Podfile.lock
├── jest.config.js
├── metro.config.js
├── package-lock.json
├── package.json
├── react-native.config.js
├── src
├── components
│ ├── core.tsx
│ ├── screen.tsx
│ └── theme.ts
└── screens
│ ├── drawing.tsx
│ └── home.tsx
├── tailwind.config.js
└── tsconfig.json
/.bundle/config:
--------------------------------------------------------------------------------
1 | BUNDLE_PATH: "vendor/bundle"
2 | BUNDLE_FORCE_RUBY_PLATFORM: 1
3 |
--------------------------------------------------------------------------------
/.editorconfig:
--------------------------------------------------------------------------------
1 | # Editor configuration, see http://editorconfig.org
2 | root = true
3 |
4 | [*]
5 | charset = utf-8
6 | indent_style = space
7 | indent_size = 2
8 | insert_final_newline = true
9 | trim_trailing_whitespace = true
10 |
11 | [*.md]
12 | max_line_length = off
13 | trim_trailing_whitespace = false
14 |
--------------------------------------------------------------------------------
/.eslintrc.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | root: true,
3 | extends: [
4 | 'standard',
5 | 'plugin:react/recommended',
6 | 'plugin:import/recommended',
7 | 'plugin:import/typescript',
8 | 'prettier',
9 | ],
10 | };
11 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # OSX
2 | #
3 | .DS_Store
4 |
5 | # Xcode
6 | #
7 | build/
8 | *.pbxuser
9 | !default.pbxuser
10 | *.mode1v3
11 | !default.mode1v3
12 | *.mode2v3
13 | !default.mode2v3
14 | *.perspectivev3
15 | !default.perspectivev3
16 | xcuserdata
17 | *.xccheckout
18 | *.moved-aside
19 | DerivedData
20 | *.hmap
21 | *.ipa
22 | *.xcuserstate
23 | ios/.xcode.env.local
24 |
25 | # Android/IntelliJ
26 | #
27 | build/
28 | .idea
29 | .gradle
30 | local.properties
31 | *.iml
32 | *.hprof
33 | .cxx/
34 | *.keystore
35 | !debug.keystore
36 |
37 | # node.js
38 | #
39 | node_modules/
40 | npm-debug.log
41 | yarn-error.log
42 |
43 | # fastlane
44 | #
45 | # It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the
46 | # screenshots whenever they are needed.
47 | # For more information about the recommended setup visit:
48 | # https://docs.fastlane.tools/best-practices/source-control/
49 |
50 | **/fastlane/report.xml
51 | **/fastlane/Preview.html
52 | **/fastlane/screenshots
53 | **/fastlane/test_output
54 |
55 | # Bundle artifact
56 | *.jsbundle
57 |
58 | # Ruby / CocoaPods
59 | /ios/Pods/
60 | /vendor/bundle/
61 |
62 | # Temporary files created by Metro to check the health of the file watcher
63 | .metro-health-check*
64 |
65 | # testing
66 | /coverage
67 |
--------------------------------------------------------------------------------
/.husky/pre-commit:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env sh
2 | . "$(dirname -- "$0")/_/husky.sh"
3 |
4 | npx lint-staged
5 |
--------------------------------------------------------------------------------
/.prettierignore:
--------------------------------------------------------------------------------
1 | .bundle/
2 | android/
3 | ios/
4 | node_modules/
5 | vendor/
--------------------------------------------------------------------------------
/.prettierrc.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | bracketSameLine: true,
3 | bracketSpacing: true,
4 | singleQuote: true,
5 | trailingComma: 'all',
6 | plugins: ['@trivago/prettier-plugin-sort-imports'],
7 | };
8 |
--------------------------------------------------------------------------------
/.watchmanconfig:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/App.tsx:
--------------------------------------------------------------------------------
1 | import * as eva from '@eva-design/eva';
2 | import * as fal from '@fal-ai/serverless-client';
3 | import { createDrawerNavigator } from '@react-navigation/drawer';
4 | import { NavigationContainer } from '@react-navigation/native';
5 | import { ApplicationProvider, useTheme } from '@ui-kitten/components';
6 | import React from 'react';
7 | import { appTheme } from '~/components/theme';
8 | import { DrawingScreen } from '~/screens/drawing';
9 | import { HomeScreen } from '~/screens/home';
10 |
11 | const Drawer = createDrawerNavigator();
12 |
13 | fal.config({
14 | proxyUrl: 'http://localhost:3333/api/fal/proxy',
15 | });
16 |
17 | function App() {
18 | return (
19 |
20 |
21 |
22 | );
23 | }
24 |
25 | function Navigation() {
26 | const theme = useTheme();
27 | return (
28 |
29 |
49 |
50 |
51 |
52 |
53 | );
54 | }
55 |
56 | export default App;
57 |
--------------------------------------------------------------------------------
/CODE_OF_CONDUCT.md:
--------------------------------------------------------------------------------
1 | # Contributor Covenant Code of Conduct
2 |
3 | ## Our Pledge
4 |
5 | We as members, contributors, and leaders pledge to make participation in our
6 | community a harassment-free experience for everyone, regardless of age, body
7 | size, visible or invisible disability, ethnicity, sex characteristics, gender
8 | identity and expression, level of experience, education, socio-economic status,
9 | nationality, personal appearance, race, caste, color, religion, or sexual
10 | identity and orientation.
11 |
12 | We pledge to act and interact in ways that contribute to an open, welcoming,
13 | diverse, inclusive, and healthy community.
14 |
15 | ## Our Standards
16 |
17 | Examples of behavior that contributes to a positive environment for our
18 | community include:
19 |
20 | - Demonstrating empathy and kindness toward other people
21 | - Being respectful of differing opinions, viewpoints, and experiences
22 | - Giving and gracefully accepting constructive feedback
23 | - Accepting responsibility and apologizing to those affected by our mistakes,
24 | and learning from the experience
25 | - Focusing on what is best not just for us as individuals, but for the overall
26 | community
27 |
28 | Examples of unacceptable behavior include:
29 |
30 | - The use of sexualized language or imagery, and sexual attention or advances of
31 | any kind
32 | - Trolling, insulting or derogatory comments, and personal or political attacks
33 | - Public or private harassment
34 | - Publishing others' private information, such as a physical or email address,
35 | without their explicit permission
36 | - Other conduct which could reasonably be considered inappropriate in a
37 | professional setting
38 |
39 | ## Enforcement Responsibilities
40 |
41 | Community leaders are responsible for clarifying and enforcing our standards of
42 | acceptable behavior and will take appropriate and fair corrective action in
43 | response to any behavior that they deem inappropriate, threatening, offensive,
44 | or harmful.
45 |
46 | Community leaders have the right and responsibility to remove, edit, or reject
47 | comments, commits, code, wiki edits, issues, and other contributions that are
48 | not aligned to this Code of Conduct, and will communicate reasons for moderation
49 | decisions when appropriate.
50 |
51 | ## Scope
52 |
53 | This Code of Conduct applies within all community spaces, and also applies when
54 | an individual is officially representing the community in public spaces.
55 | Examples of representing our community include using an official e-mail address,
56 | posting via an official social media account, or acting as an appointed
57 | representative at an online or offline event.
58 |
59 | ## Enforcement
60 |
61 | Instances of abusive, harassing, or otherwise unacceptable behavior may be
62 | reported to the community leaders responsible for enforcement at
63 | [INSERT CONTACT METHOD].
64 | All complaints will be reviewed and investigated promptly and fairly.
65 |
66 | All community leaders are obligated to respect the privacy and security of the
67 | reporter of any incident.
68 |
69 | ## Enforcement Guidelines
70 |
71 | Community leaders will follow these Community Impact Guidelines in determining
72 | the consequences for any action they deem in violation of this Code of Conduct:
73 |
74 | ### 1. Correction
75 |
76 | **Community Impact**: Use of inappropriate language or other behavior deemed
77 | unprofessional or unwelcome in the community.
78 |
79 | **Consequence**: A private, written warning from community leaders, providing
80 | clarity around the nature of the violation and an explanation of why the
81 | behavior was inappropriate. A public apology may be requested.
82 |
83 | ### 2. Warning
84 |
85 | **Community Impact**: A violation through a single incident or series of
86 | actions.
87 |
88 | **Consequence**: A warning with consequences for continued behavior. No
89 | interaction with the people involved, including unsolicited interaction with
90 | those enforcing the Code of Conduct, for a specified period of time. This
91 | includes avoiding interactions in community spaces as well as external channels
92 | like social media. Violating these terms may lead to a temporary or permanent
93 | ban.
94 |
95 | ### 3. Temporary Ban
96 |
97 | **Community Impact**: A serious violation of community standards, including
98 | sustained inappropriate behavior.
99 |
100 | **Consequence**: A temporary ban from any sort of interaction or public
101 | communication with the community for a specified period of time. No public or
102 | private interaction with the people involved, including unsolicited interaction
103 | with those enforcing the Code of Conduct, is allowed during this period.
104 | Violating these terms may lead to a permanent ban.
105 |
106 | ### 4. Permanent Ban
107 |
108 | **Community Impact**: Demonstrating a pattern of violation of community
109 | standards, including sustained inappropriate behavior, harassment of an
110 | individual, or aggression toward or disparagement of classes of individuals.
111 |
112 | **Consequence**: A permanent ban from any sort of public interaction within the
113 | community.
114 |
115 | ## Attribution
116 |
117 | This Code of Conduct is adapted from the [Contributor Covenant][homepage],
118 | version 2.1, available at
119 | [https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1].
120 |
121 | Community Impact Guidelines were inspired by
122 | [Mozilla's code of conduct enforcement ladder][Mozilla CoC].
123 |
124 | For answers to common questions about this code of conduct, see the FAQ at
125 | [https://www.contributor-covenant.org/faq][FAQ]. Translations are available at
126 | [https://www.contributor-covenant.org/translations][translations].
127 |
128 | [homepage]: https://www.contributor-covenant.org
129 | [v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html
130 | [Mozilla CoC]: https://github.com/mozilla/diversity
131 | [FAQ]: https://www.contributor-covenant.org/faq
132 | [translations]: https://www.contributor-covenant.org/translations
133 |
--------------------------------------------------------------------------------
/Gemfile:
--------------------------------------------------------------------------------
1 | source 'https://rubygems.org'
2 |
3 | # You may use http://rbenv.org/ or https://rvm.io/ to install and use this version
4 | ruby ">= 2.6.10"
5 |
6 | gem 'cocoapods', '~> 1.13'
7 | gem 'activesupport', '>= 6.1.7.3', '< 7.1.0'
8 |
--------------------------------------------------------------------------------
/Gemfile.lock:
--------------------------------------------------------------------------------
1 | GEM
2 | remote: https://rubygems.org/
3 | specs:
4 | CFPropertyList (3.0.6)
5 | rexml
6 | activesupport (6.1.7.6)
7 | concurrent-ruby (~> 1.0, >= 1.0.2)
8 | i18n (>= 1.6, < 2)
9 | minitest (>= 5.1)
10 | tzinfo (~> 2.0)
11 | zeitwerk (~> 2.3)
12 | addressable (2.8.6)
13 | public_suffix (>= 2.0.2, < 6.0)
14 | algoliasearch (1.27.5)
15 | httpclient (~> 2.8, >= 2.8.3)
16 | json (>= 1.5.1)
17 | atomos (0.1.3)
18 | claide (1.1.0)
19 | cocoapods (1.14.3)
20 | addressable (~> 2.8)
21 | claide (>= 1.0.2, < 2.0)
22 | cocoapods-core (= 1.14.3)
23 | cocoapods-deintegrate (>= 1.0.3, < 2.0)
24 | cocoapods-downloader (>= 2.1, < 3.0)
25 | cocoapods-plugins (>= 1.0.0, < 2.0)
26 | cocoapods-search (>= 1.0.0, < 2.0)
27 | cocoapods-trunk (>= 1.6.0, < 2.0)
28 | cocoapods-try (>= 1.1.0, < 2.0)
29 | colored2 (~> 3.1)
30 | escape (~> 0.0.4)
31 | fourflusher (>= 2.3.0, < 3.0)
32 | gh_inspector (~> 1.0)
33 | molinillo (~> 0.8.0)
34 | nap (~> 1.0)
35 | ruby-macho (>= 2.3.0, < 3.0)
36 | xcodeproj (>= 1.23.0, < 2.0)
37 | cocoapods-core (1.14.3)
38 | activesupport (>= 5.0, < 8)
39 | addressable (~> 2.8)
40 | algoliasearch (~> 1.0)
41 | concurrent-ruby (~> 1.1)
42 | fuzzy_match (~> 2.0.4)
43 | nap (~> 1.0)
44 | netrc (~> 0.11)
45 | public_suffix (~> 4.0)
46 | typhoeus (~> 1.0)
47 | cocoapods-deintegrate (1.0.5)
48 | cocoapods-downloader (2.1)
49 | cocoapods-plugins (1.0.0)
50 | nap
51 | cocoapods-search (1.0.1)
52 | cocoapods-trunk (1.6.0)
53 | nap (>= 0.8, < 2.0)
54 | netrc (~> 0.11)
55 | cocoapods-try (1.2.0)
56 | colored2 (3.1.2)
57 | concurrent-ruby (1.2.2)
58 | escape (0.0.4)
59 | ethon (0.16.0)
60 | ffi (>= 1.15.0)
61 | ffi (1.16.3)
62 | fourflusher (2.3.1)
63 | fuzzy_match (2.0.4)
64 | gh_inspector (1.1.3)
65 | httpclient (2.8.3)
66 | i18n (1.14.1)
67 | concurrent-ruby (~> 1.0)
68 | json (2.7.1)
69 | minitest (5.20.0)
70 | molinillo (0.8.0)
71 | nanaimo (0.3.0)
72 | nap (1.1.0)
73 | netrc (0.11.0)
74 | public_suffix (4.0.7)
75 | rexml (3.2.6)
76 | ruby-macho (2.5.1)
77 | typhoeus (1.4.1)
78 | ethon (>= 0.9.0)
79 | tzinfo (2.0.6)
80 | concurrent-ruby (~> 1.0)
81 | xcodeproj (1.23.0)
82 | CFPropertyList (>= 2.3.3, < 4.0)
83 | atomos (~> 0.1.3)
84 | claide (>= 1.0.2, < 2.0)
85 | colored2 (~> 3.1)
86 | nanaimo (~> 0.3.0)
87 | rexml (~> 3.2.4)
88 | zeitwerk (2.6.12)
89 |
90 | PLATFORMS
91 | ruby
92 |
93 | DEPENDENCIES
94 | activesupport (>= 6.1.7.3, < 7.1.0)
95 | cocoapods (~> 1.13)
96 |
97 | RUBY VERSION
98 | ruby 2.6.10p210
99 |
100 | BUNDLED WITH
101 | 2.4.22
102 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | GNU AFFERO GENERAL PUBLIC LICENSE
2 | Version 3, 19 November 2007
3 |
4 | Copyright (C) 2007 Free Software Foundation, Inc.
5 | Everyone is permitted to copy and distribute verbatim copies
6 | of this license document, but changing it is not allowed.
7 |
8 | Preamble
9 |
10 | The GNU Affero General Public License is a free, copyleft license for
11 | software and other kinds of works, specifically designed to ensure
12 | cooperation with the community in the case of network server software.
13 |
14 | The licenses for most software and other practical works are designed
15 | to take away your freedom to share and change the works. By contrast,
16 | our General Public Licenses are intended to guarantee your freedom to
17 | share and change all versions of a program--to make sure it remains free
18 | software for all its users.
19 |
20 | When we speak of free software, we are referring to freedom, not
21 | price. Our General Public Licenses are designed to make sure that you
22 | have the freedom to distribute copies of free software (and charge for
23 | them if you wish), that you receive source code or can get it if you
24 | want it, that you can change the software or use pieces of it in new
25 | free programs, and that you know you can do these things.
26 |
27 | Developers that use our General Public Licenses protect your rights
28 | with two steps: (1) assert copyright on the software, and (2) offer
29 | you this License which gives you legal permission to copy, distribute
30 | and/or modify the software.
31 |
32 | A secondary benefit of defending all users' freedom is that
33 | improvements made in alternate versions of the program, if they
34 | receive widespread use, become available for other developers to
35 | incorporate. Many developers of free software are heartened and
36 | encouraged by the resulting cooperation. However, in the case of
37 | software used on network servers, this result may fail to come about.
38 | The GNU General Public License permits making a modified version and
39 | letting the public access it on a server without ever releasing its
40 | source code to the public.
41 |
42 | The GNU Affero General Public License is designed specifically to
43 | ensure that, in such cases, the modified source code becomes available
44 | to the community. It requires the operator of a network server to
45 | provide the source code of the modified version running there to the
46 | users of that server. Therefore, public use of a modified version, on
47 | a publicly accessible server, gives the public access to the source
48 | code of the modified version.
49 |
50 | An older license, called the Affero General Public License and
51 | published by Affero, was designed to accomplish similar goals. This is
52 | a different license, not a version of the Affero GPL, but Affero has
53 | released a new version of the Affero GPL which permits relicensing under
54 | this license.
55 |
56 | The precise terms and conditions for copying, distribution and
57 | modification follow.
58 |
59 | TERMS AND CONDITIONS
60 |
61 | 0. Definitions.
62 |
63 | "This License" refers to version 3 of the GNU Affero General Public License.
64 |
65 | "Copyright" also means copyright-like laws that apply to other kinds of
66 | works, such as semiconductor masks.
67 |
68 | "The Program" refers to any copyrightable work licensed under this
69 | License. Each licensee is addressed as "you". "Licensees" and
70 | "recipients" may be individuals or organizations.
71 |
72 | To "modify" a work means to copy from or adapt all or part of the work
73 | in a fashion requiring copyright permission, other than the making of an
74 | exact copy. The resulting work is called a "modified version" of the
75 | earlier work or a work "based on" the earlier work.
76 |
77 | A "covered work" means either the unmodified Program or a work based
78 | on the Program.
79 |
80 | To "propagate" a work means to do anything with it that, without
81 | permission, would make you directly or secondarily liable for
82 | infringement under applicable copyright law, except executing it on a
83 | computer or modifying a private copy. Propagation includes copying,
84 | distribution (with or without modification), making available to the
85 | public, and in some countries other activities as well.
86 |
87 | To "convey" a work means any kind of propagation that enables other
88 | parties to make or receive copies. Mere interaction with a user through
89 | a computer network, with no transfer of a copy, is not conveying.
90 |
91 | An interactive user interface displays "Appropriate Legal Notices"
92 | to the extent that it includes a convenient and prominently visible
93 | feature that (1) displays an appropriate copyright notice, and (2)
94 | tells the user that there is no warranty for the work (except to the
95 | extent that warranties are provided), that licensees may convey the
96 | work under this License, and how to view a copy of this License. If
97 | the interface presents a list of user commands or options, such as a
98 | menu, a prominent item in the list meets this criterion.
99 |
100 | 1. Source Code.
101 |
102 | The "source code" for a work means the preferred form of the work
103 | for making modifications to it. "Object code" means any non-source
104 | form of a work.
105 |
106 | A "Standard Interface" means an interface that either is an official
107 | standard defined by a recognized standards body, or, in the case of
108 | interfaces specified for a particular programming language, one that
109 | is widely used among developers working in that language.
110 |
111 | The "System Libraries" of an executable work include anything, other
112 | than the work as a whole, that (a) is included in the normal form of
113 | packaging a Major Component, but which is not part of that Major
114 | Component, and (b) serves only to enable use of the work with that
115 | Major Component, or to implement a Standard Interface for which an
116 | implementation is available to the public in source code form. A
117 | "Major Component", in this context, means a major essential component
118 | (kernel, window system, and so on) of the specific operating system
119 | (if any) on which the executable work runs, or a compiler used to
120 | produce the work, or an object code interpreter used to run it.
121 |
122 | The "Corresponding Source" for a work in object code form means all
123 | the source code needed to generate, install, and (for an executable
124 | work) run the object code and to modify the work, including scripts to
125 | control those activities. However, it does not include the work's
126 | System Libraries, or general-purpose tools or generally available free
127 | programs which are used unmodified in performing those activities but
128 | which are not part of the work. For example, Corresponding Source
129 | includes interface definition files associated with source files for
130 | the work, and the source code for shared libraries and dynamically
131 | linked subprograms that the work is specifically designed to require,
132 | such as by intimate data communication or control flow between those
133 | subprograms and other parts of the work.
134 |
135 | The Corresponding Source need not include anything that users
136 | can regenerate automatically from other parts of the Corresponding
137 | Source.
138 |
139 | The Corresponding Source for a work in source code form is that
140 | same work.
141 |
142 | 2. Basic Permissions.
143 |
144 | All rights granted under this License are granted for the term of
145 | copyright on the Program, and are irrevocable provided the stated
146 | conditions are met. This License explicitly affirms your unlimited
147 | permission to run the unmodified Program. The output from running a
148 | covered work is covered by this License only if the output, given its
149 | content, constitutes a covered work. This License acknowledges your
150 | rights of fair use or other equivalent, as provided by copyright law.
151 |
152 | You may make, run and propagate covered works that you do not
153 | convey, without conditions so long as your license otherwise remains
154 | in force. You may convey covered works to others for the sole purpose
155 | of having them make modifications exclusively for you, or provide you
156 | with facilities for running those works, provided that you comply with
157 | the terms of this License in conveying all material for which you do
158 | not control copyright. Those thus making or running the covered works
159 | for you must do so exclusively on your behalf, under your direction
160 | and control, on terms that prohibit them from making any copies of
161 | your copyrighted material outside their relationship with you.
162 |
163 | Conveying under any other circumstances is permitted solely under
164 | the conditions stated below. Sublicensing is not allowed; section 10
165 | makes it unnecessary.
166 |
167 | 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
168 |
169 | No covered work shall be deemed part of an effective technological
170 | measure under any applicable law fulfilling obligations under article
171 | 11 of the WIPO copyright treaty adopted on 20 December 1996, or
172 | similar laws prohibiting or restricting circumvention of such
173 | measures.
174 |
175 | When you convey a covered work, you waive any legal power to forbid
176 | circumvention of technological measures to the extent such circumvention
177 | is effected by exercising rights under this License with respect to
178 | the covered work, and you disclaim any intention to limit operation or
179 | modification of the work as a means of enforcing, against the work's
180 | users, your or third parties' legal rights to forbid circumvention of
181 | technological measures.
182 |
183 | 4. Conveying Verbatim Copies.
184 |
185 | You may convey verbatim copies of the Program's source code as you
186 | receive it, in any medium, provided that you conspicuously and
187 | appropriately publish on each copy an appropriate copyright notice;
188 | keep intact all notices stating that this License and any
189 | non-permissive terms added in accord with section 7 apply to the code;
190 | keep intact all notices of the absence of any warranty; and give all
191 | recipients a copy of this License along with the Program.
192 |
193 | You may charge any price or no price for each copy that you convey,
194 | and you may offer support or warranty protection for a fee.
195 |
196 | 5. Conveying Modified Source Versions.
197 |
198 | You may convey a work based on the Program, or the modifications to
199 | produce it from the Program, in the form of source code under the
200 | terms of section 4, provided that you also meet all of these conditions:
201 |
202 | a) The work must carry prominent notices stating that you modified
203 | it, and giving a relevant date.
204 |
205 | b) The work must carry prominent notices stating that it is
206 | released under this License and any conditions added under section
207 | 7. This requirement modifies the requirement in section 4 to
208 | "keep intact all notices".
209 |
210 | c) You must license the entire work, as a whole, under this
211 | License to anyone who comes into possession of a copy. This
212 | License will therefore apply, along with any applicable section 7
213 | additional terms, to the whole of the work, and all its parts,
214 | regardless of how they are packaged. This License gives no
215 | permission to license the work in any other way, but it does not
216 | invalidate such permission if you have separately received it.
217 |
218 | d) If the work has interactive user interfaces, each must display
219 | Appropriate Legal Notices; however, if the Program has interactive
220 | interfaces that do not display Appropriate Legal Notices, your
221 | work need not make them do so.
222 |
223 | A compilation of a covered work with other separate and independent
224 | works, which are not by their nature extensions of the covered work,
225 | and which are not combined with it such as to form a larger program,
226 | in or on a volume of a storage or distribution medium, is called an
227 | "aggregate" if the compilation and its resulting copyright are not
228 | used to limit the access or legal rights of the compilation's users
229 | beyond what the individual works permit. Inclusion of a covered work
230 | in an aggregate does not cause this License to apply to the other
231 | parts of the aggregate.
232 |
233 | 6. Conveying Non-Source Forms.
234 |
235 | You may convey a covered work in object code form under the terms
236 | of sections 4 and 5, provided that you also convey the
237 | machine-readable Corresponding Source under the terms of this License,
238 | in one of these ways:
239 |
240 | a) Convey the object code in, or embodied in, a physical product
241 | (including a physical distribution medium), accompanied by the
242 | Corresponding Source fixed on a durable physical medium
243 | customarily used for software interchange.
244 |
245 | b) Convey the object code in, or embodied in, a physical product
246 | (including a physical distribution medium), accompanied by a
247 | written offer, valid for at least three years and valid for as
248 | long as you offer spare parts or customer support for that product
249 | model, to give anyone who possesses the object code either (1) a
250 | copy of the Corresponding Source for all the software in the
251 | product that is covered by this License, on a durable physical
252 | medium customarily used for software interchange, for a price no
253 | more than your reasonable cost of physically performing this
254 | conveying of source, or (2) access to copy the
255 | Corresponding Source from a network server at no charge.
256 |
257 | c) Convey individual copies of the object code with a copy of the
258 | written offer to provide the Corresponding Source. This
259 | alternative is allowed only occasionally and noncommercially, and
260 | only if you received the object code with such an offer, in accord
261 | with subsection 6b.
262 |
263 | d) Convey the object code by offering access from a designated
264 | place (gratis or for a charge), and offer equivalent access to the
265 | Corresponding Source in the same way through the same place at no
266 | further charge. You need not require recipients to copy the
267 | Corresponding Source along with the object code. If the place to
268 | copy the object code is a network server, the Corresponding Source
269 | may be on a different server (operated by you or a third party)
270 | that supports equivalent copying facilities, provided you maintain
271 | clear directions next to the object code saying where to find the
272 | Corresponding Source. Regardless of what server hosts the
273 | Corresponding Source, you remain obligated to ensure that it is
274 | available for as long as needed to satisfy these requirements.
275 |
276 | e) Convey the object code using peer-to-peer transmission, provided
277 | you inform other peers where the object code and Corresponding
278 | Source of the work are being offered to the general public at no
279 | charge under subsection 6d.
280 |
281 | A separable portion of the object code, whose source code is excluded
282 | from the Corresponding Source as a System Library, need not be
283 | included in conveying the object code work.
284 |
285 | A "User Product" is either (1) a "consumer product", which means any
286 | tangible personal property which is normally used for personal, family,
287 | or household purposes, or (2) anything designed or sold for incorporation
288 | into a dwelling. In determining whether a product is a consumer product,
289 | doubtful cases shall be resolved in favor of coverage. For a particular
290 | product received by a particular user, "normally used" refers to a
291 | typical or common use of that class of product, regardless of the status
292 | of the particular user or of the way in which the particular user
293 | actually uses, or expects or is expected to use, the product. A product
294 | is a consumer product regardless of whether the product has substantial
295 | commercial, industrial or non-consumer uses, unless such uses represent
296 | the only significant mode of use of the product.
297 |
298 | "Installation Information" for a User Product means any methods,
299 | procedures, authorization keys, or other information required to install
300 | and execute modified versions of a covered work in that User Product from
301 | a modified version of its Corresponding Source. The information must
302 | suffice to ensure that the continued functioning of the modified object
303 | code is in no case prevented or interfered with solely because
304 | modification has been made.
305 |
306 | If you convey an object code work under this section in, or with, or
307 | specifically for use in, a User Product, and the conveying occurs as
308 | part of a transaction in which the right of possession and use of the
309 | User Product is transferred to the recipient in perpetuity or for a
310 | fixed term (regardless of how the transaction is characterized), the
311 | Corresponding Source conveyed under this section must be accompanied
312 | by the Installation Information. But this requirement does not apply
313 | if neither you nor any third party retains the ability to install
314 | modified object code on the User Product (for example, the work has
315 | been installed in ROM).
316 |
317 | The requirement to provide Installation Information does not include a
318 | requirement to continue to provide support service, warranty, or updates
319 | for a work that has been modified or installed by the recipient, or for
320 | the User Product in which it has been modified or installed. Access to a
321 | network may be denied when the modification itself materially and
322 | adversely affects the operation of the network or violates the rules and
323 | protocols for communication across the network.
324 |
325 | Corresponding Source conveyed, and Installation Information provided,
326 | in accord with this section must be in a format that is publicly
327 | documented (and with an implementation available to the public in
328 | source code form), and must require no special password or key for
329 | unpacking, reading or copying.
330 |
331 | 7. Additional Terms.
332 |
333 | "Additional permissions" are terms that supplement the terms of this
334 | License by making exceptions from one or more of its conditions.
335 | Additional permissions that are applicable to the entire Program shall
336 | be treated as though they were included in this License, to the extent
337 | that they are valid under applicable law. If additional permissions
338 | apply only to part of the Program, that part may be used separately
339 | under those permissions, but the entire Program remains governed by
340 | this License without regard to the additional permissions.
341 |
342 | When you convey a copy of a covered work, you may at your option
343 | remove any additional permissions from that copy, or from any part of
344 | it. (Additional permissions may be written to require their own
345 | removal in certain cases when you modify the work.) You may place
346 | additional permissions on material, added by you to a covered work,
347 | for which you have or can give appropriate copyright permission.
348 |
349 | Notwithstanding any other provision of this License, for material you
350 | add to a covered work, you may (if authorized by the copyright holders of
351 | that material) supplement the terms of this License with terms:
352 |
353 | a) Disclaiming warranty or limiting liability differently from the
354 | terms of sections 15 and 16 of this License; or
355 |
356 | b) Requiring preservation of specified reasonable legal notices or
357 | author attributions in that material or in the Appropriate Legal
358 | Notices displayed by works containing it; or
359 |
360 | c) Prohibiting misrepresentation of the origin of that material, or
361 | requiring that modified versions of such material be marked in
362 | reasonable ways as different from the original version; or
363 |
364 | d) Limiting the use for publicity purposes of names of licensors or
365 | authors of the material; or
366 |
367 | e) Declining to grant rights under trademark law for use of some
368 | trade names, trademarks, or service marks; or
369 |
370 | f) Requiring indemnification of licensors and authors of that
371 | material by anyone who conveys the material (or modified versions of
372 | it) with contractual assumptions of liability to the recipient, for
373 | any liability that these contractual assumptions directly impose on
374 | those licensors and authors.
375 |
376 | All other non-permissive additional terms are considered "further
377 | restrictions" within the meaning of section 10. If the Program as you
378 | received it, or any part of it, contains a notice stating that it is
379 | governed by this License along with a term that is a further
380 | restriction, you may remove that term. If a license document contains
381 | a further restriction but permits relicensing or conveying under this
382 | License, you may add to a covered work material governed by the terms
383 | of that license document, provided that the further restriction does
384 | not survive such relicensing or conveying.
385 |
386 | If you add terms to a covered work in accord with this section, you
387 | must place, in the relevant source files, a statement of the
388 | additional terms that apply to those files, or a notice indicating
389 | where to find the applicable terms.
390 |
391 | Additional terms, permissive or non-permissive, may be stated in the
392 | form of a separately written license, or stated as exceptions;
393 | the above requirements apply either way.
394 |
395 | 8. Termination.
396 |
397 | You may not propagate or modify a covered work except as expressly
398 | provided under this License. Any attempt otherwise to propagate or
399 | modify it is void, and will automatically terminate your rights under
400 | this License (including any patent licenses granted under the third
401 | paragraph of section 11).
402 |
403 | However, if you cease all violation of this License, then your
404 | license from a particular copyright holder is reinstated (a)
405 | provisionally, unless and until the copyright holder explicitly and
406 | finally terminates your license, and (b) permanently, if the copyright
407 | holder fails to notify you of the violation by some reasonable means
408 | prior to 60 days after the cessation.
409 |
410 | Moreover, your license from a particular copyright holder is
411 | reinstated permanently if the copyright holder notifies you of the
412 | violation by some reasonable means, this is the first time you have
413 | received notice of violation of this License (for any work) from that
414 | copyright holder, and you cure the violation prior to 30 days after
415 | your receipt of the notice.
416 |
417 | Termination of your rights under this section does not terminate the
418 | licenses of parties who have received copies or rights from you under
419 | this License. If your rights have been terminated and not permanently
420 | reinstated, you do not qualify to receive new licenses for the same
421 | material under section 10.
422 |
423 | 9. Acceptance Not Required for Having Copies.
424 |
425 | You are not required to accept this License in order to receive or
426 | run a copy of the Program. Ancillary propagation of a covered work
427 | occurring solely as a consequence of using peer-to-peer transmission
428 | to receive a copy likewise does not require acceptance. However,
429 | nothing other than this License grants you permission to propagate or
430 | modify any covered work. These actions infringe copyright if you do
431 | not accept this License. Therefore, by modifying or propagating a
432 | covered work, you indicate your acceptance of this License to do so.
433 |
434 | 10. Automatic Licensing of Downstream Recipients.
435 |
436 | Each time you convey a covered work, the recipient automatically
437 | receives a license from the original licensors, to run, modify and
438 | propagate that work, subject to this License. You are not responsible
439 | for enforcing compliance by third parties with this License.
440 |
441 | An "entity transaction" is a transaction transferring control of an
442 | organization, or substantially all assets of one, or subdividing an
443 | organization, or merging organizations. If propagation of a covered
444 | work results from an entity transaction, each party to that
445 | transaction who receives a copy of the work also receives whatever
446 | licenses to the work the party's predecessor in interest had or could
447 | give under the previous paragraph, plus a right to possession of the
448 | Corresponding Source of the work from the predecessor in interest, if
449 | the predecessor has it or can get it with reasonable efforts.
450 |
451 | You may not impose any further restrictions on the exercise of the
452 | rights granted or affirmed under this License. For example, you may
453 | not impose a license fee, royalty, or other charge for exercise of
454 | rights granted under this License, and you may not initiate litigation
455 | (including a cross-claim or counterclaim in a lawsuit) alleging that
456 | any patent claim is infringed by making, using, selling, offering for
457 | sale, or importing the Program or any portion of it.
458 |
459 | 11. Patents.
460 |
461 | A "contributor" is a copyright holder who authorizes use under this
462 | License of the Program or a work on which the Program is based. The
463 | work thus licensed is called the contributor's "contributor version".
464 |
465 | A contributor's "essential patent claims" are all patent claims
466 | owned or controlled by the contributor, whether already acquired or
467 | hereafter acquired, that would be infringed by some manner, permitted
468 | by this License, of making, using, or selling its contributor version,
469 | but do not include claims that would be infringed only as a
470 | consequence of further modification of the contributor version. For
471 | purposes of this definition, "control" includes the right to grant
472 | patent sublicenses in a manner consistent with the requirements of
473 | this License.
474 |
475 | Each contributor grants you a non-exclusive, worldwide, royalty-free
476 | patent license under the contributor's essential patent claims, to
477 | make, use, sell, offer for sale, import and otherwise run, modify and
478 | propagate the contents of its contributor version.
479 |
480 | In the following three paragraphs, a "patent license" is any express
481 | agreement or commitment, however denominated, not to enforce a patent
482 | (such as an express permission to practice a patent or covenant not to
483 | sue for patent infringement). To "grant" such a patent license to a
484 | party means to make such an agreement or commitment not to enforce a
485 | patent against the party.
486 |
487 | If you convey a covered work, knowingly relying on a patent license,
488 | and the Corresponding Source of the work is not available for anyone
489 | to copy, free of charge and under the terms of this License, through a
490 | publicly available network server or other readily accessible means,
491 | then you must either (1) cause the Corresponding Source to be so
492 | available, or (2) arrange to deprive yourself of the benefit of the
493 | patent license for this particular work, or (3) arrange, in a manner
494 | consistent with the requirements of this License, to extend the patent
495 | license to downstream recipients. "Knowingly relying" means you have
496 | actual knowledge that, but for the patent license, your conveying the
497 | covered work in a country, or your recipient's use of the covered work
498 | in a country, would infringe one or more identifiable patents in that
499 | country that you have reason to believe are valid.
500 |
501 | If, pursuant to or in connection with a single transaction or
502 | arrangement, you convey, or propagate by procuring conveyance of, a
503 | covered work, and grant a patent license to some of the parties
504 | receiving the covered work authorizing them to use, propagate, modify
505 | or convey a specific copy of the covered work, then the patent license
506 | you grant is automatically extended to all recipients of the covered
507 | work and works based on it.
508 |
509 | A patent license is "discriminatory" if it does not include within
510 | the scope of its coverage, prohibits the exercise of, or is
511 | conditioned on the non-exercise of one or more of the rights that are
512 | specifically granted under this License. You may not convey a covered
513 | work if you are a party to an arrangement with a third party that is
514 | in the business of distributing software, under which you make payment
515 | to the third party based on the extent of your activity of conveying
516 | the work, and under which the third party grants, to any of the
517 | parties who would receive the covered work from you, a discriminatory
518 | patent license (a) in connection with copies of the covered work
519 | conveyed by you (or copies made from those copies), or (b) primarily
520 | for and in connection with specific products or compilations that
521 | contain the covered work, unless you entered into that arrangement,
522 | or that patent license was granted, prior to 28 March 2007.
523 |
524 | Nothing in this License shall be construed as excluding or limiting
525 | any implied license or other defenses to infringement that may
526 | otherwise be available to you under applicable patent law.
527 |
528 | 12. No Surrender of Others' Freedom.
529 |
530 | If conditions are imposed on you (whether by court order, agreement or
531 | otherwise) that contradict the conditions of this License, they do not
532 | excuse you from the conditions of this License. If you cannot convey a
533 | covered work so as to satisfy simultaneously your obligations under this
534 | License and any other pertinent obligations, then as a consequence you may
535 | not convey it at all. For example, if you agree to terms that obligate you
536 | to collect a royalty for further conveying from those to whom you convey
537 | the Program, the only way you could satisfy both those terms and this
538 | License would be to refrain entirely from conveying the Program.
539 |
540 | 13. Remote Network Interaction; Use with the GNU General Public License.
541 |
542 | Notwithstanding any other provision of this License, if you modify the
543 | Program, your modified version must prominently offer all users
544 | interacting with it remotely through a computer network (if your version
545 | supports such interaction) an opportunity to receive the Corresponding
546 | Source of your version by providing access to the Corresponding Source
547 | from a network server at no charge, through some standard or customary
548 | means of facilitating copying of software. This Corresponding Source
549 | shall include the Corresponding Source for any work covered by version 3
550 | of the GNU General Public License that is incorporated pursuant to the
551 | following paragraph.
552 |
553 | Notwithstanding any other provision of this License, you have
554 | permission to link or combine any covered work with a work licensed
555 | under version 3 of the GNU General Public License into a single
556 | combined work, and to convey the resulting work. The terms of this
557 | License will continue to apply to the part which is the covered work,
558 | but the work with which it is combined will remain governed by version
559 | 3 of the GNU General Public License.
560 |
561 | 14. Revised Versions of this License.
562 |
563 | The Free Software Foundation may publish revised and/or new versions of
564 | the GNU Affero General Public License from time to time. Such new versions
565 | will be similar in spirit to the present version, but may differ in detail to
566 | address new problems or concerns.
567 |
568 | Each version is given a distinguishing version number. If the
569 | Program specifies that a certain numbered version of the GNU Affero General
570 | Public License "or any later version" applies to it, you have the
571 | option of following the terms and conditions either of that numbered
572 | version or of any later version published by the Free Software
573 | Foundation. If the Program does not specify a version number of the
574 | GNU Affero General Public License, you may choose any version ever published
575 | by the Free Software Foundation.
576 |
577 | If the Program specifies that a proxy can decide which future
578 | versions of the GNU Affero General Public License can be used, that proxy's
579 | public statement of acceptance of a version permanently authorizes you
580 | to choose that version for the Program.
581 |
582 | Later license versions may give you additional or different
583 | permissions. However, no additional obligations are imposed on any
584 | author or copyright holder as a result of your choosing to follow a
585 | later version.
586 |
587 | 15. Disclaimer of Warranty.
588 |
589 | THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
590 | APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
591 | HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
592 | OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
593 | THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
594 | PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
595 | IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
596 | ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
597 |
598 | 16. Limitation of Liability.
599 |
600 | IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
601 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
602 | THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
603 | GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
604 | USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
605 | DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
606 | PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
607 | EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
608 | SUCH DAMAGES.
609 |
610 | 17. Interpretation of Sections 15 and 16.
611 |
612 | If the disclaimer of warranty and limitation of liability provided
613 | above cannot be given local legal effect according to their terms,
614 | reviewing courts shall apply local law that most closely approximates
615 | an absolute waiver of all civil liability in connection with the
616 | Program, unless a warranty or assumption of liability accompanies a
617 | copy of the Program in return for a fee.
618 |
619 | END OF TERMS AND CONDITIONS
620 |
621 | How to Apply These Terms to Your New Programs
622 |
623 | If you develop a new program, and you want it to be of the greatest
624 | possible use to the public, the best way to achieve this is to make it
625 | free software which everyone can redistribute and change under these terms.
626 |
627 | To do so, attach the following notices to the program. It is safest
628 | to attach them to the start of each source file to most effectively
629 | state the exclusion of warranty; and each file should have at least
630 | the "copyright" line and a pointer to where the full notice is found.
631 |
632 |
633 | Copyright (C)
634 |
635 | This program is free software: you can redistribute it and/or modify
636 | it under the terms of the GNU Affero General Public License as published
637 | by the Free Software Foundation, either version 3 of the License, or
638 | (at your option) any later version.
639 |
640 | This program is distributed in the hope that it will be useful,
641 | but WITHOUT ANY WARRANTY; without even the implied warranty of
642 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
643 | GNU Affero General Public License for more details.
644 |
645 | You should have received a copy of the GNU Affero General Public License
646 | along with this program. If not, see .
647 |
648 | Also add information on how to contact you by electronic and paper mail.
649 |
650 | If your software can interact with users remotely through a computer
651 | network, you should also make sure that it provides a way for users to
652 | get its source. For example, if your program is a web application, its
653 | interface could display a "Source" link that leads users to an archive
654 | of the code. There are many ways you could offer source, and different
655 | solutions will be better for different programs; see section 13 for the
656 | specific requirements.
657 |
658 | You should also get your employer (if you work as a programmer) or school,
659 | if any, to sign a "copyright disclaimer" for the program, if necessary.
660 | For more information on this, and how to apply and follow the GNU AGPL, see
661 | .
662 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | This is a [**React Native**](https://reactnative.dev) project, integrated with [**fal.ai**](https://fal.ai).
2 |
3 | # Getting Started
4 |
5 | ## Step 1: Start the Metro Server
6 |
7 | First, you will need to start **Metro**, the JavaScript _bundler_ that ships _with_ React Native.
8 |
9 | To start Metro, run the following command from the _root_ of your React Native project:
10 |
11 | ```bash
12 | # using npm
13 | npm start
14 |
15 | # OR using Yarn
16 | yarn start
17 | ```
18 |
19 | ## Step 2: Start your Application
20 |
21 | Let Metro Bundler run in its _own_ terminal. Open a _new_ terminal from the _root_ of your React Native project. Run the following command to start your _Android_ or _iOS_ app:
22 |
23 | ### For Android
24 |
25 | ```bash
26 | # using npm
27 | npm run android
28 |
29 | # OR using Yarn
30 | yarn android
31 | ```
32 |
33 | ### For iOS
34 |
35 | ```bash
36 | # using npm
37 | npm run ios
38 |
39 | # OR using Yarn
40 | yarn ios
41 | ```
42 |
43 | If everything is set up _correctly_, you should see your new app running in your _Android Emulator_ or _iOS Simulator_ shortly provided you have set up your emulator/simulator correctly.
44 |
45 | This is one way to run your app — you can also run it directly from within Android Studio and Xcode respectively.
46 |
47 | ## Step 3: Modifying your App
48 |
49 | Now that you have successfully run the app, let's modify it.
50 |
51 | 1. Open `App.tsx` in your text editor of choice and edit some lines.
52 | 2. For **Android**: Press the R key twice or select **"Reload"** from the **Developer Menu** (Ctrl + M (on Window and Linux) or Cmd ⌘ + M (on macOS)) to see your changes!
53 |
54 | For **iOS**: Hit Cmd ⌘ + R in your iOS Simulator to reload the app and see your changes!
55 |
56 | ## Congratulations! :tada:
57 |
58 | You've successfully run and modified your React Native App. :partying_face:
59 |
60 | ### Now what?
61 |
62 | - If you want to add this new React Native code to an existing application, check out the [Integration guide](https://reactnative.dev/docs/integration-with-existing-apps).
63 | - If you're curious to learn more about React Native, check out the [Introduction to React Native](https://reactnative.dev/docs/getting-started).
64 |
65 | # Troubleshooting
66 |
67 | If you can't get this to work, see the [Troubleshooting](https://reactnative.dev/docs/troubleshooting) page.
68 |
69 | # Learn More
70 |
71 | To learn more about React Native, take a look at the following resources:
72 |
73 | - [React Native Website](https://reactnative.dev) - learn more about React Native.
74 | - [Getting Started](https://reactnative.dev/docs/environment-setup) - an **overview** of React Native and how setup your environment.
75 | - [Learn the Basics](https://reactnative.dev/docs/getting-started) - a **guided tour** of the React Native **basics**.
76 | - [Blog](https://reactnative.dev/blog) - read the latest official React Native **Blog** posts.
77 | - [`@facebook/react-native`](https://github.com/facebook/react-native) - the Open Source; GitHub **repository** for React Native.
78 |
--------------------------------------------------------------------------------
/__tests__/App.test.tsx:
--------------------------------------------------------------------------------
1 | /**
2 | * @format
3 | */
4 | import App from '../App';
5 | // Note: import explicitly to use the types shipped with jest.
6 | import { it } from '@jest/globals';
7 | import React from 'react';
8 | import 'react-native';
9 | // Note: test renderer must be required after react-native.
10 | import renderer from 'react-test-renderer';
11 |
12 | it('renders correctly', () => {
13 | renderer.create();
14 | });
15 |
--------------------------------------------------------------------------------
/android/app/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: "com.android.application"
2 | apply plugin: "org.jetbrains.kotlin.android"
3 | apply plugin: "com.facebook.react"
4 |
5 | /**
6 | * This is the configuration block to customize your React Native Android app.
7 | * By default you don't need to apply any configuration, just uncomment the lines you need.
8 | */
9 | react {
10 | /* Folders */
11 | // The root of your project, i.e. where "package.json" lives. Default is '..'
12 | // root = file("../")
13 | // The folder where the react-native NPM package is. Default is ../node_modules/react-native
14 | // reactNativeDir = file("../node_modules/react-native")
15 | // The folder where the react-native Codegen package is. Default is ../node_modules/@react-native/codegen
16 | // codegenDir = file("../node_modules/@react-native/codegen")
17 | // The cli.js file which is the React Native CLI entrypoint. Default is ../node_modules/react-native/cli.js
18 | // cliFile = file("../node_modules/react-native/cli.js")
19 |
20 | /* Variants */
21 | // The list of variants to that are debuggable. For those we're going to
22 | // skip the bundling of the JS bundle and the assets. By default is just 'debug'.
23 | // If you add flavors like lite, prod, etc. you'll have to list your debuggableVariants.
24 | // debuggableVariants = ["liteDebug", "prodDebug"]
25 |
26 | /* Bundling */
27 | // A list containing the node command and its flags. Default is just 'node'.
28 | // nodeExecutableAndArgs = ["node"]
29 | //
30 | // The command to run when bundling. By default is 'bundle'
31 | // bundleCommand = "ram-bundle"
32 | //
33 | // The path to the CLI configuration file. Default is empty.
34 | // bundleConfig = file(../rn-cli.config.js)
35 | //
36 | // The name of the generated asset file containing your JS bundle
37 | // bundleAssetName = "MyApplication.android.bundle"
38 | //
39 | // The entry file for bundle generation. Default is 'index.android.js' or 'index.js'
40 | // entryFile = file("../js/MyApplication.android.js")
41 | //
42 | // A list of extra flags to pass to the 'bundle' commands.
43 | // See https://github.com/react-native-community/cli/blob/main/docs/commands.md#bundle
44 | // extraPackagerArgs = []
45 |
46 | /* Hermes Commands */
47 | // The hermes compiler command to run. By default it is 'hermesc'
48 | // hermesCommand = "$rootDir/my-custom-hermesc/bin/hermesc"
49 | //
50 | // The list of flags to pass to the Hermes compiler. By default is "-O", "-output-source-map"
51 | // hermesFlags = ["-O", "-output-source-map"]
52 | }
53 |
54 | /**
55 | * Set this to true to Run Proguard on Release builds to minify the Java bytecode.
56 | */
57 | def enableProguardInReleaseBuilds = false
58 |
59 | /**
60 | * The preferred build flavor of JavaScriptCore (JSC)
61 | *
62 | * For example, to use the international variant, you can use:
63 | * `def jscFlavor = 'org.webkit:android-jsc-intl:+'`
64 | *
65 | * The international variant includes ICU i18n library and necessary data
66 | * allowing to use e.g. `Date.toLocaleString` and `String.localeCompare` that
67 | * give correct results when using with locales other than en-US. Note that
68 | * this variant is about 6MiB larger per architecture than default.
69 | */
70 | def jscFlavor = 'org.webkit:android-jsc:+'
71 |
72 | android {
73 | ndkVersion rootProject.ext.ndkVersion
74 | buildToolsVersion rootProject.ext.buildToolsVersion
75 | compileSdk rootProject.ext.compileSdkVersion
76 |
77 | namespace "com.falwithreactnative"
78 | defaultConfig {
79 | applicationId "com.falwithreactnative"
80 | minSdkVersion rootProject.ext.minSdkVersion
81 | targetSdkVersion rootProject.ext.targetSdkVersion
82 | versionCode 1
83 | versionName "1.0"
84 | }
85 | signingConfigs {
86 | debug {
87 | storeFile file('debug.keystore')
88 | storePassword 'android'
89 | keyAlias 'androiddebugkey'
90 | keyPassword 'android'
91 | }
92 | }
93 | buildTypes {
94 | debug {
95 | signingConfig signingConfigs.debug
96 | }
97 | release {
98 | // Caution! In production, you need to generate your own keystore file.
99 | // see https://reactnative.dev/docs/signed-apk-android.
100 | signingConfig signingConfigs.debug
101 | minifyEnabled enableProguardInReleaseBuilds
102 | proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
103 | }
104 | }
105 | }
106 |
107 | dependencies {
108 | // The version of react-native is set by the React Native Gradle Plugin
109 | implementation("com.facebook.react:react-android")
110 | implementation("com.facebook.react:flipper-integration")
111 |
112 | if (hermesEnabled.toBoolean()) {
113 | implementation("com.facebook.react:hermes-android")
114 | } else {
115 | implementation jscFlavor
116 | }
117 | }
118 |
119 | apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project)
120 |
--------------------------------------------------------------------------------
/android/app/debug.keystore:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fal-ai/fal-with-react-native/f73cc79f8278f61f75508a82882d510f5fddf382/android/app/debug.keystore
--------------------------------------------------------------------------------
/android/app/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # By default, the flags in this file are appended to flags specified
3 | # in /usr/local/Cellar/android-sdk/24.3.3/tools/proguard/proguard-android.txt
4 | # You can edit the include path and order by changing the proguardFiles
5 | # directive in build.gradle.
6 | #
7 | # For more details, see
8 | # http://developer.android.com/guide/developing/tools/proguard.html
9 |
10 | # Add any project specific keep options here:
11 |
--------------------------------------------------------------------------------
/android/app/src/debug/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
9 |
10 |
--------------------------------------------------------------------------------
/android/app/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
12 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/android/app/src/main/java/com/falwithreactnative/MainActivity.kt:
--------------------------------------------------------------------------------
1 | package com.falwithreactnative
2 |
3 | import com.facebook.react.ReactActivity
4 | import com.facebook.react.ReactActivityDelegate
5 | import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.fabricEnabled
6 | import com.facebook.react.defaults.DefaultReactActivityDelegate
7 |
8 | class MainActivity : ReactActivity() {
9 |
10 | /**
11 | * Returns the name of the main component registered from JavaScript. This is used to schedule
12 | * rendering of the component.
13 | */
14 | override fun getMainComponentName(): String = "FalWithReactNative"
15 |
16 | /**
17 | * Returns the instance of the [ReactActivityDelegate]. We use [DefaultReactActivityDelegate]
18 | * which allows you to enable New Architecture with a single boolean flags [fabricEnabled]
19 | */
20 | override fun createReactActivityDelegate(): ReactActivityDelegate =
21 | DefaultReactActivityDelegate(this, mainComponentName, fabricEnabled)
22 | }
23 |
--------------------------------------------------------------------------------
/android/app/src/main/java/com/falwithreactnative/MainApplication.kt:
--------------------------------------------------------------------------------
1 | package com.falwithreactnative
2 |
3 | import android.app.Application
4 | import com.facebook.react.PackageList
5 | import com.facebook.react.ReactApplication
6 | import com.facebook.react.ReactHost
7 | import com.facebook.react.ReactNativeHost
8 | import com.facebook.react.ReactPackage
9 | import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint.load
10 | import com.facebook.react.defaults.DefaultReactHost.getDefaultReactHost
11 | import com.facebook.react.defaults.DefaultReactNativeHost
12 | import com.facebook.react.flipper.ReactNativeFlipper
13 | import com.facebook.soloader.SoLoader
14 |
15 | class MainApplication : Application(), ReactApplication {
16 |
17 | override val reactNativeHost: ReactNativeHost =
18 | object : DefaultReactNativeHost(this) {
19 | override fun getPackages(): List {
20 | // Packages that cannot be autolinked yet can be added manually here, for example:
21 | // packages.add(new MyReactNativePackage());
22 | return PackageList(this).packages
23 | }
24 |
25 | override fun getJSMainModuleName(): String = "index"
26 |
27 | override fun getUseDeveloperSupport(): Boolean = BuildConfig.DEBUG
28 |
29 | override val isNewArchEnabled: Boolean = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED
30 | override val isHermesEnabled: Boolean = BuildConfig.IS_HERMES_ENABLED
31 | }
32 |
33 | override val reactHost: ReactHost
34 | get() = getDefaultReactHost(this.applicationContext, reactNativeHost)
35 |
36 | override fun onCreate() {
37 | super.onCreate()
38 | SoLoader.init(this, false)
39 | if (BuildConfig.IS_NEW_ARCHITECTURE_ENABLED) {
40 | // If you opted-in for the New Architecture, we load the native entry point for this app.
41 | load()
42 | }
43 | ReactNativeFlipper.initializeFlipper(this, reactNativeHost.reactInstanceManager)
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable/rn_edit_text_material.xml:
--------------------------------------------------------------------------------
1 |
2 |
16 |
21 |
22 |
23 |
32 |
33 |
34 |
35 |
36 |
37 |
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fal-ai/fal-with-react-native/f73cc79f8278f61f75508a82882d510f5fddf382/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fal-ai/fal-with-react-native/f73cc79f8278f61f75508a82882d510f5fddf382/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fal-ai/fal-with-react-native/f73cc79f8278f61f75508a82882d510f5fddf382/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fal-ai/fal-with-react-native/f73cc79f8278f61f75508a82882d510f5fddf382/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fal-ai/fal-with-react-native/f73cc79f8278f61f75508a82882d510f5fddf382/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fal-ai/fal-with-react-native/f73cc79f8278f61f75508a82882d510f5fddf382/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fal-ai/fal-with-react-native/f73cc79f8278f61f75508a82882d510f5fddf382/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fal-ai/fal-with-react-native/f73cc79f8278f61f75508a82882d510f5fddf382/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fal-ai/fal-with-react-native/f73cc79f8278f61f75508a82882d510f5fddf382/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fal-ai/fal-with-react-native/f73cc79f8278f61f75508a82882d510f5fddf382/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/android/app/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | FalWithReactNative
3 |
4 |
--------------------------------------------------------------------------------
/android/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/android/build.gradle:
--------------------------------------------------------------------------------
1 | buildscript {
2 | ext {
3 | buildToolsVersion = "34.0.0"
4 | minSdkVersion = 21
5 | compileSdkVersion = 34
6 | targetSdkVersion = 34
7 | ndkVersion = "25.1.8937393"
8 | kotlinVersion = "1.8.0"
9 | }
10 | repositories {
11 | google()
12 | mavenCentral()
13 | }
14 | dependencies {
15 | classpath("com.android.tools.build:gradle")
16 | classpath("com.facebook.react:react-native-gradle-plugin")
17 | classpath("org.jetbrains.kotlin:kotlin-gradle-plugin")
18 | }
19 | }
20 |
21 | apply plugin: "com.facebook.react.rootproject"
22 |
--------------------------------------------------------------------------------
/android/gradle.properties:
--------------------------------------------------------------------------------
1 | # Project-wide Gradle settings.
2 |
3 | # IDE (e.g. Android Studio) users:
4 | # Gradle settings configured through the IDE *will override*
5 | # any settings specified in this file.
6 |
7 | # For more details on how to configure your build environment visit
8 | # http://www.gradle.org/docs/current/userguide/build_environment.html
9 |
10 | # Specifies the JVM arguments used for the daemon process.
11 | # The setting is particularly useful for tweaking memory settings.
12 | # Default value: -Xmx512m -XX:MaxMetaspaceSize=256m
13 | org.gradle.jvmargs=-Xmx2048m -XX:MaxMetaspaceSize=512m
14 |
15 | # When configured, Gradle will run in incubating parallel mode.
16 | # This option should only be used with decoupled projects. More details, visit
17 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
18 | # org.gradle.parallel=true
19 |
20 | # AndroidX package structure to make it clearer which packages are bundled with the
21 | # Android operating system, and which are packaged with your app's APK
22 | # https://developer.android.com/topic/libraries/support-library/androidx-rn
23 | android.useAndroidX=true
24 | # Automatically convert third-party libraries to use AndroidX
25 | android.enableJetifier=true
26 |
27 | # Use this property to specify which architecture you want to build.
28 | # You can also override it from the CLI using
29 | # ./gradlew -PreactNativeArchitectures=x86_64
30 | reactNativeArchitectures=armeabi-v7a,arm64-v8a,x86,x86_64
31 |
32 | # Use this property to enable support to the new architecture.
33 | # This will allow you to use TurboModules and the Fabric render in
34 | # your application. You should enable this flag either if you want
35 | # to write custom TurboModules/Fabric components OR use libraries that
36 | # are providing them.
37 | newArchEnabled=false
38 |
39 | # Use this property to enable or disable the Hermes JS engine.
40 | # If set to false, you will be using JSC instead.
41 | hermesEnabled=true
42 |
--------------------------------------------------------------------------------
/android/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fal-ai/fal-with-react-native/f73cc79f8278f61f75508a82882d510f5fddf382/android/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/android/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | distributionBase=GRADLE_USER_HOME
2 | distributionPath=wrapper/dists
3 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-all.zip
4 | networkTimeout=10000
5 | validateDistributionUrl=true
6 | zipStoreBase=GRADLE_USER_HOME
7 | zipStorePath=wrapper/dists
8 |
--------------------------------------------------------------------------------
/android/gradlew:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 |
3 | #
4 | # Copyright © 2015-2021 the original authors.
5 | #
6 | # Licensed under the Apache License, Version 2.0 (the "License");
7 | # you may not use this file except in compliance with the License.
8 | # You may obtain a copy of the License at
9 | #
10 | # https://www.apache.org/licenses/LICENSE-2.0
11 | #
12 | # Unless required by applicable law or agreed to in writing, software
13 | # distributed under the License is distributed on an "AS IS" BASIS,
14 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | # See the License for the specific language governing permissions and
16 | # limitations under the License.
17 | #
18 |
19 | ##############################################################################
20 | #
21 | # Gradle start up script for POSIX generated by Gradle.
22 | #
23 | # Important for running:
24 | #
25 | # (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is
26 | # noncompliant, but you have some other compliant shell such as ksh or
27 | # bash, then to run this script, type that shell name before the whole
28 | # command line, like:
29 | #
30 | # ksh Gradle
31 | #
32 | # Busybox and similar reduced shells will NOT work, because this script
33 | # requires all of these POSIX shell features:
34 | # * functions;
35 | # * expansions «$var», «${var}», «${var:-default}», «${var+SET}»,
36 | # «${var#prefix}», «${var%suffix}», and «$( cmd )»;
37 | # * compound commands having a testable exit status, especially «case»;
38 | # * various built-in commands including «command», «set», and «ulimit».
39 | #
40 | # Important for patching:
41 | #
42 | # (2) This script targets any POSIX shell, so it avoids extensions provided
43 | # by Bash, Ksh, etc; in particular arrays are avoided.
44 | #
45 | # The "traditional" practice of packing multiple parameters into a
46 | # space-separated string is a well documented source of bugs and security
47 | # problems, so this is (mostly) avoided, by progressively accumulating
48 | # options in "$@", and eventually passing that to Java.
49 | #
50 | # Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS,
51 | # and GRADLE_OPTS) rely on word-splitting, this is performed explicitly;
52 | # see the in-line comments for details.
53 | #
54 | # There are tweaks for specific operating systems such as AIX, CygWin,
55 | # Darwin, MinGW, and NonStop.
56 | #
57 | # (3) This script is generated from the Groovy template
58 | # https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
59 | # within the Gradle project.
60 | #
61 | # You can find Gradle at https://github.com/gradle/gradle/.
62 | #
63 | ##############################################################################
64 |
65 | # Attempt to set APP_HOME
66 |
67 | # Resolve links: $0 may be a link
68 | app_path=$0
69 |
70 | # Need this for daisy-chained symlinks.
71 | while
72 | APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path
73 | [ -h "$app_path" ]
74 | do
75 | ls=$( ls -ld "$app_path" )
76 | link=${ls#*' -> '}
77 | case $link in #(
78 | /*) app_path=$link ;; #(
79 | *) app_path=$APP_HOME$link ;;
80 | esac
81 | done
82 |
83 | # This is normally unused
84 | # shellcheck disable=SC2034
85 | APP_BASE_NAME=${0##*/}
86 | # Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
87 | APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit
88 |
89 | # Use the maximum available, or set MAX_FD != -1 to use that value.
90 | MAX_FD=maximum
91 |
92 | warn () {
93 | echo "$*"
94 | } >&2
95 |
96 | die () {
97 | echo
98 | echo "$*"
99 | echo
100 | exit 1
101 | } >&2
102 |
103 | # OS specific support (must be 'true' or 'false').
104 | cygwin=false
105 | msys=false
106 | darwin=false
107 | nonstop=false
108 | case "$( uname )" in #(
109 | CYGWIN* ) cygwin=true ;; #(
110 | Darwin* ) darwin=true ;; #(
111 | MSYS* | MINGW* ) msys=true ;; #(
112 | NONSTOP* ) nonstop=true ;;
113 | esac
114 |
115 | CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
116 |
117 |
118 | # Determine the Java command to use to start the JVM.
119 | if [ -n "$JAVA_HOME" ] ; then
120 | if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
121 | # IBM's JDK on AIX uses strange locations for the executables
122 | JAVACMD=$JAVA_HOME/jre/sh/java
123 | else
124 | JAVACMD=$JAVA_HOME/bin/java
125 | fi
126 | if [ ! -x "$JAVACMD" ] ; then
127 | die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
128 |
129 | Please set the JAVA_HOME variable in your environment to match the
130 | location of your Java installation."
131 | fi
132 | else
133 | JAVACMD=java
134 | if ! command -v java >/dev/null 2>&1
135 | then
136 | die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
137 |
138 | Please set the JAVA_HOME variable in your environment to match the
139 | location of your Java installation."
140 | fi
141 | fi
142 |
143 | # Increase the maximum file descriptors if we can.
144 | if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
145 | case $MAX_FD in #(
146 | max*)
147 | # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
148 | # shellcheck disable=SC3045
149 | MAX_FD=$( ulimit -H -n ) ||
150 | warn "Could not query maximum file descriptor limit"
151 | esac
152 | case $MAX_FD in #(
153 | '' | soft) :;; #(
154 | *)
155 | # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
156 | # shellcheck disable=SC3045
157 | ulimit -n "$MAX_FD" ||
158 | warn "Could not set maximum file descriptor limit to $MAX_FD"
159 | esac
160 | fi
161 |
162 | # Collect all arguments for the java command, stacking in reverse order:
163 | # * args from the command line
164 | # * the main class name
165 | # * -classpath
166 | # * -D...appname settings
167 | # * --module-path (only if needed)
168 | # * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables.
169 |
170 | # For Cygwin or MSYS, switch paths to Windows format before running java
171 | if "$cygwin" || "$msys" ; then
172 | APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
173 | CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" )
174 |
175 | JAVACMD=$( cygpath --unix "$JAVACMD" )
176 |
177 | # Now convert the arguments - kludge to limit ourselves to /bin/sh
178 | for arg do
179 | if
180 | case $arg in #(
181 | -*) false ;; # don't mess with options #(
182 | /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath
183 | [ -e "$t" ] ;; #(
184 | *) false ;;
185 | esac
186 | then
187 | arg=$( cygpath --path --ignore --mixed "$arg" )
188 | fi
189 | # Roll the args list around exactly as many times as the number of
190 | # args, so each arg winds up back in the position where it started, but
191 | # possibly modified.
192 | #
193 | # NB: a `for` loop captures its iteration list before it begins, so
194 | # changing the positional parameters here affects neither the number of
195 | # iterations, nor the values presented in `arg`.
196 | shift # remove old arg
197 | set -- "$@" "$arg" # push replacement arg
198 | done
199 | fi
200 |
201 |
202 | # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
203 | DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
204 |
205 | # Collect all arguments for the java command;
206 | # * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of
207 | # shell script including quotes and variable substitutions, so put them in
208 | # double quotes to make sure that they get re-expanded; and
209 | # * put everything else in single quotes, so that it's not re-expanded.
210 |
211 | set -- \
212 | "-Dorg.gradle.appname=$APP_BASE_NAME" \
213 | -classpath "$CLASSPATH" \
214 | org.gradle.wrapper.GradleWrapperMain \
215 | "$@"
216 |
217 | # Stop when "xargs" is not available.
218 | if ! command -v xargs >/dev/null 2>&1
219 | then
220 | die "xargs is not available"
221 | fi
222 |
223 | # Use "xargs" to parse quoted args.
224 | #
225 | # With -n1 it outputs one arg per line, with the quotes and backslashes removed.
226 | #
227 | # In Bash we could simply go:
228 | #
229 | # readarray ARGS < <( xargs -n1 <<<"$var" ) &&
230 | # set -- "${ARGS[@]}" "$@"
231 | #
232 | # but POSIX shell has neither arrays nor command substitution, so instead we
233 | # post-process each arg (as a line of input to sed) to backslash-escape any
234 | # character that might be a shell metacharacter, then use eval to reverse
235 | # that process (while maintaining the separation between arguments), and wrap
236 | # the whole thing up as a single "set" statement.
237 | #
238 | # This will of course break if any of these variables contains a newline or
239 | # an unmatched quote.
240 | #
241 |
242 | eval "set -- $(
243 | printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" |
244 | xargs -n1 |
245 | sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' |
246 | tr '\n' ' '
247 | )" '"$@"'
248 |
249 | exec "$JAVACMD" "$@"
250 |
--------------------------------------------------------------------------------
/android/gradlew.bat:
--------------------------------------------------------------------------------
1 | @rem
2 | @rem Copyright 2015 the original author or authors.
3 | @rem
4 | @rem Licensed under the Apache License, Version 2.0 (the "License");
5 | @rem you may not use this file except in compliance with the License.
6 | @rem You may obtain a copy of the License at
7 | @rem
8 | @rem https://www.apache.org/licenses/LICENSE-2.0
9 | @rem
10 | @rem Unless required by applicable law or agreed to in writing, software
11 | @rem distributed under the License is distributed on an "AS IS" BASIS,
12 | @rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | @rem See the License for the specific language governing permissions and
14 | @rem limitations under the License.
15 | @rem
16 |
17 | @if "%DEBUG%"=="" @echo off
18 | @rem ##########################################################################
19 | @rem
20 | @rem Gradle startup script for Windows
21 | @rem
22 | @rem ##########################################################################
23 |
24 | @rem Set local scope for the variables with windows NT shell
25 | if "%OS%"=="Windows_NT" setlocal
26 |
27 | set DIRNAME=%~dp0
28 | if "%DIRNAME%"=="" set DIRNAME=.
29 | @rem This is normally unused
30 | set APP_BASE_NAME=%~n0
31 | set APP_HOME=%DIRNAME%
32 |
33 | @rem Resolve any "." and ".." in APP_HOME to make it shorter.
34 | for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
35 |
36 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
37 | set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
38 |
39 | @rem Find java.exe
40 | if defined JAVA_HOME goto findJavaFromJavaHome
41 |
42 | set JAVA_EXE=java.exe
43 | %JAVA_EXE% -version >NUL 2>&1
44 | if %ERRORLEVEL% equ 0 goto execute
45 |
46 | echo.
47 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
48 | echo.
49 | echo Please set the JAVA_HOME variable in your environment to match the
50 | echo location of your Java installation.
51 |
52 | goto fail
53 |
54 | :findJavaFromJavaHome
55 | set JAVA_HOME=%JAVA_HOME:"=%
56 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe
57 |
58 | if exist "%JAVA_EXE%" goto execute
59 |
60 | echo.
61 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
62 | echo.
63 | echo Please set the JAVA_HOME variable in your environment to match the
64 | echo location of your Java installation.
65 |
66 | goto fail
67 |
68 | :execute
69 | @rem Setup the command line
70 |
71 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
72 |
73 |
74 | @rem Execute Gradle
75 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
76 |
77 | :end
78 | @rem End local scope for the variables with windows NT shell
79 | if %ERRORLEVEL% equ 0 goto mainEnd
80 |
81 | :fail
82 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
83 | rem the _cmd.exe /c_ return code!
84 | set EXIT_CODE=%ERRORLEVEL%
85 | if %EXIT_CODE% equ 0 set EXIT_CODE=1
86 | if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%
87 | exit /b %EXIT_CODE%
88 |
89 | :mainEnd
90 | if "%OS%"=="Windows_NT" endlocal
91 |
92 | :omega
93 |
--------------------------------------------------------------------------------
/android/settings.gradle:
--------------------------------------------------------------------------------
1 | rootProject.name = 'FalWithReactNative'
2 | apply from: file("../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesSettingsGradle(settings)
3 | include ':app'
4 | includeBuild('../node_modules/@react-native/gradle-plugin')
5 |
--------------------------------------------------------------------------------
/app.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "FalWithReactNative",
3 | "displayName": "FalWithReactNative"
4 | }
5 |
--------------------------------------------------------------------------------
/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: ['module:@react-native/babel-preset'],
3 | plugins: [
4 | [
5 | 'module-resolver',
6 | {
7 | alias: {
8 | '~': './src',
9 | },
10 | },
11 | ],
12 | ['nativewind/babel', { compileOnly: true }],
13 | 'react-native-reanimated/plugin',
14 | ],
15 | };
16 |
--------------------------------------------------------------------------------
/index.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable no-unused-vars */
2 |
3 | /* eslint-disable import/namespace */
4 |
5 | /**
6 | * @format
7 | */
8 | import App from './App';
9 | import { name as appName } from './app.json';
10 | import React from 'react';
11 | import { AppRegistry } from 'react-native';
12 | import 'react-native-gesture-handler';
13 |
14 | AppRegistry.registerComponent(appName, () => App);
15 |
--------------------------------------------------------------------------------
/ios/.xcode.env:
--------------------------------------------------------------------------------
1 | # This `.xcode.env` file is versioned and is used to source the environment
2 | # used when running script phases inside Xcode.
3 | # To customize your local environment, you can create an `.xcode.env.local`
4 | # file that is not versioned.
5 |
6 | # NODE_BINARY variable contains the PATH to the node executable.
7 | #
8 | # Customize the NODE_BINARY variable here.
9 | # For example, to use nvm with brew, add the following line
10 | # . "$(brew --prefix nvm)/nvm.sh" --no-use
11 | export NODE_BINARY=$(command -v node)
12 |
--------------------------------------------------------------------------------
/ios/FalWithReactNative.xcodeproj/project.pbxproj:
--------------------------------------------------------------------------------
1 | // !$*UTF8*$!
2 | {
3 | archiveVersion = 1;
4 | classes = {
5 | };
6 | objectVersion = 54;
7 | objects = {
8 |
9 | /* Begin PBXBuildFile section */
10 | 00E356F31AD99517003FC87E /* FalWithReactNativeTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 00E356F21AD99517003FC87E /* FalWithReactNativeTests.m */; };
11 | 0C80B921A6F3F58F76C31292 /* libPods-FalWithReactNative.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5DCACB8F33CDC322A6C60F78 /* libPods-FalWithReactNative.a */; };
12 | 13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.mm */; };
13 | 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; };
14 | 13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; };
15 | 7699B88040F8A987B510C191 /* libPods-FalWithReactNative-FalWithReactNativeTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 19F6CBCC0A4E27FBF8BF4A61 /* libPods-FalWithReactNative-FalWithReactNativeTests.a */; };
16 | 81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */; };
17 | /* End PBXBuildFile section */
18 |
19 | /* Begin PBXContainerItemProxy section */
20 | 00E356F41AD99517003FC87E /* PBXContainerItemProxy */ = {
21 | isa = PBXContainerItemProxy;
22 | containerPortal = 83CBB9F71A601CBA00E9B192 /* Project object */;
23 | proxyType = 1;
24 | remoteGlobalIDString = 13B07F861A680F5B00A75B9A;
25 | remoteInfo = FalWithReactNative;
26 | };
27 | /* End PBXContainerItemProxy section */
28 |
29 | /* Begin PBXFileReference section */
30 | 00E356EE1AD99517003FC87E /* FalWithReactNativeTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = FalWithReactNativeTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
31 | 00E356F11AD99517003FC87E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
32 | 00E356F21AD99517003FC87E /* FalWithReactNativeTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = FalWithReactNativeTests.m; sourceTree = ""; };
33 | 13B07F961A680F5B00A75B9A /* FalWithReactNative.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = FalWithReactNative.app; sourceTree = BUILT_PRODUCTS_DIR; };
34 | 13B07FAF1A68108700A75B9A /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = FalWithReactNative/AppDelegate.h; sourceTree = ""; };
35 | 13B07FB01A68108700A75B9A /* AppDelegate.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = AppDelegate.mm; path = FalWithReactNative/AppDelegate.mm; sourceTree = ""; };
36 | 13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = FalWithReactNative/Images.xcassets; sourceTree = ""; };
37 | 13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = FalWithReactNative/Info.plist; sourceTree = ""; };
38 | 13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = FalWithReactNative/main.m; sourceTree = ""; };
39 | 19F6CBCC0A4E27FBF8BF4A61 /* libPods-FalWithReactNative-FalWithReactNativeTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-FalWithReactNative-FalWithReactNativeTests.a"; sourceTree = BUILT_PRODUCTS_DIR; };
40 | 3B4392A12AC88292D35C810B /* Pods-FalWithReactNative.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-FalWithReactNative.debug.xcconfig"; path = "Target Support Files/Pods-FalWithReactNative/Pods-FalWithReactNative.debug.xcconfig"; sourceTree = ""; };
41 | 5709B34CF0A7D63546082F79 /* Pods-FalWithReactNative.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-FalWithReactNative.release.xcconfig"; path = "Target Support Files/Pods-FalWithReactNative/Pods-FalWithReactNative.release.xcconfig"; sourceTree = ""; };
42 | 5B7EB9410499542E8C5724F5 /* Pods-FalWithReactNative-FalWithReactNativeTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-FalWithReactNative-FalWithReactNativeTests.debug.xcconfig"; path = "Target Support Files/Pods-FalWithReactNative-FalWithReactNativeTests/Pods-FalWithReactNative-FalWithReactNativeTests.debug.xcconfig"; sourceTree = ""; };
43 | 5DCACB8F33CDC322A6C60F78 /* libPods-FalWithReactNative.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-FalWithReactNative.a"; sourceTree = BUILT_PRODUCTS_DIR; };
44 | 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = LaunchScreen.storyboard; path = FalWithReactNative/LaunchScreen.storyboard; sourceTree = ""; };
45 | 89C6BE57DB24E9ADA2F236DE /* Pods-FalWithReactNative-FalWithReactNativeTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-FalWithReactNative-FalWithReactNativeTests.release.xcconfig"; path = "Target Support Files/Pods-FalWithReactNative-FalWithReactNativeTests/Pods-FalWithReactNative-FalWithReactNativeTests.release.xcconfig"; sourceTree = ""; };
46 | ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; };
47 | /* End PBXFileReference section */
48 |
49 | /* Begin PBXFrameworksBuildPhase section */
50 | 00E356EB1AD99517003FC87E /* Frameworks */ = {
51 | isa = PBXFrameworksBuildPhase;
52 | buildActionMask = 2147483647;
53 | files = (
54 | 7699B88040F8A987B510C191 /* libPods-FalWithReactNative-FalWithReactNativeTests.a in Frameworks */,
55 | );
56 | runOnlyForDeploymentPostprocessing = 0;
57 | };
58 | 13B07F8C1A680F5B00A75B9A /* Frameworks */ = {
59 | isa = PBXFrameworksBuildPhase;
60 | buildActionMask = 2147483647;
61 | files = (
62 | 0C80B921A6F3F58F76C31292 /* libPods-FalWithReactNative.a in Frameworks */,
63 | );
64 | runOnlyForDeploymentPostprocessing = 0;
65 | };
66 | /* End PBXFrameworksBuildPhase section */
67 |
68 | /* Begin PBXGroup section */
69 | 00E356EF1AD99517003FC87E /* FalWithReactNativeTests */ = {
70 | isa = PBXGroup;
71 | children = (
72 | 00E356F21AD99517003FC87E /* FalWithReactNativeTests.m */,
73 | 00E356F01AD99517003FC87E /* Supporting Files */,
74 | );
75 | path = FalWithReactNativeTests;
76 | sourceTree = "";
77 | };
78 | 00E356F01AD99517003FC87E /* Supporting Files */ = {
79 | isa = PBXGroup;
80 | children = (
81 | 00E356F11AD99517003FC87E /* Info.plist */,
82 | );
83 | name = "Supporting Files";
84 | sourceTree = "";
85 | };
86 | 13B07FAE1A68108700A75B9A /* FalWithReactNative */ = {
87 | isa = PBXGroup;
88 | children = (
89 | 13B07FAF1A68108700A75B9A /* AppDelegate.h */,
90 | 13B07FB01A68108700A75B9A /* AppDelegate.mm */,
91 | 13B07FB51A68108700A75B9A /* Images.xcassets */,
92 | 13B07FB61A68108700A75B9A /* Info.plist */,
93 | 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */,
94 | 13B07FB71A68108700A75B9A /* main.m */,
95 | );
96 | name = FalWithReactNative;
97 | sourceTree = "";
98 | };
99 | 2D16E6871FA4F8E400B85C8A /* Frameworks */ = {
100 | isa = PBXGroup;
101 | children = (
102 | ED297162215061F000B7C4FE /* JavaScriptCore.framework */,
103 | 5DCACB8F33CDC322A6C60F78 /* libPods-FalWithReactNative.a */,
104 | 19F6CBCC0A4E27FBF8BF4A61 /* libPods-FalWithReactNative-FalWithReactNativeTests.a */,
105 | );
106 | name = Frameworks;
107 | sourceTree = "";
108 | };
109 | 832341AE1AAA6A7D00B99B32 /* Libraries */ = {
110 | isa = PBXGroup;
111 | children = (
112 | );
113 | name = Libraries;
114 | sourceTree = "";
115 | };
116 | 83CBB9F61A601CBA00E9B192 = {
117 | isa = PBXGroup;
118 | children = (
119 | 13B07FAE1A68108700A75B9A /* FalWithReactNative */,
120 | 832341AE1AAA6A7D00B99B32 /* Libraries */,
121 | 00E356EF1AD99517003FC87E /* FalWithReactNativeTests */,
122 | 83CBBA001A601CBA00E9B192 /* Products */,
123 | 2D16E6871FA4F8E400B85C8A /* Frameworks */,
124 | BBD78D7AC51CEA395F1C20DB /* Pods */,
125 | );
126 | indentWidth = 2;
127 | sourceTree = "";
128 | tabWidth = 2;
129 | usesTabs = 0;
130 | };
131 | 83CBBA001A601CBA00E9B192 /* Products */ = {
132 | isa = PBXGroup;
133 | children = (
134 | 13B07F961A680F5B00A75B9A /* FalWithReactNative.app */,
135 | 00E356EE1AD99517003FC87E /* FalWithReactNativeTests.xctest */,
136 | );
137 | name = Products;
138 | sourceTree = "";
139 | };
140 | BBD78D7AC51CEA395F1C20DB /* Pods */ = {
141 | isa = PBXGroup;
142 | children = (
143 | 3B4392A12AC88292D35C810B /* Pods-FalWithReactNative.debug.xcconfig */,
144 | 5709B34CF0A7D63546082F79 /* Pods-FalWithReactNative.release.xcconfig */,
145 | 5B7EB9410499542E8C5724F5 /* Pods-FalWithReactNative-FalWithReactNativeTests.debug.xcconfig */,
146 | 89C6BE57DB24E9ADA2F236DE /* Pods-FalWithReactNative-FalWithReactNativeTests.release.xcconfig */,
147 | );
148 | path = Pods;
149 | sourceTree = "";
150 | };
151 | /* End PBXGroup section */
152 |
153 | /* Begin PBXNativeTarget section */
154 | 00E356ED1AD99517003FC87E /* FalWithReactNativeTests */ = {
155 | isa = PBXNativeTarget;
156 | buildConfigurationList = 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "FalWithReactNativeTests" */;
157 | buildPhases = (
158 | A55EABD7B0C7F3A422A6CC61 /* [CP] Check Pods Manifest.lock */,
159 | 00E356EA1AD99517003FC87E /* Sources */,
160 | 00E356EB1AD99517003FC87E /* Frameworks */,
161 | 00E356EC1AD99517003FC87E /* Resources */,
162 | C59DA0FBD6956966B86A3779 /* [CP] Embed Pods Frameworks */,
163 | F6A41C54EA430FDDC6A6ED99 /* [CP] Copy Pods Resources */,
164 | );
165 | buildRules = (
166 | );
167 | dependencies = (
168 | 00E356F51AD99517003FC87E /* PBXTargetDependency */,
169 | );
170 | name = FalWithReactNativeTests;
171 | productName = FalWithReactNativeTests;
172 | productReference = 00E356EE1AD99517003FC87E /* FalWithReactNativeTests.xctest */;
173 | productType = "com.apple.product-type.bundle.unit-test";
174 | };
175 | 13B07F861A680F5B00A75B9A /* FalWithReactNative */ = {
176 | isa = PBXNativeTarget;
177 | buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "FalWithReactNative" */;
178 | buildPhases = (
179 | C38B50BA6285516D6DCD4F65 /* [CP] Check Pods Manifest.lock */,
180 | 13B07F871A680F5B00A75B9A /* Sources */,
181 | 13B07F8C1A680F5B00A75B9A /* Frameworks */,
182 | 13B07F8E1A680F5B00A75B9A /* Resources */,
183 | 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */,
184 | 00EEFC60759A1932668264C0 /* [CP] Embed Pods Frameworks */,
185 | E235C05ADACE081382539298 /* [CP] Copy Pods Resources */,
186 | );
187 | buildRules = (
188 | );
189 | dependencies = (
190 | );
191 | name = FalWithReactNative;
192 | productName = FalWithReactNative;
193 | productReference = 13B07F961A680F5B00A75B9A /* FalWithReactNative.app */;
194 | productType = "com.apple.product-type.application";
195 | };
196 | /* End PBXNativeTarget section */
197 |
198 | /* Begin PBXProject section */
199 | 83CBB9F71A601CBA00E9B192 /* Project object */ = {
200 | isa = PBXProject;
201 | attributes = {
202 | LastUpgradeCheck = 1210;
203 | TargetAttributes = {
204 | 00E356ED1AD99517003FC87E = {
205 | CreatedOnToolsVersion = 6.2;
206 | TestTargetID = 13B07F861A680F5B00A75B9A;
207 | };
208 | 13B07F861A680F5B00A75B9A = {
209 | LastSwiftMigration = 1120;
210 | };
211 | };
212 | };
213 | buildConfigurationList = 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "FalWithReactNative" */;
214 | compatibilityVersion = "Xcode 12.0";
215 | developmentRegion = en;
216 | hasScannedForEncodings = 0;
217 | knownRegions = (
218 | en,
219 | Base,
220 | );
221 | mainGroup = 83CBB9F61A601CBA00E9B192;
222 | productRefGroup = 83CBBA001A601CBA00E9B192 /* Products */;
223 | projectDirPath = "";
224 | projectRoot = "";
225 | targets = (
226 | 13B07F861A680F5B00A75B9A /* FalWithReactNative */,
227 | 00E356ED1AD99517003FC87E /* FalWithReactNativeTests */,
228 | );
229 | };
230 | /* End PBXProject section */
231 |
232 | /* Begin PBXResourcesBuildPhase section */
233 | 00E356EC1AD99517003FC87E /* Resources */ = {
234 | isa = PBXResourcesBuildPhase;
235 | buildActionMask = 2147483647;
236 | files = (
237 | );
238 | runOnlyForDeploymentPostprocessing = 0;
239 | };
240 | 13B07F8E1A680F5B00A75B9A /* Resources */ = {
241 | isa = PBXResourcesBuildPhase;
242 | buildActionMask = 2147483647;
243 | files = (
244 | 81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */,
245 | 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */,
246 | );
247 | runOnlyForDeploymentPostprocessing = 0;
248 | };
249 | /* End PBXResourcesBuildPhase section */
250 |
251 | /* Begin PBXShellScriptBuildPhase section */
252 | 00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */ = {
253 | isa = PBXShellScriptBuildPhase;
254 | buildActionMask = 2147483647;
255 | files = (
256 | );
257 | inputPaths = (
258 | "$(SRCROOT)/.xcode.env.local",
259 | "$(SRCROOT)/.xcode.env",
260 | );
261 | name = "Bundle React Native code and images";
262 | outputPaths = (
263 | );
264 | runOnlyForDeploymentPostprocessing = 0;
265 | shellPath = /bin/sh;
266 | shellScript = "set -e\n\nWITH_ENVIRONMENT=\"../node_modules/react-native/scripts/xcode/with-environment.sh\"\nREACT_NATIVE_XCODE=\"../node_modules/react-native/scripts/react-native-xcode.sh\"\n\n/bin/sh -c \"$WITH_ENVIRONMENT $REACT_NATIVE_XCODE\"\n";
267 | };
268 | 00EEFC60759A1932668264C0 /* [CP] Embed Pods Frameworks */ = {
269 | isa = PBXShellScriptBuildPhase;
270 | buildActionMask = 2147483647;
271 | files = (
272 | );
273 | inputFileListPaths = (
274 | "${PODS_ROOT}/Target Support Files/Pods-FalWithReactNative/Pods-FalWithReactNative-frameworks-${CONFIGURATION}-input-files.xcfilelist",
275 | );
276 | name = "[CP] Embed Pods Frameworks";
277 | outputFileListPaths = (
278 | "${PODS_ROOT}/Target Support Files/Pods-FalWithReactNative/Pods-FalWithReactNative-frameworks-${CONFIGURATION}-output-files.xcfilelist",
279 | );
280 | runOnlyForDeploymentPostprocessing = 0;
281 | shellPath = /bin/sh;
282 | shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-FalWithReactNative/Pods-FalWithReactNative-frameworks.sh\"\n";
283 | showEnvVarsInLog = 0;
284 | };
285 | A55EABD7B0C7F3A422A6CC61 /* [CP] Check Pods Manifest.lock */ = {
286 | isa = PBXShellScriptBuildPhase;
287 | buildActionMask = 2147483647;
288 | files = (
289 | );
290 | inputFileListPaths = (
291 | );
292 | inputPaths = (
293 | "${PODS_PODFILE_DIR_PATH}/Podfile.lock",
294 | "${PODS_ROOT}/Manifest.lock",
295 | );
296 | name = "[CP] Check Pods Manifest.lock";
297 | outputFileListPaths = (
298 | );
299 | outputPaths = (
300 | "$(DERIVED_FILE_DIR)/Pods-FalWithReactNative-FalWithReactNativeTests-checkManifestLockResult.txt",
301 | );
302 | runOnlyForDeploymentPostprocessing = 0;
303 | shellPath = /bin/sh;
304 | shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
305 | showEnvVarsInLog = 0;
306 | };
307 | C38B50BA6285516D6DCD4F65 /* [CP] Check Pods Manifest.lock */ = {
308 | isa = PBXShellScriptBuildPhase;
309 | buildActionMask = 2147483647;
310 | files = (
311 | );
312 | inputFileListPaths = (
313 | );
314 | inputPaths = (
315 | "${PODS_PODFILE_DIR_PATH}/Podfile.lock",
316 | "${PODS_ROOT}/Manifest.lock",
317 | );
318 | name = "[CP] Check Pods Manifest.lock";
319 | outputFileListPaths = (
320 | );
321 | outputPaths = (
322 | "$(DERIVED_FILE_DIR)/Pods-FalWithReactNative-checkManifestLockResult.txt",
323 | );
324 | runOnlyForDeploymentPostprocessing = 0;
325 | shellPath = /bin/sh;
326 | shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
327 | showEnvVarsInLog = 0;
328 | };
329 | C59DA0FBD6956966B86A3779 /* [CP] Embed Pods Frameworks */ = {
330 | isa = PBXShellScriptBuildPhase;
331 | buildActionMask = 2147483647;
332 | files = (
333 | );
334 | inputFileListPaths = (
335 | "${PODS_ROOT}/Target Support Files/Pods-FalWithReactNative-FalWithReactNativeTests/Pods-FalWithReactNative-FalWithReactNativeTests-frameworks-${CONFIGURATION}-input-files.xcfilelist",
336 | );
337 | name = "[CP] Embed Pods Frameworks";
338 | outputFileListPaths = (
339 | "${PODS_ROOT}/Target Support Files/Pods-FalWithReactNative-FalWithReactNativeTests/Pods-FalWithReactNative-FalWithReactNativeTests-frameworks-${CONFIGURATION}-output-files.xcfilelist",
340 | );
341 | runOnlyForDeploymentPostprocessing = 0;
342 | shellPath = /bin/sh;
343 | shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-FalWithReactNative-FalWithReactNativeTests/Pods-FalWithReactNative-FalWithReactNativeTests-frameworks.sh\"\n";
344 | showEnvVarsInLog = 0;
345 | };
346 | E235C05ADACE081382539298 /* [CP] Copy Pods Resources */ = {
347 | isa = PBXShellScriptBuildPhase;
348 | buildActionMask = 2147483647;
349 | files = (
350 | );
351 | inputFileListPaths = (
352 | "${PODS_ROOT}/Target Support Files/Pods-FalWithReactNative/Pods-FalWithReactNative-resources-${CONFIGURATION}-input-files.xcfilelist",
353 | );
354 | name = "[CP] Copy Pods Resources";
355 | outputFileListPaths = (
356 | "${PODS_ROOT}/Target Support Files/Pods-FalWithReactNative/Pods-FalWithReactNative-resources-${CONFIGURATION}-output-files.xcfilelist",
357 | );
358 | runOnlyForDeploymentPostprocessing = 0;
359 | shellPath = /bin/sh;
360 | shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-FalWithReactNative/Pods-FalWithReactNative-resources.sh\"\n";
361 | showEnvVarsInLog = 0;
362 | };
363 | F6A41C54EA430FDDC6A6ED99 /* [CP] Copy Pods Resources */ = {
364 | isa = PBXShellScriptBuildPhase;
365 | buildActionMask = 2147483647;
366 | files = (
367 | );
368 | inputFileListPaths = (
369 | "${PODS_ROOT}/Target Support Files/Pods-FalWithReactNative-FalWithReactNativeTests/Pods-FalWithReactNative-FalWithReactNativeTests-resources-${CONFIGURATION}-input-files.xcfilelist",
370 | );
371 | name = "[CP] Copy Pods Resources";
372 | outputFileListPaths = (
373 | "${PODS_ROOT}/Target Support Files/Pods-FalWithReactNative-FalWithReactNativeTests/Pods-FalWithReactNative-FalWithReactNativeTests-resources-${CONFIGURATION}-output-files.xcfilelist",
374 | );
375 | runOnlyForDeploymentPostprocessing = 0;
376 | shellPath = /bin/sh;
377 | shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-FalWithReactNative-FalWithReactNativeTests/Pods-FalWithReactNative-FalWithReactNativeTests-resources.sh\"\n";
378 | showEnvVarsInLog = 0;
379 | };
380 | /* End PBXShellScriptBuildPhase section */
381 |
382 | /* Begin PBXSourcesBuildPhase section */
383 | 00E356EA1AD99517003FC87E /* Sources */ = {
384 | isa = PBXSourcesBuildPhase;
385 | buildActionMask = 2147483647;
386 | files = (
387 | 00E356F31AD99517003FC87E /* FalWithReactNativeTests.m in Sources */,
388 | );
389 | runOnlyForDeploymentPostprocessing = 0;
390 | };
391 | 13B07F871A680F5B00A75B9A /* Sources */ = {
392 | isa = PBXSourcesBuildPhase;
393 | buildActionMask = 2147483647;
394 | files = (
395 | 13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */,
396 | 13B07FC11A68108700A75B9A /* main.m in Sources */,
397 | );
398 | runOnlyForDeploymentPostprocessing = 0;
399 | };
400 | /* End PBXSourcesBuildPhase section */
401 |
402 | /* Begin PBXTargetDependency section */
403 | 00E356F51AD99517003FC87E /* PBXTargetDependency */ = {
404 | isa = PBXTargetDependency;
405 | target = 13B07F861A680F5B00A75B9A /* FalWithReactNative */;
406 | targetProxy = 00E356F41AD99517003FC87E /* PBXContainerItemProxy */;
407 | };
408 | /* End PBXTargetDependency section */
409 |
410 | /* Begin XCBuildConfiguration section */
411 | 00E356F61AD99517003FC87E /* Debug */ = {
412 | isa = XCBuildConfiguration;
413 | baseConfigurationReference = 5B7EB9410499542E8C5724F5 /* Pods-FalWithReactNative-FalWithReactNativeTests.debug.xcconfig */;
414 | buildSettings = {
415 | BUNDLE_LOADER = "$(TEST_HOST)";
416 | GCC_PREPROCESSOR_DEFINITIONS = (
417 | "DEBUG=1",
418 | "$(inherited)",
419 | );
420 | INFOPLIST_FILE = FalWithReactNativeTests/Info.plist;
421 | IPHONEOS_DEPLOYMENT_TARGET = 13.4;
422 | LD_RUNPATH_SEARCH_PATHS = (
423 | "$(inherited)",
424 | "@executable_path/Frameworks",
425 | "@loader_path/Frameworks",
426 | );
427 | OTHER_LDFLAGS = (
428 | "-ObjC",
429 | "-lc++",
430 | "$(inherited)",
431 | );
432 | PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)";
433 | PRODUCT_NAME = "$(TARGET_NAME)";
434 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/FalWithReactNative.app/FalWithReactNative";
435 | };
436 | name = Debug;
437 | };
438 | 00E356F71AD99517003FC87E /* Release */ = {
439 | isa = XCBuildConfiguration;
440 | baseConfigurationReference = 89C6BE57DB24E9ADA2F236DE /* Pods-FalWithReactNative-FalWithReactNativeTests.release.xcconfig */;
441 | buildSettings = {
442 | BUNDLE_LOADER = "$(TEST_HOST)";
443 | COPY_PHASE_STRIP = NO;
444 | INFOPLIST_FILE = FalWithReactNativeTests/Info.plist;
445 | IPHONEOS_DEPLOYMENT_TARGET = 13.4;
446 | LD_RUNPATH_SEARCH_PATHS = (
447 | "$(inherited)",
448 | "@executable_path/Frameworks",
449 | "@loader_path/Frameworks",
450 | );
451 | OTHER_LDFLAGS = (
452 | "-ObjC",
453 | "-lc++",
454 | "$(inherited)",
455 | );
456 | PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)";
457 | PRODUCT_NAME = "$(TARGET_NAME)";
458 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/FalWithReactNative.app/FalWithReactNative";
459 | };
460 | name = Release;
461 | };
462 | 13B07F941A680F5B00A75B9A /* Debug */ = {
463 | isa = XCBuildConfiguration;
464 | baseConfigurationReference = 3B4392A12AC88292D35C810B /* Pods-FalWithReactNative.debug.xcconfig */;
465 | buildSettings = {
466 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
467 | CLANG_ENABLE_MODULES = YES;
468 | CURRENT_PROJECT_VERSION = 1;
469 | ENABLE_BITCODE = NO;
470 | INFOPLIST_FILE = FalWithReactNative/Info.plist;
471 | LD_RUNPATH_SEARCH_PATHS = (
472 | "$(inherited)",
473 | "@executable_path/Frameworks",
474 | );
475 | MARKETING_VERSION = 1.0;
476 | OTHER_LDFLAGS = (
477 | "$(inherited)",
478 | "-ObjC",
479 | "-lc++",
480 | );
481 | PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)";
482 | PRODUCT_NAME = FalWithReactNative;
483 | SWIFT_OPTIMIZATION_LEVEL = "-Onone";
484 | SWIFT_VERSION = 5.0;
485 | VERSIONING_SYSTEM = "apple-generic";
486 | };
487 | name = Debug;
488 | };
489 | 13B07F951A680F5B00A75B9A /* Release */ = {
490 | isa = XCBuildConfiguration;
491 | baseConfigurationReference = 5709B34CF0A7D63546082F79 /* Pods-FalWithReactNative.release.xcconfig */;
492 | buildSettings = {
493 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
494 | CLANG_ENABLE_MODULES = YES;
495 | CURRENT_PROJECT_VERSION = 1;
496 | INFOPLIST_FILE = FalWithReactNative/Info.plist;
497 | LD_RUNPATH_SEARCH_PATHS = (
498 | "$(inherited)",
499 | "@executable_path/Frameworks",
500 | );
501 | MARKETING_VERSION = 1.0;
502 | OTHER_LDFLAGS = (
503 | "$(inherited)",
504 | "-ObjC",
505 | "-lc++",
506 | );
507 | PRODUCT_BUNDLE_IDENTIFIER = "org.reactjs.native.example.$(PRODUCT_NAME:rfc1034identifier)";
508 | PRODUCT_NAME = FalWithReactNative;
509 | SWIFT_VERSION = 5.0;
510 | VERSIONING_SYSTEM = "apple-generic";
511 | };
512 | name = Release;
513 | };
514 | 83CBBA201A601CBA00E9B192 /* Debug */ = {
515 | isa = XCBuildConfiguration;
516 | buildSettings = {
517 | ALWAYS_SEARCH_USER_PATHS = NO;
518 | CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
519 | CLANG_CXX_LANGUAGE_STANDARD = "c++20";
520 | CLANG_CXX_LIBRARY = "libc++";
521 | CLANG_ENABLE_MODULES = YES;
522 | CLANG_ENABLE_OBJC_ARC = YES;
523 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
524 | CLANG_WARN_BOOL_CONVERSION = YES;
525 | CLANG_WARN_COMMA = YES;
526 | CLANG_WARN_CONSTANT_CONVERSION = YES;
527 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
528 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
529 | CLANG_WARN_EMPTY_BODY = YES;
530 | CLANG_WARN_ENUM_CONVERSION = YES;
531 | CLANG_WARN_INFINITE_RECURSION = YES;
532 | CLANG_WARN_INT_CONVERSION = YES;
533 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
534 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
535 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
536 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
537 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
538 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
539 | CLANG_WARN_STRICT_PROTOTYPES = YES;
540 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
541 | CLANG_WARN_UNREACHABLE_CODE = YES;
542 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
543 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
544 | COPY_PHASE_STRIP = NO;
545 | ENABLE_STRICT_OBJC_MSGSEND = YES;
546 | ENABLE_TESTABILITY = YES;
547 | "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = i386;
548 | GCC_C_LANGUAGE_STANDARD = gnu99;
549 | GCC_DYNAMIC_NO_PIC = NO;
550 | GCC_NO_COMMON_BLOCKS = YES;
551 | GCC_OPTIMIZATION_LEVEL = 0;
552 | GCC_PREPROCESSOR_DEFINITIONS = (
553 | "DEBUG=1",
554 | "$(inherited)",
555 | );
556 | GCC_SYMBOLS_PRIVATE_EXTERN = NO;
557 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
558 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
559 | GCC_WARN_UNDECLARED_SELECTOR = YES;
560 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
561 | GCC_WARN_UNUSED_FUNCTION = YES;
562 | GCC_WARN_UNUSED_VARIABLE = YES;
563 | IPHONEOS_DEPLOYMENT_TARGET = 13.4;
564 | LD_RUNPATH_SEARCH_PATHS = (
565 | /usr/lib/swift,
566 | "$(inherited)",
567 | );
568 | LIBRARY_SEARCH_PATHS = (
569 | "\"$(SDKROOT)/usr/lib/swift\"",
570 | "\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"",
571 | "\"$(inherited)\"",
572 | );
573 | MTL_ENABLE_DEBUG_INFO = YES;
574 | ONLY_ACTIVE_ARCH = YES;
575 | OTHER_CFLAGS = (
576 | "$(inherited)",
577 | " ",
578 | );
579 | OTHER_CPLUSPLUSFLAGS = (
580 | "$(OTHER_CFLAGS)",
581 | "-DFOLLY_NO_CONFIG",
582 | "-DFOLLY_MOBILE=1",
583 | "-DFOLLY_USE_LIBCPP=1",
584 | "-DFOLLY_CFG_NO_COROUTINES=1",
585 | " ",
586 | );
587 | OTHER_LDFLAGS = (
588 | "$(inherited)",
589 | "-Wl",
590 | "-ld_classic",
591 | );
592 | REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native";
593 | SDKROOT = iphoneos;
594 | USE_HERMES = true;
595 | };
596 | name = Debug;
597 | };
598 | 83CBBA211A601CBA00E9B192 /* Release */ = {
599 | isa = XCBuildConfiguration;
600 | buildSettings = {
601 | ALWAYS_SEARCH_USER_PATHS = NO;
602 | CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
603 | CLANG_CXX_LANGUAGE_STANDARD = "c++20";
604 | CLANG_CXX_LIBRARY = "libc++";
605 | CLANG_ENABLE_MODULES = YES;
606 | CLANG_ENABLE_OBJC_ARC = YES;
607 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
608 | CLANG_WARN_BOOL_CONVERSION = YES;
609 | CLANG_WARN_COMMA = YES;
610 | CLANG_WARN_CONSTANT_CONVERSION = YES;
611 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
612 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
613 | CLANG_WARN_EMPTY_BODY = YES;
614 | CLANG_WARN_ENUM_CONVERSION = YES;
615 | CLANG_WARN_INFINITE_RECURSION = YES;
616 | CLANG_WARN_INT_CONVERSION = YES;
617 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
618 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
619 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
620 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
621 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
622 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
623 | CLANG_WARN_STRICT_PROTOTYPES = YES;
624 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
625 | CLANG_WARN_UNREACHABLE_CODE = YES;
626 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
627 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
628 | COPY_PHASE_STRIP = YES;
629 | ENABLE_NS_ASSERTIONS = NO;
630 | ENABLE_STRICT_OBJC_MSGSEND = YES;
631 | "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = i386;
632 | GCC_C_LANGUAGE_STANDARD = gnu99;
633 | GCC_NO_COMMON_BLOCKS = YES;
634 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
635 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
636 | GCC_WARN_UNDECLARED_SELECTOR = YES;
637 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
638 | GCC_WARN_UNUSED_FUNCTION = YES;
639 | GCC_WARN_UNUSED_VARIABLE = YES;
640 | IPHONEOS_DEPLOYMENT_TARGET = 13.4;
641 | LD_RUNPATH_SEARCH_PATHS = (
642 | /usr/lib/swift,
643 | "$(inherited)",
644 | );
645 | LIBRARY_SEARCH_PATHS = (
646 | "\"$(SDKROOT)/usr/lib/swift\"",
647 | "\"$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)\"",
648 | "\"$(inherited)\"",
649 | );
650 | MTL_ENABLE_DEBUG_INFO = NO;
651 | OTHER_CFLAGS = (
652 | "$(inherited)",
653 | " ",
654 | );
655 | OTHER_CPLUSPLUSFLAGS = (
656 | "$(OTHER_CFLAGS)",
657 | "-DFOLLY_NO_CONFIG",
658 | "-DFOLLY_MOBILE=1",
659 | "-DFOLLY_USE_LIBCPP=1",
660 | "-DFOLLY_CFG_NO_COROUTINES=1",
661 | " ",
662 | );
663 | OTHER_LDFLAGS = (
664 | "$(inherited)",
665 | "-Wl",
666 | "-ld_classic",
667 | );
668 | REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native";
669 | SDKROOT = iphoneos;
670 | USE_HERMES = true;
671 | VALIDATE_PRODUCT = YES;
672 | };
673 | name = Release;
674 | };
675 | /* End XCBuildConfiguration section */
676 |
677 | /* Begin XCConfigurationList section */
678 | 00E357021AD99517003FC87E /* Build configuration list for PBXNativeTarget "FalWithReactNativeTests" */ = {
679 | isa = XCConfigurationList;
680 | buildConfigurations = (
681 | 00E356F61AD99517003FC87E /* Debug */,
682 | 00E356F71AD99517003FC87E /* Release */,
683 | );
684 | defaultConfigurationIsVisible = 0;
685 | defaultConfigurationName = Release;
686 | };
687 | 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "FalWithReactNative" */ = {
688 | isa = XCConfigurationList;
689 | buildConfigurations = (
690 | 13B07F941A680F5B00A75B9A /* Debug */,
691 | 13B07F951A680F5B00A75B9A /* Release */,
692 | );
693 | defaultConfigurationIsVisible = 0;
694 | defaultConfigurationName = Release;
695 | };
696 | 83CBB9FA1A601CBA00E9B192 /* Build configuration list for PBXProject "FalWithReactNative" */ = {
697 | isa = XCConfigurationList;
698 | buildConfigurations = (
699 | 83CBBA201A601CBA00E9B192 /* Debug */,
700 | 83CBBA211A601CBA00E9B192 /* Release */,
701 | );
702 | defaultConfigurationIsVisible = 0;
703 | defaultConfigurationName = Release;
704 | };
705 | /* End XCConfigurationList section */
706 | };
707 | rootObject = 83CBB9F71A601CBA00E9B192 /* Project object */;
708 | }
709 |
--------------------------------------------------------------------------------
/ios/FalWithReactNative.xcodeproj/xcshareddata/xcschemes/FalWithReactNative.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
5 |
8 |
9 |
15 |
21 |
22 |
23 |
24 |
25 |
30 |
31 |
33 |
39 |
40 |
41 |
42 |
43 |
53 |
55 |
61 |
62 |
63 |
64 |
70 |
72 |
78 |
79 |
80 |
81 |
83 |
84 |
87 |
88 |
89 |
--------------------------------------------------------------------------------
/ios/FalWithReactNative.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/ios/FalWithReactNative/AppDelegate.h:
--------------------------------------------------------------------------------
1 | #import
2 | #import
3 |
4 | @interface AppDelegate : RCTAppDelegate
5 |
6 | @end
7 |
--------------------------------------------------------------------------------
/ios/FalWithReactNative/AppDelegate.mm:
--------------------------------------------------------------------------------
1 | #import "AppDelegate.h"
2 |
3 | #import
4 |
5 | @implementation AppDelegate
6 |
7 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
8 | {
9 | self.moduleName = @"FalWithReactNative";
10 | // You can add your custom initial props in the dictionary below.
11 | // They will be passed down to the ViewController used by React Native.
12 | self.initialProps = @{};
13 |
14 | return [super application:application didFinishLaunchingWithOptions:launchOptions];
15 | }
16 |
17 | - (NSURL *)sourceURLForBridge:(RCTBridge *)bridge
18 | {
19 | return [self getBundleURL];
20 | }
21 |
22 | - (NSURL *)getBundleURL
23 | {
24 | #if DEBUG
25 | return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@"index"];
26 | #else
27 | return [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];
28 | #endif
29 | }
30 |
31 | @end
32 |
--------------------------------------------------------------------------------
/ios/FalWithReactNative/Images.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images": [
3 | {
4 | "idiom": "iphone",
5 | "scale": "2x",
6 | "size": "20x20"
7 | },
8 | {
9 | "idiom": "iphone",
10 | "scale": "3x",
11 | "size": "20x20"
12 | },
13 | {
14 | "idiom": "iphone",
15 | "scale": "2x",
16 | "size": "29x29"
17 | },
18 | {
19 | "idiom": "iphone",
20 | "scale": "3x",
21 | "size": "29x29"
22 | },
23 | {
24 | "idiom": "iphone",
25 | "scale": "2x",
26 | "size": "40x40"
27 | },
28 | {
29 | "idiom": "iphone",
30 | "scale": "3x",
31 | "size": "40x40"
32 | },
33 | {
34 | "idiom": "iphone",
35 | "scale": "2x",
36 | "size": "60x60"
37 | },
38 | {
39 | "idiom": "iphone",
40 | "scale": "3x",
41 | "size": "60x60"
42 | },
43 | {
44 | "idiom": "ios-marketing",
45 | "scale": "1x",
46 | "size": "1024x1024"
47 | }
48 | ],
49 | "info": {
50 | "author": "xcode",
51 | "version": 1
52 | }
53 | }
54 |
--------------------------------------------------------------------------------
/ios/FalWithReactNative/Images.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info": {
3 | "version": 1,
4 | "author": "xcode"
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/ios/FalWithReactNative/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleDisplayName
8 | FalWithReactNative
9 | CFBundleExecutable
10 | $(EXECUTABLE_NAME)
11 | CFBundleIdentifier
12 | $(PRODUCT_BUNDLE_IDENTIFIER)
13 | CFBundleInfoDictionaryVersion
14 | 6.0
15 | CFBundleName
16 | $(PRODUCT_NAME)
17 | CFBundlePackageType
18 | APPL
19 | CFBundleShortVersionString
20 | $(MARKETING_VERSION)
21 | CFBundleSignature
22 | ????
23 | CFBundleVersion
24 | $(CURRENT_PROJECT_VERSION)
25 | LSRequiresIPhoneOS
26 |
27 | NSAppTransportSecurity
28 |
29 | NSAllowsArbitraryLoads
30 |
31 | NSAllowsLocalNetworking
32 |
33 |
34 | NSLocationWhenInUseUsageDescription
35 |
36 | UILaunchStoryboardName
37 | LaunchScreen
38 | UIRequiredDeviceCapabilities
39 |
40 | armv7
41 |
42 | UISupportedInterfaceOrientations
43 |
44 | UIInterfaceOrientationPortrait
45 | UIInterfaceOrientationLandscapeLeft
46 | UIInterfaceOrientationLandscapeRight
47 |
48 | UIViewControllerBasedStatusBarAppearance
49 |
50 |
51 |
52 |
--------------------------------------------------------------------------------
/ios/FalWithReactNative/LaunchScreen.storyboard:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
24 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
--------------------------------------------------------------------------------
/ios/FalWithReactNative/main.m:
--------------------------------------------------------------------------------
1 | #import
2 |
3 | #import "AppDelegate.h"
4 |
5 | int main(int argc, char *argv[])
6 | {
7 | @autoreleasepool {
8 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/ios/FalWithReactNativeTests/FalWithReactNativeTests.m:
--------------------------------------------------------------------------------
1 | #import
2 | #import
3 |
4 | #import
5 | #import
6 |
7 | #define TIMEOUT_SECONDS 600
8 | #define TEXT_TO_LOOK_FOR @"Welcome to React"
9 |
10 | @interface FalWithReactNativeTests : XCTestCase
11 |
12 | @end
13 |
14 | @implementation FalWithReactNativeTests
15 |
16 | - (BOOL)findSubviewInView:(UIView *)view matching:(BOOL (^)(UIView *view))test
17 | {
18 | if (test(view)) {
19 | return YES;
20 | }
21 | for (UIView *subview in [view subviews]) {
22 | if ([self findSubviewInView:subview matching:test]) {
23 | return YES;
24 | }
25 | }
26 | return NO;
27 | }
28 |
29 | - (void)testRendersWelcomeScreen
30 | {
31 | UIViewController *vc = [[[RCTSharedApplication() delegate] window] rootViewController];
32 | NSDate *date = [NSDate dateWithTimeIntervalSinceNow:TIMEOUT_SECONDS];
33 | BOOL foundElement = NO;
34 |
35 | __block NSString *redboxError = nil;
36 | #ifdef DEBUG
37 | RCTSetLogFunction(
38 | ^(RCTLogLevel level, RCTLogSource source, NSString *fileName, NSNumber *lineNumber, NSString *message) {
39 | if (level >= RCTLogLevelError) {
40 | redboxError = message;
41 | }
42 | });
43 | #endif
44 |
45 | while ([date timeIntervalSinceNow] > 0 && !foundElement && !redboxError) {
46 | [[NSRunLoop mainRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]];
47 | [[NSRunLoop mainRunLoop] runMode:NSRunLoopCommonModes beforeDate:[NSDate dateWithTimeIntervalSinceNow:0.1]];
48 |
49 | foundElement = [self findSubviewInView:vc.view
50 | matching:^BOOL(UIView *view) {
51 | if ([view.accessibilityLabel isEqualToString:TEXT_TO_LOOK_FOR]) {
52 | return YES;
53 | }
54 | return NO;
55 | }];
56 | }
57 |
58 | #ifdef DEBUG
59 | RCTSetLogFunction(RCTDefaultLogFunction);
60 | #endif
61 |
62 | XCTAssertNil(redboxError, @"RedBox error: %@", redboxError);
63 | XCTAssertTrue(foundElement, @"Couldn't find element with text '%@' in %d seconds", TEXT_TO_LOOK_FOR, TIMEOUT_SECONDS);
64 | }
65 |
66 | @end
67 |
--------------------------------------------------------------------------------
/ios/FalWithReactNativeTests/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | $(PRODUCT_NAME)
15 | CFBundlePackageType
16 | BNDL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | 1
23 |
24 |
25 |
--------------------------------------------------------------------------------
/ios/Podfile:
--------------------------------------------------------------------------------
1 | # Resolve react_native_pods.rb with node to allow for hoisting
2 | require Pod::Executable.execute_command('node', ['-p',
3 | 'require.resolve(
4 | "react-native/scripts/react_native_pods.rb",
5 | {paths: [process.argv[1]]},
6 | )', __dir__]).strip
7 |
8 | platform :ios, min_ios_version_supported
9 | prepare_react_native_project!
10 |
11 | # If you are using a `react-native-flipper` your iOS build will fail when `NO_FLIPPER=1` is set.
12 | # because `react-native-flipper` depends on (FlipperKit,...) that will be excluded
13 | #
14 | # To fix this you can also exclude `react-native-flipper` using a `react-native.config.js`
15 | # ```js
16 | # module.exports = {
17 | # dependencies: {
18 | # ...(process.env.NO_FLIPPER ? { 'react-native-flipper': { platforms: { ios: null } } } : {}),
19 | # ```
20 | flipper_config = ENV['NO_FLIPPER'] == "1" ? FlipperConfiguration.disabled : FlipperConfiguration.enabled
21 |
22 | linkage = ENV['USE_FRAMEWORKS']
23 | if linkage != nil
24 | Pod::UI.puts "Configuring Pod with #{linkage}ally linked Frameworks".green
25 | use_frameworks! :linkage => linkage.to_sym
26 | end
27 |
28 | target 'FalWithReactNative' do
29 | config = use_native_modules!
30 |
31 | use_react_native!(
32 | :path => config[:reactNativePath],
33 | # Enables Flipper.
34 | #
35 | # Note that if you have use_frameworks! enabled, Flipper will not work and
36 | # you should disable the next line.
37 | :flipper_configuration => flipper_config,
38 | # An absolute path to your application root.
39 | :app_path => "#{Pod::Config.instance.installation_root}/.."
40 | )
41 |
42 | target 'FalWithReactNativeTests' do
43 | inherit! :complete
44 | # Pods for testing
45 | end
46 |
47 | post_install do |installer|
48 | # https://github.com/facebook/react-native/blob/main/packages/react-native/scripts/react_native_pods.rb#L197-L202
49 | react_native_post_install(
50 | installer,
51 | config[:reactNativePath],
52 | :mac_catalyst_enabled => false
53 | )
54 | end
55 | end
56 |
--------------------------------------------------------------------------------
/ios/Podfile.lock:
--------------------------------------------------------------------------------
1 | PODS:
2 | - boost (1.83.0)
3 | - CocoaAsyncSocket (7.6.5)
4 | - DoubleConversion (1.1.6)
5 | - FBLazyVector (0.73.0)
6 | - FBReactNativeSpec (0.73.0):
7 | - RCT-Folly (= 2022.05.16.00)
8 | - RCTRequired (= 0.73.0)
9 | - RCTTypeSafety (= 0.73.0)
10 | - React-Core (= 0.73.0)
11 | - React-jsi (= 0.73.0)
12 | - ReactCommon/turbomodule/core (= 0.73.0)
13 | - Flipper (0.201.0):
14 | - Flipper-Folly (~> 2.6)
15 | - Flipper-Boost-iOSX (1.76.0.1.11)
16 | - Flipper-DoubleConversion (3.2.0.1)
17 | - Flipper-Fmt (7.1.7)
18 | - Flipper-Folly (2.6.10):
19 | - Flipper-Boost-iOSX
20 | - Flipper-DoubleConversion
21 | - Flipper-Fmt (= 7.1.7)
22 | - Flipper-Glog
23 | - libevent (~> 2.1.12)
24 | - OpenSSL-Universal (= 1.1.1100)
25 | - Flipper-Glog (0.5.0.5)
26 | - Flipper-PeerTalk (0.0.4)
27 | - FlipperKit (0.201.0):
28 | - FlipperKit/Core (= 0.201.0)
29 | - FlipperKit/Core (0.201.0):
30 | - Flipper (~> 0.201.0)
31 | - FlipperKit/CppBridge
32 | - FlipperKit/FBCxxFollyDynamicConvert
33 | - FlipperKit/FBDefines
34 | - FlipperKit/FKPortForwarding
35 | - SocketRocket (~> 0.6.0)
36 | - FlipperKit/CppBridge (0.201.0):
37 | - Flipper (~> 0.201.0)
38 | - FlipperKit/FBCxxFollyDynamicConvert (0.201.0):
39 | - Flipper-Folly (~> 2.6)
40 | - FlipperKit/FBDefines (0.201.0)
41 | - FlipperKit/FKPortForwarding (0.201.0):
42 | - CocoaAsyncSocket (~> 7.6)
43 | - Flipper-PeerTalk (~> 0.0.4)
44 | - FlipperKit/FlipperKitHighlightOverlay (0.201.0)
45 | - FlipperKit/FlipperKitLayoutHelpers (0.201.0):
46 | - FlipperKit/Core
47 | - FlipperKit/FlipperKitHighlightOverlay
48 | - FlipperKit/FlipperKitLayoutTextSearchable
49 | - FlipperKit/FlipperKitLayoutIOSDescriptors (0.201.0):
50 | - FlipperKit/Core
51 | - FlipperKit/FlipperKitHighlightOverlay
52 | - FlipperKit/FlipperKitLayoutHelpers
53 | - FlipperKit/FlipperKitLayoutPlugin (0.201.0):
54 | - FlipperKit/Core
55 | - FlipperKit/FlipperKitHighlightOverlay
56 | - FlipperKit/FlipperKitLayoutHelpers
57 | - FlipperKit/FlipperKitLayoutIOSDescriptors
58 | - FlipperKit/FlipperKitLayoutTextSearchable
59 | - FlipperKit/FlipperKitLayoutTextSearchable (0.201.0)
60 | - FlipperKit/FlipperKitNetworkPlugin (0.201.0):
61 | - FlipperKit/Core
62 | - FlipperKit/FlipperKitReactPlugin (0.201.0):
63 | - FlipperKit/Core
64 | - FlipperKit/FlipperKitUserDefaultsPlugin (0.201.0):
65 | - FlipperKit/Core
66 | - FlipperKit/SKIOSNetworkPlugin (0.201.0):
67 | - FlipperKit/Core
68 | - FlipperKit/FlipperKitNetworkPlugin
69 | - fmt (6.2.1)
70 | - glog (0.3.5)
71 | - hermes-engine (0.73.0):
72 | - hermes-engine/Pre-built (= 0.73.0)
73 | - hermes-engine/Pre-built (0.73.0)
74 | - libevent (2.1.12)
75 | - OpenSSL-Universal (1.1.1100)
76 | - RCT-Folly (2022.05.16.00):
77 | - boost
78 | - DoubleConversion
79 | - fmt (~> 6.2.1)
80 | - glog
81 | - RCT-Folly/Default (= 2022.05.16.00)
82 | - RCT-Folly/Default (2022.05.16.00):
83 | - boost
84 | - DoubleConversion
85 | - fmt (~> 6.2.1)
86 | - glog
87 | - RCT-Folly/Fabric (2022.05.16.00):
88 | - boost
89 | - DoubleConversion
90 | - fmt (~> 6.2.1)
91 | - glog
92 | - RCT-Folly/Futures (2022.05.16.00):
93 | - boost
94 | - DoubleConversion
95 | - fmt (~> 6.2.1)
96 | - glog
97 | - libevent
98 | - RCTRequired (0.73.0)
99 | - RCTTypeSafety (0.73.0):
100 | - FBLazyVector (= 0.73.0)
101 | - RCTRequired (= 0.73.0)
102 | - React-Core (= 0.73.0)
103 | - React (0.73.0):
104 | - React-Core (= 0.73.0)
105 | - React-Core/DevSupport (= 0.73.0)
106 | - React-Core/RCTWebSocket (= 0.73.0)
107 | - React-RCTActionSheet (= 0.73.0)
108 | - React-RCTAnimation (= 0.73.0)
109 | - React-RCTBlob (= 0.73.0)
110 | - React-RCTImage (= 0.73.0)
111 | - React-RCTLinking (= 0.73.0)
112 | - React-RCTNetwork (= 0.73.0)
113 | - React-RCTSettings (= 0.73.0)
114 | - React-RCTText (= 0.73.0)
115 | - React-RCTVibration (= 0.73.0)
116 | - React-callinvoker (0.73.0)
117 | - React-Codegen (0.73.0):
118 | - DoubleConversion
119 | - FBReactNativeSpec
120 | - glog
121 | - hermes-engine
122 | - RCT-Folly
123 | - RCTRequired
124 | - RCTTypeSafety
125 | - React-Core
126 | - React-jsi
127 | - React-jsiexecutor
128 | - React-NativeModulesApple
129 | - React-rncore
130 | - ReactCommon/turbomodule/bridging
131 | - ReactCommon/turbomodule/core
132 | - React-Core (0.73.0):
133 | - glog
134 | - hermes-engine
135 | - RCT-Folly (= 2022.05.16.00)
136 | - React-Core/Default (= 0.73.0)
137 | - React-cxxreact
138 | - React-hermes
139 | - React-jsi
140 | - React-jsiexecutor
141 | - React-perflogger
142 | - React-runtimescheduler
143 | - React-utils
144 | - SocketRocket (= 0.6.1)
145 | - Yoga
146 | - React-Core/CoreModulesHeaders (0.73.0):
147 | - glog
148 | - hermes-engine
149 | - RCT-Folly (= 2022.05.16.00)
150 | - React-Core/Default
151 | - React-cxxreact
152 | - React-hermes
153 | - React-jsi
154 | - React-jsiexecutor
155 | - React-perflogger
156 | - React-runtimescheduler
157 | - React-utils
158 | - SocketRocket (= 0.6.1)
159 | - Yoga
160 | - React-Core/Default (0.73.0):
161 | - glog
162 | - hermes-engine
163 | - RCT-Folly (= 2022.05.16.00)
164 | - React-cxxreact
165 | - React-hermes
166 | - React-jsi
167 | - React-jsiexecutor
168 | - React-perflogger
169 | - React-runtimescheduler
170 | - React-utils
171 | - SocketRocket (= 0.6.1)
172 | - Yoga
173 | - React-Core/DevSupport (0.73.0):
174 | - glog
175 | - hermes-engine
176 | - RCT-Folly (= 2022.05.16.00)
177 | - React-Core/Default (= 0.73.0)
178 | - React-Core/RCTWebSocket (= 0.73.0)
179 | - React-cxxreact
180 | - React-hermes
181 | - React-jsi
182 | - React-jsiexecutor
183 | - React-jsinspector (= 0.73.0)
184 | - React-perflogger
185 | - React-runtimescheduler
186 | - React-utils
187 | - SocketRocket (= 0.6.1)
188 | - Yoga
189 | - React-Core/RCTActionSheetHeaders (0.73.0):
190 | - glog
191 | - hermes-engine
192 | - RCT-Folly (= 2022.05.16.00)
193 | - React-Core/Default
194 | - React-cxxreact
195 | - React-hermes
196 | - React-jsi
197 | - React-jsiexecutor
198 | - React-perflogger
199 | - React-runtimescheduler
200 | - React-utils
201 | - SocketRocket (= 0.6.1)
202 | - Yoga
203 | - React-Core/RCTAnimationHeaders (0.73.0):
204 | - glog
205 | - hermes-engine
206 | - RCT-Folly (= 2022.05.16.00)
207 | - React-Core/Default
208 | - React-cxxreact
209 | - React-hermes
210 | - React-jsi
211 | - React-jsiexecutor
212 | - React-perflogger
213 | - React-runtimescheduler
214 | - React-utils
215 | - SocketRocket (= 0.6.1)
216 | - Yoga
217 | - React-Core/RCTBlobHeaders (0.73.0):
218 | - glog
219 | - hermes-engine
220 | - RCT-Folly (= 2022.05.16.00)
221 | - React-Core/Default
222 | - React-cxxreact
223 | - React-hermes
224 | - React-jsi
225 | - React-jsiexecutor
226 | - React-perflogger
227 | - React-runtimescheduler
228 | - React-utils
229 | - SocketRocket (= 0.6.1)
230 | - Yoga
231 | - React-Core/RCTImageHeaders (0.73.0):
232 | - glog
233 | - hermes-engine
234 | - RCT-Folly (= 2022.05.16.00)
235 | - React-Core/Default
236 | - React-cxxreact
237 | - React-hermes
238 | - React-jsi
239 | - React-jsiexecutor
240 | - React-perflogger
241 | - React-runtimescheduler
242 | - React-utils
243 | - SocketRocket (= 0.6.1)
244 | - Yoga
245 | - React-Core/RCTLinkingHeaders (0.73.0):
246 | - glog
247 | - hermes-engine
248 | - RCT-Folly (= 2022.05.16.00)
249 | - React-Core/Default
250 | - React-cxxreact
251 | - React-hermes
252 | - React-jsi
253 | - React-jsiexecutor
254 | - React-perflogger
255 | - React-runtimescheduler
256 | - React-utils
257 | - SocketRocket (= 0.6.1)
258 | - Yoga
259 | - React-Core/RCTNetworkHeaders (0.73.0):
260 | - glog
261 | - hermes-engine
262 | - RCT-Folly (= 2022.05.16.00)
263 | - React-Core/Default
264 | - React-cxxreact
265 | - React-hermes
266 | - React-jsi
267 | - React-jsiexecutor
268 | - React-perflogger
269 | - React-runtimescheduler
270 | - React-utils
271 | - SocketRocket (= 0.6.1)
272 | - Yoga
273 | - React-Core/RCTSettingsHeaders (0.73.0):
274 | - glog
275 | - hermes-engine
276 | - RCT-Folly (= 2022.05.16.00)
277 | - React-Core/Default
278 | - React-cxxreact
279 | - React-hermes
280 | - React-jsi
281 | - React-jsiexecutor
282 | - React-perflogger
283 | - React-runtimescheduler
284 | - React-utils
285 | - SocketRocket (= 0.6.1)
286 | - Yoga
287 | - React-Core/RCTTextHeaders (0.73.0):
288 | - glog
289 | - hermes-engine
290 | - RCT-Folly (= 2022.05.16.00)
291 | - React-Core/Default
292 | - React-cxxreact
293 | - React-hermes
294 | - React-jsi
295 | - React-jsiexecutor
296 | - React-perflogger
297 | - React-runtimescheduler
298 | - React-utils
299 | - SocketRocket (= 0.6.1)
300 | - Yoga
301 | - React-Core/RCTVibrationHeaders (0.73.0):
302 | - glog
303 | - hermes-engine
304 | - RCT-Folly (= 2022.05.16.00)
305 | - React-Core/Default
306 | - React-cxxreact
307 | - React-hermes
308 | - React-jsi
309 | - React-jsiexecutor
310 | - React-perflogger
311 | - React-runtimescheduler
312 | - React-utils
313 | - SocketRocket (= 0.6.1)
314 | - Yoga
315 | - React-Core/RCTWebSocket (0.73.0):
316 | - glog
317 | - hermes-engine
318 | - RCT-Folly (= 2022.05.16.00)
319 | - React-Core/Default (= 0.73.0)
320 | - React-cxxreact
321 | - React-hermes
322 | - React-jsi
323 | - React-jsiexecutor
324 | - React-perflogger
325 | - React-runtimescheduler
326 | - React-utils
327 | - SocketRocket (= 0.6.1)
328 | - Yoga
329 | - React-CoreModules (0.73.0):
330 | - RCT-Folly (= 2022.05.16.00)
331 | - RCTTypeSafety (= 0.73.0)
332 | - React-Codegen
333 | - React-Core/CoreModulesHeaders (= 0.73.0)
334 | - React-jsi (= 0.73.0)
335 | - React-NativeModulesApple
336 | - React-RCTBlob
337 | - React-RCTImage (= 0.73.0)
338 | - ReactCommon
339 | - SocketRocket (= 0.6.1)
340 | - React-cxxreact (0.73.0):
341 | - boost (= 1.83.0)
342 | - DoubleConversion
343 | - fmt (~> 6.2.1)
344 | - glog
345 | - hermes-engine
346 | - RCT-Folly (= 2022.05.16.00)
347 | - React-callinvoker (= 0.73.0)
348 | - React-debug (= 0.73.0)
349 | - React-jsi (= 0.73.0)
350 | - React-jsinspector (= 0.73.0)
351 | - React-logger (= 0.73.0)
352 | - React-perflogger (= 0.73.0)
353 | - React-runtimeexecutor (= 0.73.0)
354 | - React-debug (0.73.0)
355 | - React-Fabric (0.73.0):
356 | - DoubleConversion
357 | - fmt (~> 6.2.1)
358 | - glog
359 | - hermes-engine
360 | - RCT-Folly/Fabric (= 2022.05.16.00)
361 | - RCTRequired
362 | - RCTTypeSafety
363 | - React-Core
364 | - React-cxxreact
365 | - React-debug
366 | - React-Fabric/animations (= 0.73.0)
367 | - React-Fabric/attributedstring (= 0.73.0)
368 | - React-Fabric/componentregistry (= 0.73.0)
369 | - React-Fabric/componentregistrynative (= 0.73.0)
370 | - React-Fabric/components (= 0.73.0)
371 | - React-Fabric/core (= 0.73.0)
372 | - React-Fabric/imagemanager (= 0.73.0)
373 | - React-Fabric/leakchecker (= 0.73.0)
374 | - React-Fabric/mounting (= 0.73.0)
375 | - React-Fabric/scheduler (= 0.73.0)
376 | - React-Fabric/telemetry (= 0.73.0)
377 | - React-Fabric/templateprocessor (= 0.73.0)
378 | - React-Fabric/textlayoutmanager (= 0.73.0)
379 | - React-Fabric/uimanager (= 0.73.0)
380 | - React-graphics
381 | - React-jsi
382 | - React-jsiexecutor
383 | - React-logger
384 | - React-rendererdebug
385 | - React-runtimescheduler
386 | - React-utils
387 | - ReactCommon/turbomodule/core
388 | - React-Fabric/animations (0.73.0):
389 | - DoubleConversion
390 | - fmt (~> 6.2.1)
391 | - glog
392 | - hermes-engine
393 | - RCT-Folly/Fabric (= 2022.05.16.00)
394 | - RCTRequired
395 | - RCTTypeSafety
396 | - React-Core
397 | - React-cxxreact
398 | - React-debug
399 | - React-graphics
400 | - React-jsi
401 | - React-jsiexecutor
402 | - React-logger
403 | - React-rendererdebug
404 | - React-runtimescheduler
405 | - React-utils
406 | - ReactCommon/turbomodule/core
407 | - React-Fabric/attributedstring (0.73.0):
408 | - DoubleConversion
409 | - fmt (~> 6.2.1)
410 | - glog
411 | - hermes-engine
412 | - RCT-Folly/Fabric (= 2022.05.16.00)
413 | - RCTRequired
414 | - RCTTypeSafety
415 | - React-Core
416 | - React-cxxreact
417 | - React-debug
418 | - React-graphics
419 | - React-jsi
420 | - React-jsiexecutor
421 | - React-logger
422 | - React-rendererdebug
423 | - React-runtimescheduler
424 | - React-utils
425 | - ReactCommon/turbomodule/core
426 | - React-Fabric/componentregistry (0.73.0):
427 | - DoubleConversion
428 | - fmt (~> 6.2.1)
429 | - glog
430 | - hermes-engine
431 | - RCT-Folly/Fabric (= 2022.05.16.00)
432 | - RCTRequired
433 | - RCTTypeSafety
434 | - React-Core
435 | - React-cxxreact
436 | - React-debug
437 | - React-graphics
438 | - React-jsi
439 | - React-jsiexecutor
440 | - React-logger
441 | - React-rendererdebug
442 | - React-runtimescheduler
443 | - React-utils
444 | - ReactCommon/turbomodule/core
445 | - React-Fabric/componentregistrynative (0.73.0):
446 | - DoubleConversion
447 | - fmt (~> 6.2.1)
448 | - glog
449 | - hermes-engine
450 | - RCT-Folly/Fabric (= 2022.05.16.00)
451 | - RCTRequired
452 | - RCTTypeSafety
453 | - React-Core
454 | - React-cxxreact
455 | - React-debug
456 | - React-graphics
457 | - React-jsi
458 | - React-jsiexecutor
459 | - React-logger
460 | - React-rendererdebug
461 | - React-runtimescheduler
462 | - React-utils
463 | - ReactCommon/turbomodule/core
464 | - React-Fabric/components (0.73.0):
465 | - DoubleConversion
466 | - fmt (~> 6.2.1)
467 | - glog
468 | - hermes-engine
469 | - RCT-Folly/Fabric (= 2022.05.16.00)
470 | - RCTRequired
471 | - RCTTypeSafety
472 | - React-Core
473 | - React-cxxreact
474 | - React-debug
475 | - React-Fabric/components/inputaccessory (= 0.73.0)
476 | - React-Fabric/components/legacyviewmanagerinterop (= 0.73.0)
477 | - React-Fabric/components/modal (= 0.73.0)
478 | - React-Fabric/components/rncore (= 0.73.0)
479 | - React-Fabric/components/root (= 0.73.0)
480 | - React-Fabric/components/safeareaview (= 0.73.0)
481 | - React-Fabric/components/scrollview (= 0.73.0)
482 | - React-Fabric/components/text (= 0.73.0)
483 | - React-Fabric/components/textinput (= 0.73.0)
484 | - React-Fabric/components/unimplementedview (= 0.73.0)
485 | - React-Fabric/components/view (= 0.73.0)
486 | - React-graphics
487 | - React-jsi
488 | - React-jsiexecutor
489 | - React-logger
490 | - React-rendererdebug
491 | - React-runtimescheduler
492 | - React-utils
493 | - ReactCommon/turbomodule/core
494 | - React-Fabric/components/inputaccessory (0.73.0):
495 | - DoubleConversion
496 | - fmt (~> 6.2.1)
497 | - glog
498 | - hermes-engine
499 | - RCT-Folly/Fabric (= 2022.05.16.00)
500 | - RCTRequired
501 | - RCTTypeSafety
502 | - React-Core
503 | - React-cxxreact
504 | - React-debug
505 | - React-graphics
506 | - React-jsi
507 | - React-jsiexecutor
508 | - React-logger
509 | - React-rendererdebug
510 | - React-runtimescheduler
511 | - React-utils
512 | - ReactCommon/turbomodule/core
513 | - React-Fabric/components/legacyviewmanagerinterop (0.73.0):
514 | - DoubleConversion
515 | - fmt (~> 6.2.1)
516 | - glog
517 | - hermes-engine
518 | - RCT-Folly/Fabric (= 2022.05.16.00)
519 | - RCTRequired
520 | - RCTTypeSafety
521 | - React-Core
522 | - React-cxxreact
523 | - React-debug
524 | - React-graphics
525 | - React-jsi
526 | - React-jsiexecutor
527 | - React-logger
528 | - React-rendererdebug
529 | - React-runtimescheduler
530 | - React-utils
531 | - ReactCommon/turbomodule/core
532 | - React-Fabric/components/modal (0.73.0):
533 | - DoubleConversion
534 | - fmt (~> 6.2.1)
535 | - glog
536 | - hermes-engine
537 | - RCT-Folly/Fabric (= 2022.05.16.00)
538 | - RCTRequired
539 | - RCTTypeSafety
540 | - React-Core
541 | - React-cxxreact
542 | - React-debug
543 | - React-graphics
544 | - React-jsi
545 | - React-jsiexecutor
546 | - React-logger
547 | - React-rendererdebug
548 | - React-runtimescheduler
549 | - React-utils
550 | - ReactCommon/turbomodule/core
551 | - React-Fabric/components/rncore (0.73.0):
552 | - DoubleConversion
553 | - fmt (~> 6.2.1)
554 | - glog
555 | - hermes-engine
556 | - RCT-Folly/Fabric (= 2022.05.16.00)
557 | - RCTRequired
558 | - RCTTypeSafety
559 | - React-Core
560 | - React-cxxreact
561 | - React-debug
562 | - React-graphics
563 | - React-jsi
564 | - React-jsiexecutor
565 | - React-logger
566 | - React-rendererdebug
567 | - React-runtimescheduler
568 | - React-utils
569 | - ReactCommon/turbomodule/core
570 | - React-Fabric/components/root (0.73.0):
571 | - DoubleConversion
572 | - fmt (~> 6.2.1)
573 | - glog
574 | - hermes-engine
575 | - RCT-Folly/Fabric (= 2022.05.16.00)
576 | - RCTRequired
577 | - RCTTypeSafety
578 | - React-Core
579 | - React-cxxreact
580 | - React-debug
581 | - React-graphics
582 | - React-jsi
583 | - React-jsiexecutor
584 | - React-logger
585 | - React-rendererdebug
586 | - React-runtimescheduler
587 | - React-utils
588 | - ReactCommon/turbomodule/core
589 | - React-Fabric/components/safeareaview (0.73.0):
590 | - DoubleConversion
591 | - fmt (~> 6.2.1)
592 | - glog
593 | - hermes-engine
594 | - RCT-Folly/Fabric (= 2022.05.16.00)
595 | - RCTRequired
596 | - RCTTypeSafety
597 | - React-Core
598 | - React-cxxreact
599 | - React-debug
600 | - React-graphics
601 | - React-jsi
602 | - React-jsiexecutor
603 | - React-logger
604 | - React-rendererdebug
605 | - React-runtimescheduler
606 | - React-utils
607 | - ReactCommon/turbomodule/core
608 | - React-Fabric/components/scrollview (0.73.0):
609 | - DoubleConversion
610 | - fmt (~> 6.2.1)
611 | - glog
612 | - hermes-engine
613 | - RCT-Folly/Fabric (= 2022.05.16.00)
614 | - RCTRequired
615 | - RCTTypeSafety
616 | - React-Core
617 | - React-cxxreact
618 | - React-debug
619 | - React-graphics
620 | - React-jsi
621 | - React-jsiexecutor
622 | - React-logger
623 | - React-rendererdebug
624 | - React-runtimescheduler
625 | - React-utils
626 | - ReactCommon/turbomodule/core
627 | - React-Fabric/components/text (0.73.0):
628 | - DoubleConversion
629 | - fmt (~> 6.2.1)
630 | - glog
631 | - hermes-engine
632 | - RCT-Folly/Fabric (= 2022.05.16.00)
633 | - RCTRequired
634 | - RCTTypeSafety
635 | - React-Core
636 | - React-cxxreact
637 | - React-debug
638 | - React-graphics
639 | - React-jsi
640 | - React-jsiexecutor
641 | - React-logger
642 | - React-rendererdebug
643 | - React-runtimescheduler
644 | - React-utils
645 | - ReactCommon/turbomodule/core
646 | - React-Fabric/components/textinput (0.73.0):
647 | - DoubleConversion
648 | - fmt (~> 6.2.1)
649 | - glog
650 | - hermes-engine
651 | - RCT-Folly/Fabric (= 2022.05.16.00)
652 | - RCTRequired
653 | - RCTTypeSafety
654 | - React-Core
655 | - React-cxxreact
656 | - React-debug
657 | - React-graphics
658 | - React-jsi
659 | - React-jsiexecutor
660 | - React-logger
661 | - React-rendererdebug
662 | - React-runtimescheduler
663 | - React-utils
664 | - ReactCommon/turbomodule/core
665 | - React-Fabric/components/unimplementedview (0.73.0):
666 | - DoubleConversion
667 | - fmt (~> 6.2.1)
668 | - glog
669 | - hermes-engine
670 | - RCT-Folly/Fabric (= 2022.05.16.00)
671 | - RCTRequired
672 | - RCTTypeSafety
673 | - React-Core
674 | - React-cxxreact
675 | - React-debug
676 | - React-graphics
677 | - React-jsi
678 | - React-jsiexecutor
679 | - React-logger
680 | - React-rendererdebug
681 | - React-runtimescheduler
682 | - React-utils
683 | - ReactCommon/turbomodule/core
684 | - React-Fabric/components/view (0.73.0):
685 | - DoubleConversion
686 | - fmt (~> 6.2.1)
687 | - glog
688 | - hermes-engine
689 | - RCT-Folly/Fabric (= 2022.05.16.00)
690 | - RCTRequired
691 | - RCTTypeSafety
692 | - React-Core
693 | - React-cxxreact
694 | - React-debug
695 | - React-graphics
696 | - React-jsi
697 | - React-jsiexecutor
698 | - React-logger
699 | - React-rendererdebug
700 | - React-runtimescheduler
701 | - React-utils
702 | - ReactCommon/turbomodule/core
703 | - Yoga
704 | - React-Fabric/core (0.73.0):
705 | - DoubleConversion
706 | - fmt (~> 6.2.1)
707 | - glog
708 | - hermes-engine
709 | - RCT-Folly/Fabric (= 2022.05.16.00)
710 | - RCTRequired
711 | - RCTTypeSafety
712 | - React-Core
713 | - React-cxxreact
714 | - React-debug
715 | - React-graphics
716 | - React-jsi
717 | - React-jsiexecutor
718 | - React-logger
719 | - React-rendererdebug
720 | - React-runtimescheduler
721 | - React-utils
722 | - ReactCommon/turbomodule/core
723 | - React-Fabric/imagemanager (0.73.0):
724 | - DoubleConversion
725 | - fmt (~> 6.2.1)
726 | - glog
727 | - hermes-engine
728 | - RCT-Folly/Fabric (= 2022.05.16.00)
729 | - RCTRequired
730 | - RCTTypeSafety
731 | - React-Core
732 | - React-cxxreact
733 | - React-debug
734 | - React-graphics
735 | - React-jsi
736 | - React-jsiexecutor
737 | - React-logger
738 | - React-rendererdebug
739 | - React-runtimescheduler
740 | - React-utils
741 | - ReactCommon/turbomodule/core
742 | - React-Fabric/leakchecker (0.73.0):
743 | - DoubleConversion
744 | - fmt (~> 6.2.1)
745 | - glog
746 | - hermes-engine
747 | - RCT-Folly/Fabric (= 2022.05.16.00)
748 | - RCTRequired
749 | - RCTTypeSafety
750 | - React-Core
751 | - React-cxxreact
752 | - React-debug
753 | - React-graphics
754 | - React-jsi
755 | - React-jsiexecutor
756 | - React-logger
757 | - React-rendererdebug
758 | - React-runtimescheduler
759 | - React-utils
760 | - ReactCommon/turbomodule/core
761 | - React-Fabric/mounting (0.73.0):
762 | - DoubleConversion
763 | - fmt (~> 6.2.1)
764 | - glog
765 | - hermes-engine
766 | - RCT-Folly/Fabric (= 2022.05.16.00)
767 | - RCTRequired
768 | - RCTTypeSafety
769 | - React-Core
770 | - React-cxxreact
771 | - React-debug
772 | - React-graphics
773 | - React-jsi
774 | - React-jsiexecutor
775 | - React-logger
776 | - React-rendererdebug
777 | - React-runtimescheduler
778 | - React-utils
779 | - ReactCommon/turbomodule/core
780 | - React-Fabric/scheduler (0.73.0):
781 | - DoubleConversion
782 | - fmt (~> 6.2.1)
783 | - glog
784 | - hermes-engine
785 | - RCT-Folly/Fabric (= 2022.05.16.00)
786 | - RCTRequired
787 | - RCTTypeSafety
788 | - React-Core
789 | - React-cxxreact
790 | - React-debug
791 | - React-graphics
792 | - React-jsi
793 | - React-jsiexecutor
794 | - React-logger
795 | - React-rendererdebug
796 | - React-runtimescheduler
797 | - React-utils
798 | - ReactCommon/turbomodule/core
799 | - React-Fabric/telemetry (0.73.0):
800 | - DoubleConversion
801 | - fmt (~> 6.2.1)
802 | - glog
803 | - hermes-engine
804 | - RCT-Folly/Fabric (= 2022.05.16.00)
805 | - RCTRequired
806 | - RCTTypeSafety
807 | - React-Core
808 | - React-cxxreact
809 | - React-debug
810 | - React-graphics
811 | - React-jsi
812 | - React-jsiexecutor
813 | - React-logger
814 | - React-rendererdebug
815 | - React-runtimescheduler
816 | - React-utils
817 | - ReactCommon/turbomodule/core
818 | - React-Fabric/templateprocessor (0.73.0):
819 | - DoubleConversion
820 | - fmt (~> 6.2.1)
821 | - glog
822 | - hermes-engine
823 | - RCT-Folly/Fabric (= 2022.05.16.00)
824 | - RCTRequired
825 | - RCTTypeSafety
826 | - React-Core
827 | - React-cxxreact
828 | - React-debug
829 | - React-graphics
830 | - React-jsi
831 | - React-jsiexecutor
832 | - React-logger
833 | - React-rendererdebug
834 | - React-runtimescheduler
835 | - React-utils
836 | - ReactCommon/turbomodule/core
837 | - React-Fabric/textlayoutmanager (0.73.0):
838 | - DoubleConversion
839 | - fmt (~> 6.2.1)
840 | - glog
841 | - hermes-engine
842 | - RCT-Folly/Fabric (= 2022.05.16.00)
843 | - RCTRequired
844 | - RCTTypeSafety
845 | - React-Core
846 | - React-cxxreact
847 | - React-debug
848 | - React-Fabric/uimanager
849 | - React-graphics
850 | - React-jsi
851 | - React-jsiexecutor
852 | - React-logger
853 | - React-rendererdebug
854 | - React-runtimescheduler
855 | - React-utils
856 | - ReactCommon/turbomodule/core
857 | - React-Fabric/uimanager (0.73.0):
858 | - DoubleConversion
859 | - fmt (~> 6.2.1)
860 | - glog
861 | - hermes-engine
862 | - RCT-Folly/Fabric (= 2022.05.16.00)
863 | - RCTRequired
864 | - RCTTypeSafety
865 | - React-Core
866 | - React-cxxreact
867 | - React-debug
868 | - React-graphics
869 | - React-jsi
870 | - React-jsiexecutor
871 | - React-logger
872 | - React-rendererdebug
873 | - React-runtimescheduler
874 | - React-utils
875 | - ReactCommon/turbomodule/core
876 | - React-FabricImage (0.73.0):
877 | - DoubleConversion
878 | - fmt (~> 6.2.1)
879 | - glog
880 | - hermes-engine
881 | - RCT-Folly/Fabric (= 2022.05.16.00)
882 | - RCTRequired (= 0.73.0)
883 | - RCTTypeSafety (= 0.73.0)
884 | - React-Fabric
885 | - React-graphics
886 | - React-ImageManager
887 | - React-jsi
888 | - React-jsiexecutor (= 0.73.0)
889 | - React-logger
890 | - React-rendererdebug
891 | - React-utils
892 | - ReactCommon
893 | - Yoga
894 | - React-graphics (0.73.0):
895 | - glog
896 | - RCT-Folly/Fabric (= 2022.05.16.00)
897 | - React-Core/Default (= 0.73.0)
898 | - React-utils
899 | - React-hermes (0.73.0):
900 | - DoubleConversion
901 | - fmt (~> 6.2.1)
902 | - glog
903 | - hermes-engine
904 | - RCT-Folly (= 2022.05.16.00)
905 | - RCT-Folly/Futures (= 2022.05.16.00)
906 | - React-cxxreact (= 0.73.0)
907 | - React-jsi
908 | - React-jsiexecutor (= 0.73.0)
909 | - React-jsinspector (= 0.73.0)
910 | - React-perflogger (= 0.73.0)
911 | - React-ImageManager (0.73.0):
912 | - glog
913 | - RCT-Folly/Fabric
914 | - React-Core/Default
915 | - React-debug
916 | - React-Fabric
917 | - React-graphics
918 | - React-rendererdebug
919 | - React-utils
920 | - React-jserrorhandler (0.73.0):
921 | - RCT-Folly/Fabric (= 2022.05.16.00)
922 | - React-debug
923 | - React-jsi
924 | - React-Mapbuffer
925 | - React-jsi (0.73.0):
926 | - boost (= 1.83.0)
927 | - DoubleConversion
928 | - fmt (~> 6.2.1)
929 | - glog
930 | - hermes-engine
931 | - RCT-Folly (= 2022.05.16.00)
932 | - React-jsiexecutor (0.73.0):
933 | - DoubleConversion
934 | - fmt (~> 6.2.1)
935 | - glog
936 | - hermes-engine
937 | - RCT-Folly (= 2022.05.16.00)
938 | - React-cxxreact (= 0.73.0)
939 | - React-jsi (= 0.73.0)
940 | - React-perflogger (= 0.73.0)
941 | - React-jsinspector (0.73.0)
942 | - React-logger (0.73.0):
943 | - glog
944 | - React-Mapbuffer (0.73.0):
945 | - glog
946 | - React-debug
947 | - react-native-safe-area-context (4.8.1):
948 | - React-Core
949 | - react-native-skia (0.1.230):
950 | - glog
951 | - RCT-Folly (= 2022.05.16.00)
952 | - React
953 | - React-callinvoker
954 | - React-Core
955 | - React-nativeconfig (0.73.0)
956 | - React-NativeModulesApple (0.73.0):
957 | - glog
958 | - hermes-engine
959 | - React-callinvoker
960 | - React-Core
961 | - React-cxxreact
962 | - React-jsi
963 | - React-runtimeexecutor
964 | - ReactCommon/turbomodule/bridging
965 | - ReactCommon/turbomodule/core
966 | - React-perflogger (0.73.0)
967 | - React-RCTActionSheet (0.73.0):
968 | - React-Core/RCTActionSheetHeaders (= 0.73.0)
969 | - React-RCTAnimation (0.73.0):
970 | - RCT-Folly (= 2022.05.16.00)
971 | - RCTTypeSafety
972 | - React-Codegen
973 | - React-Core/RCTAnimationHeaders
974 | - React-jsi
975 | - React-NativeModulesApple
976 | - ReactCommon
977 | - React-RCTAppDelegate (0.73.0):
978 | - RCT-Folly
979 | - RCTRequired
980 | - RCTTypeSafety
981 | - React-Core
982 | - React-CoreModules
983 | - React-hermes
984 | - React-nativeconfig
985 | - React-NativeModulesApple
986 | - React-RCTFabric
987 | - React-RCTImage
988 | - React-RCTNetwork
989 | - React-runtimescheduler
990 | - ReactCommon
991 | - React-RCTBlob (0.73.0):
992 | - hermes-engine
993 | - RCT-Folly (= 2022.05.16.00)
994 | - React-Codegen
995 | - React-Core/RCTBlobHeaders
996 | - React-Core/RCTWebSocket
997 | - React-jsi
998 | - React-NativeModulesApple
999 | - React-RCTNetwork
1000 | - ReactCommon
1001 | - React-RCTFabric (0.73.0):
1002 | - glog
1003 | - hermes-engine
1004 | - RCT-Folly/Fabric (= 2022.05.16.00)
1005 | - React-Core
1006 | - React-debug
1007 | - React-Fabric
1008 | - React-FabricImage
1009 | - React-graphics
1010 | - React-ImageManager
1011 | - React-jsi
1012 | - React-nativeconfig
1013 | - React-RCTImage
1014 | - React-RCTText
1015 | - React-rendererdebug
1016 | - React-runtimescheduler
1017 | - React-utils
1018 | - Yoga
1019 | - React-RCTImage (0.73.0):
1020 | - RCT-Folly (= 2022.05.16.00)
1021 | - RCTTypeSafety
1022 | - React-Codegen
1023 | - React-Core/RCTImageHeaders
1024 | - React-jsi
1025 | - React-NativeModulesApple
1026 | - React-RCTNetwork
1027 | - ReactCommon
1028 | - React-RCTLinking (0.73.0):
1029 | - React-Codegen
1030 | - React-Core/RCTLinkingHeaders (= 0.73.0)
1031 | - React-jsi (= 0.73.0)
1032 | - React-NativeModulesApple
1033 | - ReactCommon
1034 | - ReactCommon/turbomodule/core (= 0.73.0)
1035 | - React-RCTNetwork (0.73.0):
1036 | - RCT-Folly (= 2022.05.16.00)
1037 | - RCTTypeSafety
1038 | - React-Codegen
1039 | - React-Core/RCTNetworkHeaders
1040 | - React-jsi
1041 | - React-NativeModulesApple
1042 | - ReactCommon
1043 | - React-RCTSettings (0.73.0):
1044 | - RCT-Folly (= 2022.05.16.00)
1045 | - RCTTypeSafety
1046 | - React-Codegen
1047 | - React-Core/RCTSettingsHeaders
1048 | - React-jsi
1049 | - React-NativeModulesApple
1050 | - ReactCommon
1051 | - React-RCTText (0.73.0):
1052 | - React-Core/RCTTextHeaders (= 0.73.0)
1053 | - Yoga
1054 | - React-RCTVibration (0.73.0):
1055 | - RCT-Folly (= 2022.05.16.00)
1056 | - React-Codegen
1057 | - React-Core/RCTVibrationHeaders
1058 | - React-jsi
1059 | - React-NativeModulesApple
1060 | - ReactCommon
1061 | - React-rendererdebug (0.73.0):
1062 | - DoubleConversion
1063 | - fmt (~> 6.2.1)
1064 | - RCT-Folly (= 2022.05.16.00)
1065 | - React-debug
1066 | - React-rncore (0.73.0)
1067 | - React-runtimeexecutor (0.73.0):
1068 | - React-jsi (= 0.73.0)
1069 | - React-runtimescheduler (0.73.0):
1070 | - glog
1071 | - hermes-engine
1072 | - RCT-Folly (= 2022.05.16.00)
1073 | - React-callinvoker
1074 | - React-cxxreact
1075 | - React-debug
1076 | - React-jsi
1077 | - React-rendererdebug
1078 | - React-runtimeexecutor
1079 | - React-utils
1080 | - React-utils (0.73.0):
1081 | - glog
1082 | - RCT-Folly (= 2022.05.16.00)
1083 | - React-debug
1084 | - ReactCommon (0.73.0):
1085 | - React-logger (= 0.73.0)
1086 | - ReactCommon/turbomodule (= 0.73.0)
1087 | - ReactCommon/turbomodule (0.73.0):
1088 | - DoubleConversion
1089 | - fmt (~> 6.2.1)
1090 | - glog
1091 | - hermes-engine
1092 | - RCT-Folly (= 2022.05.16.00)
1093 | - React-callinvoker (= 0.73.0)
1094 | - React-cxxreact (= 0.73.0)
1095 | - React-jsi (= 0.73.0)
1096 | - React-logger (= 0.73.0)
1097 | - React-perflogger (= 0.73.0)
1098 | - ReactCommon/turbomodule/bridging (= 0.73.0)
1099 | - ReactCommon/turbomodule/core (= 0.73.0)
1100 | - ReactCommon/turbomodule/bridging (0.73.0):
1101 | - DoubleConversion
1102 | - fmt (~> 6.2.1)
1103 | - glog
1104 | - hermes-engine
1105 | - RCT-Folly (= 2022.05.16.00)
1106 | - React-callinvoker (= 0.73.0)
1107 | - React-cxxreact (= 0.73.0)
1108 | - React-jsi (= 0.73.0)
1109 | - React-logger (= 0.73.0)
1110 | - React-perflogger (= 0.73.0)
1111 | - ReactCommon/turbomodule/core (0.73.0):
1112 | - DoubleConversion
1113 | - fmt (~> 6.2.1)
1114 | - glog
1115 | - hermes-engine
1116 | - RCT-Folly (= 2022.05.16.00)
1117 | - React-callinvoker (= 0.73.0)
1118 | - React-cxxreact (= 0.73.0)
1119 | - React-jsi (= 0.73.0)
1120 | - React-logger (= 0.73.0)
1121 | - React-perflogger (= 0.73.0)
1122 | - RNGestureHandler (2.14.0):
1123 | - glog
1124 | - RCT-Folly (= 2022.05.16.00)
1125 | - React-Core
1126 | - RNReanimated (3.6.1):
1127 | - glog
1128 | - RCT-Folly (= 2022.05.16.00)
1129 | - React-Core
1130 | - ReactCommon/turbomodule/core
1131 | - RNScreens (3.29.0):
1132 | - glog
1133 | - RCT-Folly (= 2022.05.16.00)
1134 | - React-Core
1135 | - RNSVG (9.13.6):
1136 | - React
1137 | - RNVectorIcons (10.0.3):
1138 | - glog
1139 | - RCT-Folly (= 2022.05.16.00)
1140 | - React-Core
1141 | - SocketRocket (0.6.1)
1142 | - Yoga (1.14.0)
1143 |
1144 | DEPENDENCIES:
1145 | - boost (from `../node_modules/react-native/third-party-podspecs/boost.podspec`)
1146 | - DoubleConversion (from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`)
1147 | - FBLazyVector (from `../node_modules/react-native/Libraries/FBLazyVector`)
1148 | - FBReactNativeSpec (from `../node_modules/react-native/React/FBReactNativeSpec`)
1149 | - Flipper (= 0.201.0)
1150 | - Flipper-Boost-iOSX (= 1.76.0.1.11)
1151 | - Flipper-DoubleConversion (= 3.2.0.1)
1152 | - Flipper-Fmt (= 7.1.7)
1153 | - Flipper-Folly (= 2.6.10)
1154 | - Flipper-Glog (= 0.5.0.5)
1155 | - Flipper-PeerTalk (= 0.0.4)
1156 | - FlipperKit (= 0.201.0)
1157 | - FlipperKit/Core (= 0.201.0)
1158 | - FlipperKit/CppBridge (= 0.201.0)
1159 | - FlipperKit/FBCxxFollyDynamicConvert (= 0.201.0)
1160 | - FlipperKit/FBDefines (= 0.201.0)
1161 | - FlipperKit/FKPortForwarding (= 0.201.0)
1162 | - FlipperKit/FlipperKitHighlightOverlay (= 0.201.0)
1163 | - FlipperKit/FlipperKitLayoutPlugin (= 0.201.0)
1164 | - FlipperKit/FlipperKitLayoutTextSearchable (= 0.201.0)
1165 | - FlipperKit/FlipperKitNetworkPlugin (= 0.201.0)
1166 | - FlipperKit/FlipperKitReactPlugin (= 0.201.0)
1167 | - FlipperKit/FlipperKitUserDefaultsPlugin (= 0.201.0)
1168 | - FlipperKit/SKIOSNetworkPlugin (= 0.201.0)
1169 | - glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`)
1170 | - hermes-engine (from `../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec`)
1171 | - libevent (~> 2.1.12)
1172 | - OpenSSL-Universal (= 1.1.1100)
1173 | - RCT-Folly (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`)
1174 | - RCT-Folly/Fabric (from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`)
1175 | - RCTRequired (from `../node_modules/react-native/Libraries/RCTRequired`)
1176 | - RCTTypeSafety (from `../node_modules/react-native/Libraries/TypeSafety`)
1177 | - React (from `../node_modules/react-native/`)
1178 | - React-callinvoker (from `../node_modules/react-native/ReactCommon/callinvoker`)
1179 | - React-Codegen (from `build/generated/ios`)
1180 | - React-Core (from `../node_modules/react-native/`)
1181 | - React-Core/DevSupport (from `../node_modules/react-native/`)
1182 | - React-Core/RCTWebSocket (from `../node_modules/react-native/`)
1183 | - React-CoreModules (from `../node_modules/react-native/React/CoreModules`)
1184 | - React-cxxreact (from `../node_modules/react-native/ReactCommon/cxxreact`)
1185 | - React-debug (from `../node_modules/react-native/ReactCommon/react/debug`)
1186 | - React-Fabric (from `../node_modules/react-native/ReactCommon`)
1187 | - React-FabricImage (from `../node_modules/react-native/ReactCommon`)
1188 | - React-graphics (from `../node_modules/react-native/ReactCommon/react/renderer/graphics`)
1189 | - React-hermes (from `../node_modules/react-native/ReactCommon/hermes`)
1190 | - React-ImageManager (from `../node_modules/react-native/ReactCommon/react/renderer/imagemanager/platform/ios`)
1191 | - React-jserrorhandler (from `../node_modules/react-native/ReactCommon/jserrorhandler`)
1192 | - React-jsi (from `../node_modules/react-native/ReactCommon/jsi`)
1193 | - React-jsiexecutor (from `../node_modules/react-native/ReactCommon/jsiexecutor`)
1194 | - React-jsinspector (from `../node_modules/react-native/ReactCommon/jsinspector-modern`)
1195 | - React-logger (from `../node_modules/react-native/ReactCommon/logger`)
1196 | - React-Mapbuffer (from `../node_modules/react-native/ReactCommon`)
1197 | - react-native-safe-area-context (from `../node_modules/react-native-safe-area-context`)
1198 | - "react-native-skia (from `../node_modules/@shopify/react-native-skia`)"
1199 | - React-nativeconfig (from `../node_modules/react-native/ReactCommon`)
1200 | - React-NativeModulesApple (from `../node_modules/react-native/ReactCommon/react/nativemodule/core/platform/ios`)
1201 | - React-perflogger (from `../node_modules/react-native/ReactCommon/reactperflogger`)
1202 | - React-RCTActionSheet (from `../node_modules/react-native/Libraries/ActionSheetIOS`)
1203 | - React-RCTAnimation (from `../node_modules/react-native/Libraries/NativeAnimation`)
1204 | - React-RCTAppDelegate (from `../node_modules/react-native/Libraries/AppDelegate`)
1205 | - React-RCTBlob (from `../node_modules/react-native/Libraries/Blob`)
1206 | - React-RCTFabric (from `../node_modules/react-native/React`)
1207 | - React-RCTImage (from `../node_modules/react-native/Libraries/Image`)
1208 | - React-RCTLinking (from `../node_modules/react-native/Libraries/LinkingIOS`)
1209 | - React-RCTNetwork (from `../node_modules/react-native/Libraries/Network`)
1210 | - React-RCTSettings (from `../node_modules/react-native/Libraries/Settings`)
1211 | - React-RCTText (from `../node_modules/react-native/Libraries/Text`)
1212 | - React-RCTVibration (from `../node_modules/react-native/Libraries/Vibration`)
1213 | - React-rendererdebug (from `../node_modules/react-native/ReactCommon/react/renderer/debug`)
1214 | - React-rncore (from `../node_modules/react-native/ReactCommon`)
1215 | - React-runtimeexecutor (from `../node_modules/react-native/ReactCommon/runtimeexecutor`)
1216 | - React-runtimescheduler (from `../node_modules/react-native/ReactCommon/react/renderer/runtimescheduler`)
1217 | - React-utils (from `../node_modules/react-native/ReactCommon/react/utils`)
1218 | - ReactCommon/turbomodule/core (from `../node_modules/react-native/ReactCommon`)
1219 | - RNGestureHandler (from `../node_modules/react-native-gesture-handler`)
1220 | - RNReanimated (from `../node_modules/react-native-reanimated`)
1221 | - RNScreens (from `../node_modules/react-native-screens`)
1222 | - RNSVG (from `../node_modules/react-native-svg`)
1223 | - RNVectorIcons (from `../node_modules/react-native-vector-icons`)
1224 | - Yoga (from `../node_modules/react-native/ReactCommon/yoga`)
1225 |
1226 | SPEC REPOS:
1227 | trunk:
1228 | - CocoaAsyncSocket
1229 | - Flipper
1230 | - Flipper-Boost-iOSX
1231 | - Flipper-DoubleConversion
1232 | - Flipper-Fmt
1233 | - Flipper-Folly
1234 | - Flipper-Glog
1235 | - Flipper-PeerTalk
1236 | - FlipperKit
1237 | - fmt
1238 | - libevent
1239 | - OpenSSL-Universal
1240 | - SocketRocket
1241 |
1242 | EXTERNAL SOURCES:
1243 | boost:
1244 | :podspec: "../node_modules/react-native/third-party-podspecs/boost.podspec"
1245 | DoubleConversion:
1246 | :podspec: "../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec"
1247 | FBLazyVector:
1248 | :path: "../node_modules/react-native/Libraries/FBLazyVector"
1249 | FBReactNativeSpec:
1250 | :path: "../node_modules/react-native/React/FBReactNativeSpec"
1251 | glog:
1252 | :podspec: "../node_modules/react-native/third-party-podspecs/glog.podspec"
1253 | hermes-engine:
1254 | :podspec: "../node_modules/react-native/sdks/hermes-engine/hermes-engine.podspec"
1255 | :tag: hermes-2023-11-17-RNv0.73.0-21043a3fc062be445e56a2c10ecd8be028dd9cc5
1256 | RCT-Folly:
1257 | :podspec: "../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec"
1258 | RCTRequired:
1259 | :path: "../node_modules/react-native/Libraries/RCTRequired"
1260 | RCTTypeSafety:
1261 | :path: "../node_modules/react-native/Libraries/TypeSafety"
1262 | React:
1263 | :path: "../node_modules/react-native/"
1264 | React-callinvoker:
1265 | :path: "../node_modules/react-native/ReactCommon/callinvoker"
1266 | React-Codegen:
1267 | :path: build/generated/ios
1268 | React-Core:
1269 | :path: "../node_modules/react-native/"
1270 | React-CoreModules:
1271 | :path: "../node_modules/react-native/React/CoreModules"
1272 | React-cxxreact:
1273 | :path: "../node_modules/react-native/ReactCommon/cxxreact"
1274 | React-debug:
1275 | :path: "../node_modules/react-native/ReactCommon/react/debug"
1276 | React-Fabric:
1277 | :path: "../node_modules/react-native/ReactCommon"
1278 | React-FabricImage:
1279 | :path: "../node_modules/react-native/ReactCommon"
1280 | React-graphics:
1281 | :path: "../node_modules/react-native/ReactCommon/react/renderer/graphics"
1282 | React-hermes:
1283 | :path: "../node_modules/react-native/ReactCommon/hermes"
1284 | React-ImageManager:
1285 | :path: "../node_modules/react-native/ReactCommon/react/renderer/imagemanager/platform/ios"
1286 | React-jserrorhandler:
1287 | :path: "../node_modules/react-native/ReactCommon/jserrorhandler"
1288 | React-jsi:
1289 | :path: "../node_modules/react-native/ReactCommon/jsi"
1290 | React-jsiexecutor:
1291 | :path: "../node_modules/react-native/ReactCommon/jsiexecutor"
1292 | React-jsinspector:
1293 | :path: "../node_modules/react-native/ReactCommon/jsinspector-modern"
1294 | React-logger:
1295 | :path: "../node_modules/react-native/ReactCommon/logger"
1296 | React-Mapbuffer:
1297 | :path: "../node_modules/react-native/ReactCommon"
1298 | react-native-safe-area-context:
1299 | :path: "../node_modules/react-native-safe-area-context"
1300 | react-native-skia:
1301 | :path: "../node_modules/@shopify/react-native-skia"
1302 | React-nativeconfig:
1303 | :path: "../node_modules/react-native/ReactCommon"
1304 | React-NativeModulesApple:
1305 | :path: "../node_modules/react-native/ReactCommon/react/nativemodule/core/platform/ios"
1306 | React-perflogger:
1307 | :path: "../node_modules/react-native/ReactCommon/reactperflogger"
1308 | React-RCTActionSheet:
1309 | :path: "../node_modules/react-native/Libraries/ActionSheetIOS"
1310 | React-RCTAnimation:
1311 | :path: "../node_modules/react-native/Libraries/NativeAnimation"
1312 | React-RCTAppDelegate:
1313 | :path: "../node_modules/react-native/Libraries/AppDelegate"
1314 | React-RCTBlob:
1315 | :path: "../node_modules/react-native/Libraries/Blob"
1316 | React-RCTFabric:
1317 | :path: "../node_modules/react-native/React"
1318 | React-RCTImage:
1319 | :path: "../node_modules/react-native/Libraries/Image"
1320 | React-RCTLinking:
1321 | :path: "../node_modules/react-native/Libraries/LinkingIOS"
1322 | React-RCTNetwork:
1323 | :path: "../node_modules/react-native/Libraries/Network"
1324 | React-RCTSettings:
1325 | :path: "../node_modules/react-native/Libraries/Settings"
1326 | React-RCTText:
1327 | :path: "../node_modules/react-native/Libraries/Text"
1328 | React-RCTVibration:
1329 | :path: "../node_modules/react-native/Libraries/Vibration"
1330 | React-rendererdebug:
1331 | :path: "../node_modules/react-native/ReactCommon/react/renderer/debug"
1332 | React-rncore:
1333 | :path: "../node_modules/react-native/ReactCommon"
1334 | React-runtimeexecutor:
1335 | :path: "../node_modules/react-native/ReactCommon/runtimeexecutor"
1336 | React-runtimescheduler:
1337 | :path: "../node_modules/react-native/ReactCommon/react/renderer/runtimescheduler"
1338 | React-utils:
1339 | :path: "../node_modules/react-native/ReactCommon/react/utils"
1340 | ReactCommon:
1341 | :path: "../node_modules/react-native/ReactCommon"
1342 | RNGestureHandler:
1343 | :path: "../node_modules/react-native-gesture-handler"
1344 | RNReanimated:
1345 | :path: "../node_modules/react-native-reanimated"
1346 | RNScreens:
1347 | :path: "../node_modules/react-native-screens"
1348 | RNSVG:
1349 | :path: "../node_modules/react-native-svg"
1350 | RNVectorIcons:
1351 | :path: "../node_modules/react-native-vector-icons"
1352 | Yoga:
1353 | :path: "../node_modules/react-native/ReactCommon/yoga"
1354 |
1355 | SPEC CHECKSUMS:
1356 | boost: 26fad476bfa736552bbfa698a06cc530475c1505
1357 | CocoaAsyncSocket: 065fd1e645c7abab64f7a6a2007a48038fdc6a99
1358 | DoubleConversion: fea03f2699887d960129cc54bba7e52542b6f953
1359 | FBLazyVector: 39ba45baf4e398618f8b3a4bb6ba8fcdb7fc2133
1360 | FBReactNativeSpec: 20cfca68498e27879514790359289d1df2b52c56
1361 | Flipper: c7a0093234c4bdd456e363f2f19b2e4b27652d44
1362 | Flipper-Boost-iOSX: fd1e2b8cbef7e662a122412d7ac5f5bea715403c
1363 | Flipper-DoubleConversion: 2dc99b02f658daf147069aad9dbd29d8feb06d30
1364 | Flipper-Fmt: 60cbdd92fc254826e61d669a5d87ef7015396a9b
1365 | Flipper-Folly: 584845625005ff068a6ebf41f857f468decd26b3
1366 | Flipper-Glog: 70c50ce58ddaf67dc35180db05f191692570f446
1367 | Flipper-PeerTalk: 116d8f857dc6ef55c7a5a75ea3ceaafe878aadc9
1368 | FlipperKit: 37525a5d056ef9b93d1578e04bc3ea1de940094f
1369 | fmt: ff9d55029c625d3757ed641535fd4a75fedc7ce9
1370 | glog: 79d13cd7c34b5d0cea5f4ca72c0e6b462ef8fb4d
1371 | hermes-engine: 06a5a3f9d840279a0b0c6dc80d10ddd9349103b4
1372 | libevent: 4049cae6c81cdb3654a443be001fb9bdceff7913
1373 | OpenSSL-Universal: ebc357f1e6bc71fa463ccb2fe676756aff50e88c
1374 | RCT-Folly: 082c31bb88ae3582d685f8923b9938147be587b3
1375 | RCTRequired: 5e3631b27c08716986980ef23eed8abdee1cdcaf
1376 | RCTTypeSafety: 02a64828b0b428eb4f63de1397d44fb2d0747e85
1377 | React: df5dbfbd10c5bd8d4bcb49bd9830551533e11c7e
1378 | React-callinvoker: dc0dff59e8d3d1fe4cd9fb5f120f82a775d2a325
1379 | React-Codegen: 88bf5d1e29db28c1c9b88fe909f073be6c9f769d
1380 | React-Core: 276ccbbf282538138f4429313bb1200a15067c6e
1381 | React-CoreModules: 64747180c0329bebed8307ffdc97c331220277a6
1382 | React-cxxreact: 84d98283f701bae882dcd3ad7c573a02f4c9d5c0
1383 | React-debug: 443cf46ade52f3555dd1ec709718793490ac5edc
1384 | React-Fabric: 4c877c032b3acc07ed3f2e46ae25b5a39af89382
1385 | React-FabricImage: c46c47ea3c672b9fadd6850795a51d3d9e5df712
1386 | React-graphics: e1cff03acf09098513642535324432d495b6425c
1387 | React-hermes: e3356f82c76c5c41688a7e08ced2254a944501c4
1388 | React-ImageManager: c783771479ab0bf1e3dbe711cc8b9f5b0f65972b
1389 | React-jserrorhandler: 7cd93ce5165e5d66c87b6f612f94e5642f5c5028
1390 | React-jsi: 81b5fe94500e69051c2f3a775308afaa53e2608b
1391 | React-jsiexecutor: 4f790f865ad23fa949396c1a103d06867c0047ed
1392 | React-jsinspector: 9f6fb9ed9f03a0fb961ab8dc2e0e0ee0dc729e77
1393 | React-logger: 008caec0d6a587abc1e71be21bfac5ba1662fe6a
1394 | React-Mapbuffer: 58fe558faf52ecde6705376700f848d0293d1cef
1395 | react-native-safe-area-context: cd1169d797a2ef722a00bfc5af10748d5b6c94f9
1396 | react-native-skia: 17ee79b4c29eb3df54691ceed3c30c103f5ab0d0
1397 | React-nativeconfig: a063483672b8add47a4875b0281e202908ff6747
1398 | React-NativeModulesApple: 169506a5fd708ab22811f76ee06a976595c367a1
1399 | React-perflogger: b61e5db8e5167f5e70366e820766c492847c082e
1400 | React-RCTActionSheet: dcaecff7ffc1888972cd1c1935751ff3bce1e0c1
1401 | React-RCTAnimation: 24b8ae7ebc897ba3f33a93a020bbc66ab7863f5d
1402 | React-RCTAppDelegate: 661fc59d833e6727cc8c7e36bf8664215e5c277f
1403 | React-RCTBlob: 112880abc731c5a0d8eefb5919a591ad30f630e8
1404 | React-RCTFabric: a0289e3bf73da8c03b68b4e9733ba497b021de45
1405 | React-RCTImage: b8065c1b51cc6c2ff58ad81001619352518dd793
1406 | React-RCTLinking: fdf9f43f8bd763d178281a079700105674953849
1407 | React-RCTNetwork: ad3d988e425288492510ee37c9dcdf8259566214
1408 | React-RCTSettings: 67c3876f2775d1cf86298f657e6006afc2a2e4cf
1409 | React-RCTText: 671518da40bd548943ec12ee6a60f733a751e2e9
1410 | React-RCTVibration: 60bc4d01d7d8ab7cff14852a195a7fa93b38e1f3
1411 | React-rendererdebug: 6aaab394c9fefe395ef61809580a9bf63b98fd3e
1412 | React-rncore: 6680f0ebb941e256af7dc92c6a512356e77bfea7
1413 | React-runtimeexecutor: 2ca6f02d3fd6eea5b9575eb30720cf12c5d89906
1414 | React-runtimescheduler: 77543c74df984ce56c09d49d427149c53784aaf6
1415 | React-utils: 42708ea436853045ef1eaff29996813d9fbbe209
1416 | ReactCommon: 851280fb976399ca1aabc74cc2c3612069ea70a2
1417 | RNGestureHandler: 61bfdfc05db9b79dd61f894dcd29d3dcc6db3c02
1418 | RNReanimated: 57f436e7aa3d277fbfed05e003230b43428157c0
1419 | RNScreens: b582cb834dc4133307562e930e8fa914b8c04ef2
1420 | RNSVG: 8ba35cbeb385a52fd960fd28db9d7d18b4c2974f
1421 | RNVectorIcons: 210f910e834e3485af40693ad4615c1ec22fc02b
1422 | SocketRocket: f32cd54efbe0f095c4d7594881e52619cfe80b17
1423 | Yoga: 44003f970aa541b79dfdd59cf236fda41bd5890f
1424 |
1425 | PODFILE CHECKSUM: 7e81f10cbd0c705352d165111d319f7c6a737f7c
1426 |
1427 | COCOAPODS: 1.14.2
1428 |
--------------------------------------------------------------------------------
/jest.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | preset: 'react-native',
3 | };
4 |
--------------------------------------------------------------------------------
/metro.config.js:
--------------------------------------------------------------------------------
1 | const { getDefaultConfig, mergeConfig } = require('@react-native/metro-config');
2 |
3 | /**
4 | * Metro configuration
5 | * https://facebook.github.io/metro/docs/configuration
6 | *
7 | * @type {import('metro-config').MetroConfig}
8 | */
9 | const config = {};
10 |
11 | module.exports = mergeConfig(getDefaultConfig(__dirname), config);
12 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "@fal-ai/fal-with-react-native",
3 | "version": "0.0.1",
4 | "license": "AGPLv3",
5 | "private": true,
6 | "scripts": {
7 | "android": "react-native run-android",
8 | "ios:pod": "cd ios && pod install && cd ..",
9 | "ios": "react-native run-ios",
10 | "lint": "eslint .",
11 | "start": "react-native start",
12 | "test": "jest",
13 | "prepare": "husky install"
14 | },
15 | "lint-staged": {
16 | "*.{md,mdx,json}": [
17 | "prettier --write"
18 | ],
19 | "src/*.{js,jsx,ts,tsx}": [
20 | "eslint --fix",
21 | "prettier --write"
22 | ]
23 | },
24 | "dependencies": {
25 | "@eva-design/eva": "^2.2.0",
26 | "@fal-ai/serverless-client": "^0.7.4-alpha.1",
27 | "@react-navigation/drawer": "^6.6.6",
28 | "@react-navigation/native": "^6.1.9",
29 | "@shopify/react-native-skia": "^0.1.230",
30 | "@ui-kitten/components": "^5.3.1",
31 | "@ui-kitten/eva-icons": "^5.3.1",
32 | "nativewind": "^2.0.11",
33 | "react": "18.2.0",
34 | "react-native": "0.73.0",
35 | "react-native-gesture-handler": "^2.14.0",
36 | "react-native-reanimated": "^3.6.1",
37 | "react-native-safe-area-context": "^4.8.1",
38 | "react-native-screens": "^3.29.0",
39 | "react-native-svg": "^9.13.6",
40 | "react-native-vector-icons": "^10.0.3"
41 | },
42 | "devDependencies": {
43 | "@babel/core": "^7.20.0",
44 | "@babel/preset-env": "^7.20.0",
45 | "@babel/runtime": "^7.20.0",
46 | "@react-native/babel-preset": "^0.73.18",
47 | "@react-native/eslint-config": "^0.74.0",
48 | "@react-native/metro-config": "^0.73.2",
49 | "@react-native/typescript-config": "^0.73.1",
50 | "@trivago/prettier-plugin-sort-imports": "^4.3.0",
51 | "@types/react": "^18.2.6",
52 | "@types/react-test-renderer": "^18.0.0",
53 | "babel-jest": "^29.6.3",
54 | "babel-plugin-module-resolver": "^5.0.0",
55 | "eslint": "^8.56.0",
56 | "eslint-config-prettier": "^9.1.0",
57 | "eslint-config-standard": "^17.1.0",
58 | "eslint-plugin-import": "^2.29.1",
59 | "eslint-plugin-react": "^7.33.2",
60 | "husky": "^8.0.3",
61 | "jest": "^29.6.3",
62 | "lint-staged": "^15.2.0",
63 | "prettier": "^2.8.8",
64 | "react-test-renderer": "18.2.0",
65 | "tailwindcss": "3.3.2",
66 | "typescript": "5.0.4"
67 | },
68 | "engines": {
69 | "node": ">=18"
70 | }
71 | }
72 |
--------------------------------------------------------------------------------
/react-native.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | project: {
3 | ios: {
4 | automaticPodsInstallation: true,
5 | },
6 | },
7 | };
8 |
--------------------------------------------------------------------------------
/src/components/core.tsx:
--------------------------------------------------------------------------------
1 | import { Button as KButton, Input as KInput } from '@ui-kitten/components';
2 | import { styled } from 'nativewind';
3 | import { Image as RNImage, Text as RNText, View as RNView } from 'react-native';
4 |
5 | export const Button = styled(KButton);
6 | export const Input = styled(KInput);
7 | export const Image = styled(RNImage);
8 | export const Text = styled(RNText);
9 | export const View = styled(RNView);
10 |
--------------------------------------------------------------------------------
/src/components/screen.tsx:
--------------------------------------------------------------------------------
1 | import { View } from './core';
2 | import React, { type PropsWithChildren } from 'react';
3 | import { ScrollView } from 'react-native';
4 |
5 | export function Screen({ children }: PropsWithChildren) {
6 | return (
7 |
8 | {children}
9 |
10 | );
11 | }
12 |
--------------------------------------------------------------------------------
/src/components/theme.ts:
--------------------------------------------------------------------------------
1 | import { light } from '@eva-design/eva';
2 |
3 | // https://colors.eva.design
4 | export const appTheme = {
5 | ...light,
6 | // 'background-basic-color-1': '#191E24',
7 | // 'background-basic-color-2': '#161A20',
8 | // 'background-basic-color-3': '#13171B',
9 | // 'background-basic-color-4': '#111519',
10 | 'color-primary-100': '#DFD8F9',
11 | 'color-primary-200': '#BFB4F4',
12 | 'color-primary-300': '#9586DE',
13 | 'color-primary-400': '#6E60BD',
14 | 'color-primary-500': '#3F3291',
15 | 'color-primary-600': '#2F247C',
16 | 'color-primary-700': '#211968',
17 | 'color-primary-800': '#160F54',
18 | 'color-primary-900': '#0E0945',
19 | };
20 |
--------------------------------------------------------------------------------
/src/screens/drawing.tsx:
--------------------------------------------------------------------------------
1 | import * as fal from '@fal-ai/serverless-client';
2 | import {
3 | Canvas,
4 | useCanvasRef,
5 | Circle,
6 | Fill,
7 | ImageFormat,
8 | Image,
9 | Skia,
10 | SkImage,
11 | } from '@shopify/react-native-skia';
12 | import { useState, useEffect } from 'react';
13 | import { GestureResponderEvent } from 'react-native';
14 | import { useSharedValue } from 'react-native-reanimated';
15 | import { Text, View } from '~/components/core';
16 |
17 | const APP_ID = '110602490-lcm-sd15-i2i';
18 | const DEFAULT_PROMPT = 'A moon in a starry night sky';
19 |
20 | type LcmInput = {
21 | prompt: string;
22 | image_url: string;
23 | seed?: number;
24 | num_inference_steps?: number;
25 | guidance_scale?: number;
26 | strength?: number;
27 | sync_mode?: boolean;
28 | };
29 |
30 | type LcmImage = {
31 | url: string;
32 | width: number;
33 | height: number;
34 | };
35 |
36 | type LcmOutput = {
37 | images: LcmImage[];
38 | seed: number;
39 | };
40 |
41 | export function DrawingScreen() {
42 | const currentImage = useSharedValue(null);
43 |
44 | const { send } = fal.realtime.connect(APP_ID, {
45 | // The connectionKey is used to identify the connection so that it's reused across
46 | // re-renders. This avoids multiple connections being opened without the need to
47 | // keep the reference as useRef or useState yourself.
48 | connectionKey: 'drawing-lcm-rn',
49 | // Throttles the number of requests sent to the server.
50 | throttleInterval: 64,
51 | onResult(result) {
52 | const imageUrl = result.images[0].url;
53 | const base64Data = imageUrl.split(',')[1];
54 | const data = Skia.Data.fromBase64(base64Data);
55 | currentImage.value = Skia.Image.MakeImageFromEncoded(data);
56 | },
57 | });
58 |
59 | const [isDragging, setIsDragging] = useState(false);
60 | const moonX = useSharedValue(50);
61 | const moonY = useSharedValue(50);
62 |
63 | const handleTouchMove = (event: GestureResponderEvent) => {
64 | 'worklet';
65 | const { locationX, locationY } = event.nativeEvent;
66 | moonX.value = locationX;
67 | moonY.value = locationY;
68 | };
69 |
70 | const canvasRef = useCanvasRef();
71 | const canvasSize = useSharedValue({ width: 0, height: 0 });
72 | const resultCanvasSize = useSharedValue({ width: 0, height: 0 });
73 |
74 | const sendCanvasSnapshot = () => {
75 | const canvas = canvasRef.current;
76 | if (!canvas) {
77 | return;
78 | }
79 | const image = canvas.makeImageSnapshot({
80 | x: 0,
81 | y: 0,
82 | width: 512,
83 | height: 512,
84 | });
85 | const imageUrl = `data:image/jpeg;base64,${image.encodeToBase64(
86 | ImageFormat.JPEG,
87 | 50,
88 | )}`;
89 |
90 | send({
91 | prompt: DEFAULT_PROMPT,
92 | image_url: imageUrl,
93 | strength: 0.8,
94 | sync_mode: true,
95 | seed: 6252023,
96 | });
97 | };
98 |
99 | useEffect(() => {
100 | const canvas = canvasRef.current;
101 | if (isDragging && canvas) {
102 | const intervalTimeout = setInterval(() => {
103 | sendCanvasSnapshot();
104 | }, 8);
105 |
106 | return () => clearInterval(intervalTimeout);
107 | }
108 | }, [isDragging]);
109 |
110 | useEffect(() => {
111 | sendCanvasSnapshot();
112 | }, []);
113 |
114 | return (
115 |
116 |
117 |
118 | Hint: touch the canvas to move
119 | the moon around
120 |
121 |
122 |
138 |
147 |
148 | );
149 | }
150 |
--------------------------------------------------------------------------------
/src/screens/home.tsx:
--------------------------------------------------------------------------------
1 | import * as fal from '@fal-ai/serverless-client';
2 | import React, { useState } from 'react';
3 | import { View, Image, Input, Button } from '~/components/core';
4 | import { Screen } from '~/components/screen';
5 |
6 | const DEFAULT_PROMPT =
7 | 'a city landscape of a cyberpunk metropolis, raining, purple, pink and teal neon lights, highly detailed, uhd';
8 |
9 | type SdxlInput = {
10 | prompt: string;
11 | seed?: number;
12 | };
13 |
14 | type FalTiming = {
15 | inference: number;
16 | image_processing: number;
17 | };
18 |
19 | type FalImage = {
20 | url: string;
21 | width: number;
22 | height: number;
23 | };
24 |
25 | type SdxlResult = {
26 | images: FalImage[];
27 | timings: FalTiming;
28 | };
29 |
30 | export function HomeScreen() {
31 | const [prompt, setPrompt] = useState(DEFAULT_PROMPT);
32 | const [loading, setLoading] = useState(false);
33 | const [image, setImage] = useState(null);
34 | const generateImate = async () => {
35 | setLoading(true);
36 | try {
37 | const result = await fal.subscribe(
38 | '110602490-fast-sdxl',
39 | {
40 | input: {
41 | prompt,
42 | },
43 | },
44 | );
45 | if (result.images && result.images.length > 0) {
46 | setImage(result.images[0]);
47 | }
48 | } catch (error) {
49 | console.error(error);
50 | } finally {
51 | setLoading(false);
52 | }
53 | };
54 |
55 | return (
56 |
57 |
58 |
63 |
64 | {image && (
65 |
69 | )}
70 |
71 |
72 | );
73 | }
74 |
--------------------------------------------------------------------------------
/tailwind.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | content: [
3 | './src/screens/**/*.{js,ts,jsx,tsx}',
4 | './src/components/**/*.{js,ts,jsx,tsx}',
5 | ],
6 | };
7 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "@react-native/typescript-config/tsconfig.json",
3 | "compilerOptions": {
4 | "paths": {
5 | "~/*": ["./src/*"]
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------