Graysky is a Bluesky client written in React Native. 🚧 WIP 🚧
You'll need pnpm, and some sort of simulator or device to run the app on.
pnpm install
Weird side step - you need to go to
apps/expo/app.config.ts
and delete theextra
field which has an expo project id in it. Sorry, I'll fix this later. You may also need to delete Sentry, or else provide your own key
Build the dev client using EAS:
cd apps/expo
pnpm build:dev-client
Unzip the graysky.zip
file that appears, then install Graysky.app
to your simulator.
eas build:run --path=Graysky.app
You can then start the expo server with:
pnpm dev
- Notifications screen
- Image viewer
- Pull to refresh fix
- Haptics
- Post composer
- Context menu - post actions
- Block/Unblock user
- Quote post
- Dark mode
- Sidebar w/ logout button
- Search screen
- Invites screen
- Upload images
- Followers/Following screens
- Likes list
- Context menu - user actions
- Image viewer: Pinch to zoom
- Custom feeds
- Settings screens
- Moderation settings
- Content filtering
- Review blocked/muted users
- Account settings
- Edit profile
- Change handle
- App settings
- Notification grouping
- About & credits
- Moderation settings
- App Store???
- Push notifications
- Composer rewrite
- Embeds in composer
- Drafts
- Install Android Studio, and the Android SDK
- Install Oracle Java 11 JDK
- Make Gradle faster in
~/.gradle/gradle.properties
:
org.gradle.jvmargs=-Xmx20g -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 -XX:+UseParallelGC -XX:MaxMetaspaceSize=2g
org.gradle.parallel=true
org.gradle.configureondemand=true
org.gradle.daemon=false
org.gradle.caching=true
- Create a signing key in Android Studio
- Build it with:
eas build --platform android --profile production-apk --non-interactive --local --output="./foo.apk" --wait
- Sign it with:
/Users/alice/Library/Android/sdk/build-tools/33.0.0/apksigner sign -ks sideload.jks foo.apk
SHORT_SHA=$(git rev-parse --short HEAD)
eas build --platform ios --profile production --non-interactive --local --output="./$SHORT_SHA.ipa" --wait && say "Build finished"
eas submit --platform ios --path="./$SHORT_SHA.ipa" --wait && say "Submitted to TestFlight"
set SHORT_SHA (git rev-parse --short HEAD)
eas build --platform ios --profile production --non-interactive --local --output="./$SHORT_SHA.ipa" --wait; and say "Build finished"
eas submit --platform ios --path="./$SHORT_SHA.ipa" --wait; and say "Submitted to TestFlight"
Thank you to @thepriceisright for sponsoring my work on this project!
Graysky is primarily developed by @mozzius.dev. If you'd like to show your support for the project, you can sponsor me.
However, I'm not the only one who's contributed to this project. I'd like to especially thank @alice.bsky.sh for her work on adding dark mode, and getting Android builds working, and thank @holden.bsky.social for their invaluable accessibility improvements.
My eternal thanks to the following people for their contributions to Graysky: