#
App
This is a client that displays and posts events related to short term accommodation lets over the nostr network.
#
Getting Started
Install Flutter
By default flutter launches in mock mode. It will not attempt to connect to relays or swap services. To connect to other environments, check the VSCode debug launcher.
flutter run
#
Structure
./lib
├── config # Configs like default relays and EVM-RPC URLs
├── core # Utils and mic
├── data
├── models # Data models and mock data
└── repositories # Classes for fetching certain types of data
├── logic # How data flows through app
├── presentation # How data looks
└── README.md
#
NIPs Utilized
- NIP-01: Basic protocol for event creation and subscription.
- NIP-05: Mapping Nostr keys to DNS-based internet identifiers.
- NIP-09: Event deletion for removing listings or messages.
- NIP-17: Encrypted direct messages for secure communication between hosts and guests.
- NIP-33: Parameterized replaceable events for creating and updating listings and bookings.
#
Dependency injection and mocking
- Each
Screenwidget just handles the mapping of query and path parameters onto it's correspondingViewwidget. This allows for catalogging widgets while only using their TypeSafe parameters, rather than having to pass in query strings etc.
#
Improvements
- Swap in transaction should go straight into the contract
- Escrow contract COULD encode bolt12, and then escrcow can do the swap by proving they paid a corresponding bolt11 invoice and releasing the funds to themselves. Out of scope.
#
Assets
The assets directory houses images, fonts, and any other files you want to
include with your application.
The assets/images directory contains resolution-aware
images.
#
Localization
This project generates localized messages based on arb files found in
the lib/_localization directory.
To support additional languages, please visit the tutorial on Internationalizing Flutter apps