51 lines
2.1 KiB
Markdown
51 lines
2.1 KiB
Markdown
# Bluesky
|
|
|
|
## Build instructions
|
|
|
|
- Setup your environment [using the react native instructions](https://reactnative.dev/docs/environment-setup).
|
|
- Setup your environment [for e2e testing using detox](https://wix.github.io/Detox/docs/introduction/getting-started):
|
|
- yarn global add detox-cli
|
|
- brew tap wix/brew
|
|
- brew install applesimutils
|
|
- After initial setup:
|
|
- `npx expo prebuild` -> you will also need to run this anytime `app.json` or `package.json` changes
|
|
- Start the dev servers
|
|
- `git clone git@github.com:bluesky-social/atproto.git`
|
|
- `cd atproto`
|
|
- `yarn`
|
|
- `cd packages/dev-env && yarn start`
|
|
- Run the dev app
|
|
- iOS: `yarn ios`
|
|
- Android: `yarn android`
|
|
- Web: `yarn web`
|
|
- Run e2e tests
|
|
- Start in various console tabs:
|
|
- `yarn e2e:server`
|
|
- `yarn e2e:metro`
|
|
- Run once: `yarn e2e:build`
|
|
- Each test run: `yarn e2e:run`
|
|
- Tips
|
|
- `npx react-native info` Checks what has been installed.
|
|
- The android simulator won't be able to access localhost services unless you run `adb reverse tcp:{PORT} tcp:{PORT}`
|
|
- For instance, the localhosted dev-wallet will need `adb reverse tcp:3001 tcp:3001`
|
|
- For some reason, the typescript compiler chokes on platform-specific files (e.g. `foo.native.ts`) but only when compiling for Web thus far. Therefore we always have one version of the file which doesn't use a platform specifier, and that should bee the Web version. ([More info](https://stackoverflow.com/questions/44001050/platform-specific-import-component-in-react-native-with-typescript).)
|
|
|
|
## Various notes
|
|
|
|
### Debugging
|
|
|
|
- Note that since 0.70, debugging using the old debugger (which shows up using CMD+D) doesn't work anymore. Follow the instructions below to debug the code: https://reactnative.dev/docs/next/hermes#debugging-js-on-hermes-using-google-chromes-devtools
|
|
|
|
### Running E2E Tests
|
|
|
|
- Make sure you've setup your environment following above
|
|
- Make sure Metro and the dev server are running
|
|
- Run `yarn e2e`
|
|
- Find the artifacts in the `artifact` folder
|
|
|
|
### Polyfills
|
|
|
|
`./platform/polyfills.*.ts` adds polyfills to the environment. Currently this includes:
|
|
|
|
- TextEncoder / TextDecoder
|