The code in this repository was folded into Eigen. Please go there for all future development.
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
$ brew install node yarn
$ brew install watchman
$ yarn install
$ cd Example && bundle && bundle exec pod install
Ran into issues? Try troubleshoot.
Run $ yarn start
from the top directory, which will:
Now from Xcode you can run the app in Example/Emission.xcworkspace
.
open -a Simulator
to open the last sim, and then xcrun simctl launch booted net.artsy.Emission
to open the app.rm -rf node_modules; rm -rf Example/Pods; yarn install; cd Example; bundle exec pod install
and then repeat the steps above.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.
To create your React components and Relay containers, use the omakase generator. E.g.
$ yarn om g src/lib/Scenes/Artwork/ArtworkMetadata -f Artwork
$ yarn om g src/lib/Scenes/Artwork/ArtworkMetadata -r Artwork
$ yarn om g src/lib/Scenes/Artwork/ArtworkMetadata -p Artwork.artists
For full details see the CLI README.
There is a comprehensive document covering our setup here.
There is a comprehensive document covering the various options.
We vendor some data from other repositories that you will sometimes need to update. Notably the GraphQL schema of metaphysics that Relay uses to generate queries from: $ yarn sync-schema
Deploys are automated on CI after each PR merge, based on the patch/minor/major label added to the PR (patch is default).
React Native:
Relay:
TypeScript:
Testing:
Flexbox:
React Native Storybooks:
React Native Debugger:
MIT.
This project is the work of engineers at Artsy, the world's leading and largest online art marketplace and platform for discovering art. One of our core Engineering Principles is being Open Source by Default which means we strive to share as many details of our work as possible.
You can learn more about this work from our blog and by following @ArtsyOpenSource or explore our public data by checking out our API. If you're interested in a career at Artsy, read through our job postings!