For my next school project I’m thinking about doing a simple #nostr client in Kotlin. Is there an easy way to get started?
#asknostr
For my next school project I’m thinking about doing a simple #nostr client in Kotlin. Is there an easy way to get started?
#asknostr
There is NDK for web and Rust and python, not sure about Java & Kotlin. Maybe you can look at Amethyst/Amber source code to check what libraries are used
My colleagues built Nostrino, a Kotlin SDK for Nostr. Though it hasn’t had activity for 6 months and I don’t know what state it’s in. nostr:npub1sdnq9yr3kwzaauhylwty6ttnum6zgcf34s0lwcythjcew8zss8fqlm45zq nostr:npub1nj0v6ly23sc5ftjghap9kevjerjncwzlmqehd48lklm2cxshh74sge88gs
https://github.com/cashapp/nostrino
There’s also the Rust SDK, which has bindings to Kotlin. Unsure about its state either. nostr:npub1drvpzev3syqt0kjrls50050uzf25gehpz9vgdw08hvex7e0vgfeq0eseet
https://github.com/rust-nostr/nostr
Lastly, nostr:npub1gcxzte5zlkncx26j68ez60fzkvtkm9e0vrwdcvsjakxf9mu9qewqlfnj5z might be able to offer some insight on if and how to base your work off Amethyst.
Interesting, is CashApp looking to build a nostr app? If you can say
Not at the moment, that I know of, but there’s a group of us who are Nostr enthusiasts there. nostr:npub1nj0v6ly23sc5ftjghap9kevjerjncwzlmqehd48lklm2cxshh74sge88gs and a few others built nostr:npub1plasmahqry63jkfw3lwyucut64srprzkm5dnk0ura6sf7fxnjqsqju5z7h outside work and I believe it uses Nostrino. It looks like the last commit was a few months ago.
🙏🏼
You can use quartz from nostr:npub1gcxzte5zlkncx26j68ez60fzkvtkm9e0vrwdcvsjakxf9mu9qewqlfnj5z
https://github.com/greenart7c3/Amber/blob/master/app%2Fbuild.gradle#L72-L75
https://github.com/greenart7c3/Amber/blob/master/settings.gradle#L14
Quartz is very basic: Just models and the crypto stuff. We are slowing moving things from Amethyst over there.
The relay connection management via RelayPools we all use is completely outdated. And I think there will be different relay connection strategies for different apps. It's unclear if there is a way to create a single lib that provides enough flexibility on relay management to make it work for a good number of apps.
The Nostr SDK bindings aren't aligned with the rust library yet (some methods/structs aren't exposed), but are ready for use and maintained. Unfortunately aren't available docs/examples for Kotlin (hope soon to include them in the book).
https://central.sonatype.com/artifact/io.github.rust-nostr/nostr-sdk