Skip to content
This repository was archived by the owner on Mar 12, 2020. It is now read-only.
/ emission Public archive

⚠️ Deprecated repo, moved to artsy/eigen ➡️ React Native Components

License

Notifications You must be signed in to change notification settings

artsy/emission

Folders and files

NameName
Last commit message
Last commit date
Jan 17, 2020
May 25, 2017
Feb 3, 2020
Jun 1, 2019
Feb 21, 2020
Feb 21, 2020
Oct 31, 2019
Feb 20, 2020
Jan 21, 2020
Mar 11, 2019
Feb 3, 2020
Feb 6, 2020
Feb 21, 2020
Feb 21, 2020
Jun 4, 2019
Oct 25, 2019
May 4, 2018
Aug 8, 2019
Sep 4, 2017
Jan 13, 2018
Jan 10, 2020
Apr 20, 2019
Dec 6, 2019
Nov 27, 2018
Jan 16, 2020
Oct 30, 2018
Feb 21, 2020
Jan 15, 2020
Nov 19, 2018
Feb 18, 2020
Mar 3, 2020
Sep 17, 2019
Sep 9, 2019
Jun 21, 2019
Oct 28, 2019
Jan 16, 2020
Sep 4, 2017
Jan 10, 2019
Dec 2, 2019
Dec 3, 2019
Mar 1, 2020
Sep 17, 2019
Oct 15, 2019
May 23, 2019
Sep 17, 2019
Oct 20, 2018
Sep 17, 2019
Dec 2, 2019
Mar 1, 2020

Repository files navigation

⚠️ This repo is deprecated

The code in this repository was folded into Eigen. Please go there for all future development.

Reactions ⇒ Emissions

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:

  • An example app for building and running Emission's components with an Eigen-like API.
  • An NPM module that relies on React Native and manages the components.
  • A Podspec that wraps it all together for easy external usage in Eigen.

Meta

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.

Prerequisites

  • Xcode

Installation

Automated install:

  • OSS: git clone https://github.com/artsy/emission.git && cd emission && make setup && make oss
  • Artsy: git clone https://github.com/artsy/emission.git && cd emission && make setup && make artsy. Then look in 1password for the Eigen keys.

Manual install

  1. Install Node.js, and Yarn: $ brew install node yarn
  2. Install file watcher used by React Native:
    • $ brew install watchman
  3. Install NPM modules: $ yarn install
  4. Install Pods: $ cd Example && bundle && bundle exec pod install

Ran into issues? Try troubleshoot.

Running the project:

  1. 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.
  2. 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 run into any issues with the above commands oftentimes a full clean can help. Run rm -rf node_modules; rm -rf Example/Pods; yarn install; cd Example; bundle exec pod install and then repeat the steps above.

Daily Development

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.


Using VS Code as an IDE

There is a comprehensive document covering our setup here.

Debugging

There is a comprehensive document covering the various options.

Updating Dependencies

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

Deploying Emission

Deploys are automated on CI after each PR merge, based on the patch/minor/major label added to the PR (patch is default).

Resources

License

MIT.

About Artsy

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!