Name: emission
Owner: Artsy
Description: React Native Components
Created: 2016-02-24 11:36:24.0
Updated: 2018-05-23 17:57:30.0
Pushed: 2018-05-24 21:33:48.0
Homepage: null
Size: 23502
Language: TypeScript
GitHub Committers
User | Most Recent Commit | # Commits |
---|
Other Committers
User | Most Recent Commit | # Commits |
---|
Emission is a collection of React Native Components which are consumed by Eigen. A writeup on how & why we made a lot of the repo decisions is on our blog here.
Inside Emission you will find:
This is a core Artsy Mobile OSS project, along with Energy, Eidolon, Eigen and Emergence.
Don't know what Artsy is? Check out this overview and more, or read our objc.io on team culture.
Want to know more about Emission? Read the mobile blog posts, or Emission's / React Native's specifically. Also check out the map to Emission to oriented yourself to the codebase.
Automated install:
git clone https://github.com/artsy/emission.git && cd emission && make setup && make oss
git clone https://github.com/artsy/emission.git && cd emission && make setup && make artsy
. Then look in 1password for the Eigen keys.Manual install
git submodule update --init
$ brew install node yarn
$ brew install pcre
$ brew link pcre
$ brew install watchman --HEAD
$ yarn install
$ cd Example && bundle && bundle exec pod install
Run $ yarn start
from the top directory, which will:
Clean the example app?s Xcode build dir.
Start the example app?s React Native packager.
Start the React Storybooks environment.
Now from Xcode you can run the app in Example/Emission.xcworkspace
.
If you already have the app installed, you can run open -a Simulator
to open the last sim, and then xcrun simctl launch booted net.artsy.Emission
to open the app.
If you like git hooks, you could setup the following:
$ echo -e "#!/bin/sh\nyarn run lint-staged\n" > .git/hooks/pre-commit; chmod +x .git/hooks/pre-commit
$ echo -e "#!/bin/sh\nyarn run type-check\n" > .git/hooks/pre-push; chmod +x .git/hooks/pre-push
To use Storybooks, select “Open Storybook” from the “Developer” section of the root view in the app. You can also use the VSCode Storybooks plugin.
There is a comprehensive document covering our setup here.
There is a comprehensive document covering the various options.
$ yarn run sync-externals
or individually:$ yarn run sync-schema
$ yarn run sync-colors
We have some debugging tip when using Relay.
Try quitting and restarting your node instance if you change something Relay-related and you run into this error:
ndled JS Exception: RelayQL: Unexpected invocation at runtime. Either the Babel transform was not set up, or it
ed to identify this call site. Make sure it is being used verbatim as `Relay.QL`
You must have Metaphysics checked out in a folder adjacent to Emission's code. So there should be ~/code/emission
and ~/code/metaphysics
.
make update_specs_repos
.package.json
version.npm version patch
, npm version minor
, or npm version major
. For
beta releases use npm version prerelease
.The Emission app (in Example/
) is deployed automatically to TestFlight once a week through emission-nebula. See that repo for more details.
React Native:
http://makeitopen.com
https://github.com/fbsamples/f8app/
http://facebook.github.io/react-native/docs/getting-started.html
http://beginning-mobile-app-development-with-react-native.com/book-preview.html
Relay:
https://facebook.github.io/relay/docs/getting-started.html
https://github.com/facebook/relay/tree/master/examples
https://github.com/fbsamples/f8app/
TypeScript:
https://www.typescriptlang.org
https://github.com/basarat/typescript-book
Testing:
https://facebook.github.io/jest/
https://facebook.github.io/jest/docs/api.html#content
https://facebook.github.io/jest/blog/2016/07/27/jest-14.html
Flexbox:
https://css-tricks.com/snippets/css/a-guide-to-flexbox/
http://blog.krawaller.se/posts/a-react-app-demonstrating-css3-flexbox/
https://egghead.io/courses/flexbox-fundamentals
React Native Storybooks:
https://github.com/storybooks/storybook/
https://github.com/storybooks/storybook/tree/master/app/react-native
React Native Debugger:
https://github.com/jhen0409/react-native-debugger