Skip to content

damus-io/notedeck

Repository files navigation

Damus Notedeck

CI

A multiplatform nostr client. Works on android and desktop

The desktop client is called notedeck:

notedeck

Android

Look it actually runs on android!

Usage

$ ./target/release/notedeck

Developer Setup

Desktop (Linux/MacOS, Windows?)

If you're running debian-based machine like Ubuntu or ElementaryOS, all you need is to install rustup and run sudo apt install build-essential.

$ cargo run --release 

Android

The dev shell should also have all of the android-sdk dependencies needed for development, but you still need the aarch64-linux-android rustup target installed:

$ rustup target add aarch64-linux-android

To run on a real device, just type:

$ cargo apk run --release -p notedeck_chrome

Android Emulator

  • Install Android Studio
  • Open 'Device Manager' in Android Studio
  • Add a new device with API level 34 and ABI arm64-v8a (even though the app uses 30, the 30 emulator can't find the vulkan adapter, but 34 works fine)
  • Start up the emulator

while the emulator is running, run:

cargo apk run --release -p notedeck_chrome

The app should appear on the emulator

Previews

You can preview individual widgets and views by running the preview script:

./preview RelayView
./preview ProfilePreview
# ... etc

When adding new previews you need to implement the Preview trait for your view/widget and then add it to the src/ui_preview/main.rs bin:

previews!(runner, name,
    RelayView,
    AccountLoginView,
    ProfilePreview,
);

Contributing

Configure the developer environment:

./scripts/dev_setup.sh

This will add the pre-commit hook to your local repository to suggest proper formatting before commits.