Go to file
William Casarin afb0e5fe65 github: remove pages workflow
Signed-off-by: William Casarin <jb55@jb55.com>
2024-04-27 01:53:08 -07:00
.github/workflows github: remove pages workflow 2024-04-27 01:53:08 -07:00
assets Add relay view 2024-04-19 14:13:11 -07:00
enostr enostr: expose RelayStatus 2024-04-19 14:13:11 -07:00
queries queries: update hashtags query 2024-04-09 18:49:24 -07:00
scripts Add precommit hook to suggest proper formatting 2024-04-19 14:13:11 -07:00
src add hover to profile map demo 2024-04-24 12:49:06 -07:00
.envrc Add nix-shell for macos android development 2024-04-11 14:30:16 -07:00
.gitignore ui: add initial Profile hover previews 2024-04-19 22:00:19 -07:00
Cargo.lock add hover to profile map demo 2024-04-24 12:49:06 -07:00
Cargo.toml add hover to profile map demo 2024-04-24 12:49:06 -07:00
check check: remove duplicate and disable wasm checks 2024-04-19 17:37:41 -07:00
damus.keystore add temporary release keystore 2023-07-09 12:29:39 -07:00
index.html codename is domus for now 2023-07-01 11:25:55 -07:00
LICENSE add license 2023-07-05 14:56:14 -07:00
Makefile profile picture image cache 2024-02-27 14:26:02 -08:00
preview fun large profile grid preview 2024-04-24 12:49:06 -07:00
README.md readme: document previews 2024-04-19 22:16:54 -07:00
rust-toolchain progress 2022-11-06 19:32:13 -08:00
SECURITY.md Create SECURITY.md 2024-04-09 23:05:31 -05:00
shell.nix add rustup just in case 2024-04-11 14:35:02 -07:00
Trunk.toml trunk: notedeck 2023-07-06 08:40:50 -07:00

Damus

A multiplatform nostr client. Works on android and desktop

Alpha! WIP!

Desktop

The desktop client is called notedeck:

notedeck

Android

Look it actually runs on android!

Usage

You can customize the columns by passing them as command-line arguments. This is only for testing and will likely change.

$ ./target/release/notedeck "$(cat queries/timeline.json)" "$(cat queries/notifications.json)"

Developer Setup

Desktop (Linux/MacOS, Windows?)

First, install nix if you don't have it.

The shell.nix provides a reproducible build environment for android and rust. I recommend using direnv to load this environment when you cd into the directory.

If you don't have direnv, enter the dev shell via:

$ nix-shell

Once you have your dev shell setup, you can build with this command:

$ 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

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

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.