Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/artsy/emission
⚠️ Deprecated repo, moved to artsy/eigen ➡️ React Native Components
https://github.com/artsy/emission
app artsy react-native
Last synced: about 1 month ago
JSON representation
⚠️ Deprecated repo, moved to artsy/eigen ➡️ React Native Components
- Host: GitHub
- URL: https://github.com/artsy/emission
- Owner: artsy
- License: mit
- Archived: true
- Created: 2016-02-24T11:36:24.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2020-03-03T14:44:08.000Z (almost 5 years ago)
- Last Synced: 2024-08-03T01:30:40.140Z (5 months ago)
- Topics: app, artsy, react-native
- Language: TypeScript
- Homepage: http://artsy.github.io/blog/2018/04/17/making-a-components-pod/
- Size: 94.3 MB
- Stars: 618
- Watchers: 60
- Forks: 78
- Open Issues: 54
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
- awesome-list - emission
README
# ⚠️ 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
- **State:** retired, see [Eigen]
- **Point People:** [@ashfurrow](https://github.com/ashfurrow), [@ds300](https://github.com/ds300)
- **CI:**
- React Native components: [![Build Status](https://travis-ci.org/artsy/emission.svg?branch=master)](https://travis-ci.org/artsy/emission)
- Native unit tests: [![CircleCI](https://circleci.com/gh/artsy/emission.svg?style=svg)](https://circleci.com/gh/artsy/emission)
- **[Troubleshooting](https://github.com/artsy/emission/blob/master/docs/troubleshooting.md)**This is a core [Artsy Mobile](https://github.com/artsy/mobile) OSS project, along with [Energy](https://github.com/artsy/energy), [Eidolon](https://github.com/artsy/eidolon), [Eigen](https://github.com/artsy/eigen) and [Emergence](https://github.com/artsy/emergence).
Don't know what Artsy is? Check out [this overview](https://github.com/artsy/meta/blob/master/meta/what_is_artsy.md) and [more](https://github.com/artsy/meta/blob/master/README.md), or read our objc.io on [team culture](https://www.objc.io/issues/22-scale/artsy).
Want to know more about Emission? Read the [mobile](http://artsy.github.io/blog/categories/mobile/) blog posts, or [Emission's](http://artsy.github.io/blog/categories/emission/) / [React Native's](http://artsy.github.io/blog/categories/reactnative/) specifically. Also check out [the map to Emission](docs/map_to_emission.md) 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][node], and [Yarn][yarn]: `$ brew install node yarn`
1. Install file watcher used by React Native:
- `$ brew install watchman`
1. Install NPM modules: `$ yarn install`
1. Install Pods: `$ cd Example && bundle && bundle exec pod install`Ran into issues? Try [troubleshoot](docs/troubleshooting.md).
### 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.1. 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](https://github.com/storybooks/storybook), select "Open Storybook" from the "Developer" section of the root view in the app. You can also use the [VSCode Storybooks plugin](https://marketplace.visualstudio.com/items?itemName=Orta.vscode-react-native-storybooks).
To create your React components and Relay containers, use the [omakase generator][omakase-cli]. 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][omakase-cli].
---
### Using VS Code as an IDE
There is a comprehensive document covering [our setup here](docs/vscode.md).
### Debugging
There is a comprehensive document covering [the various options](docs/debugging.md).
### 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
- 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[react native]: http://facebook.github.io/react-native/
[eigen]: https://github.com/artsy/eigen
[yarn]: https://yarnpkg.com
[flow]: http://flowtype.org
[node]: http://nodejs.org
[glossary-yarn]: http://artsy.github.io/blog/2016/11/14/JS-Glossary/#yarn
[blog here]: http://artsy.github.io/blog/2016/08/24/On-Emission/
[spec-repo]: https://github.com/artsy/Specs/tree/master/React
[metaphysics]: https://github.com/artsy/metaphysics
[omakase-cli]: https://github.com/omakase-js/omakase/blob/master/packages/cli/README.md## License
MIT.
## About Artsy
This project is the work of engineers at [Artsy][footer_website], the world's
leading and largest online art marketplace and platform for discovering art.
One of our core [Engineering Principles][footer_principles] is being [Open
Source by Default][footer_open] which means we strive to share as many details
of our work as possible.You can learn more about this work from [our blog][footer_blog] and by following
[@ArtsyOpenSource][footer_twitter] or explore our public data by checking out
[our API][footer_api]. If you're interested in a career at Artsy, read through
our [job postings][footer_jobs]![footer_website]: https://www.artsy.net/
[footer_principles]: culture/engineering-principles.md
[footer_open]: culture/engineering-principles.md#open-source-by-default
[footer_blog]: https://artsy.github.io/
[footer_twitter]: https://twitter.com/ArtsyOpenSource
[footer_api]: https://developers.artsy.net/
[footer_jobs]: https://www.artsy.net/jobs