1de724b24b9607d4ee83dc0dbb92c13b2b77dcaf
* Get home screen's swipable pager working with the drawer * Add tab bar to pager * Implement popular & following views on home screen * Visual tune-up * Move the feed selector to the footer * Fix to 'new posts' poll * Add the view header as a feed item * Use the native driver on the tabbar indicator to improve perf * Reduce home polling to the currently active page; also reuse some code * Add soft reset on tap selected in tab bar * Remove explicit 'onboarding' flow * Choose good stuff based on service * Add foaf-based follow discovery * Fall back to who to follow * Fix backgrounds * Switch to the off-spec goodstuff route * 1.8 * Fix for dev & staging * Swap the tab bar items and rename suggested to what's hot * Go to whats-hot by default if you have no follows * Implement pager and tabbar for desktop web * Pin deps to make expo happy * Add language filtering to goodstuff
Bluesky
Build instructions
- Setup your environment using the react native instructions.
- Setup your environment for e2e testing using detox:
- yarn global add detox-cli
- brew tap wix/brew
- brew install applesimutils
- After initial setup:
cd ios ; pod install
- Start the dev servers
git clone git@github.com:bluesky-social/atproto.gitcd atprotoyarncd packages/dev-env && yarn start
- Run the dev app
- iOS:
yarn ios - Android:
yarn android - Web:
yarn web
- iOS:
- Tips
npx react-native infoChecks what has been installed.- On M1 macs, you need to exclude "arm64" from the target architectures
- Annoyingly this must be re-set via XCode after every pod install
- 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 instance, the localhosted dev-wallet will need
- 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.)
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
artifactfolder
Polyfills
./platform/polyfills.*.ts adds polyfills to the environment. Currently this includes:
- TextEncoder / TextDecoder
Releases
1
Latest Build
Latest
Languages
TypeScript
92.9%
Go
2.2%
JavaScript
1.8%
Kotlin
0.9%
HTML
0.9%
Other
1.2%