Amethyst brings the best social network to your Android phone. Just insert your Nostr private key and start posting. This is a native Android app made with Kotlin and Jetpack Compose. The app uses a modified version of the nostrpostrlib to talk to Nostr relays. The overall architecture consists of the UI, which uses the usual State/ViewModel/Composition, the service layer that connects with Nostr relays, and the model/repository layer, which keeps all Nostr objects in memory, in a full OO graph. The repository layer stores Nostr Events as Notes and Users separately. Those classes use LiveData objects to allow the UI and other parts of the app to subscribe to each individual Note/User and receive updates when they happen. They are also responsible for updating viewModels when needed. Filters react to changes in the screen. As the user sees different Events, the Datasource classes are used to receive more information about those particular Events.
Features
- Events / Relay Subscriptions
- OpenTimestamps Attestations
- Private Messages
- Mnemonic seed phrase
- WebBrowser Signer
- Replies, mentions, Threads and Notifications
- Delegated Event Signing