William Casarin 69b7581a53 Notedeck Alpha 2 Release - v0.3
Thanks again to kernel and ken, as well as some new contributors:
kieran, daniel saxton for our alpha 2 release!

Added
=====

- Clicking a mention now opens profile page (William Casarin)
- Note previews when hovering reply descriptions (William Casarin)
- Media uploads (kernelkind)
- Profile editing (kernelkind)
- Add hashtags to posts (Daniel Saxton)
- Enhanced command-line interface for user interactions (Ken Sedgwick)
- Various Android updates and compatibility improvements (Ken Sedgwick, William Casarin)
- Debug features for user relay-list and mute list synchronization (Ken Sedgwick)

Changed
=======

- Add confirmation when deleting columns (kernelkind)
- Enhance Android build and performance (Ken Sedgwick)
- Image cache handling using sha256 hash (kieran)
- Introduction of decks_cache and improvements (kernelkind)
- Migrated to egui v0.29.1 (William Casarin)
- Only show column delete button when not navigating (William Casarin)
- Show profile pictures in column headers (William Casarin)
- Show usernames in user columns (William Casarin)
- Switch to only notes & replies on some tabs (William Casarin)
- Tombstone muted notes (Ken)
- Pointer interactions enhancements in UI (William Casarin)
- Persistent theme setup across sessions (kernelkind)
- Increased ping intervals for network performance (William Casarin)
- Nostrdb update for async support (Ken Sedgwick)

Fixed
=====

- Fix GIT_COMMIT_HASH compilation issue (William Casarin)
- Fix avatar alignment in profile previews (William Casarin)
- Fix broken quote repost hitbox (William Casarin)
- Fix crash when navigating in debug mode (William Casarin)
- Fix long delays when reconnecting (William Casarin)
- Fix repost button size (William Casarin)
- Fixed since kind filters (kernelkind)
- Clippy warnings resolved (Dimitris Apostolou)

Refactoring & Improvements
==========================

- Numerous internal structural improvements and modularization (William Casarin, Ken Sedgwick)

Signed-off-by: William Casarin <jb55@jb55.com>
2025-01-31 10:31:07 -08:00
2025-01-24 15:43:48 -05:00
2025-01-31 10:31:07 -08:00
2024-12-13 10:13:57 -08:00
2025-01-17 10:01:59 -08:00
2025-01-31 10:31:07 -08:00
2025-01-24 15:43:48 -05:00
2025-01-31 10:31:07 -08:00
2024-11-25 16:42:20 -05:00
2024-12-13 08:19:39 -08:00
2024-04-09 23:05:31 -05:00

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.

Description
A multiplatform nostr client
Readme 28 MiB
Languages
Rust 83.1%
Fluent 13.5%
Python 1.5%
Java 0.8%
Shell 0.3%
Other 0.7%