Starting to think damus needs an android app
Login to reply
Replies (129)
I will enjoy comparing you with Amethyst
Yes.
Do it!
It's the unspoken rule.
If you make an app for iphone you must then remake the same app for the 47 other genders of phones
That would be interesting to see.
👀
#[0]
It does
#[0]
yesss 🫂
There are others (Nostros and Nozzle) but none are as stable or feature rich as Amythest.
A few more mature clients would be nice.
What took you so long? 😝
Why?
Care to elaborate?

He’s having creative differences with #[4], the man in charge of Amethyst.
Bring it on.
🌎👨🏻🚀🔫👨🏻🚀
More like vitor is doing something extremely disruptive to the rest of nostr and he doesn’t seem to care. Oh well, it’s his users who will suffer. I am no longer going to recommmend amethyst and point users to plebstr instead.
Yes please.
👀👀👀🤞
yes pls
#[0]
Agreed! His responses seem callous. Plebstr works great! Damus is the king!
💯Damus for Android would be great!

Can’t we hash this one out? Everything has been so collaborative thus far.
I do care. That's why I am being disruptive. NIP-94 was discussed for 2 months and merged.
I am not the one refusing to go along with everybody else here...
Yes, please! That would be great!
apparently not. Me and #[4] have already voiced our concerned. #[2] seems ok with breaking images in every other nostr client .
👀
You mean the only zap fight wasn't drama?
🫂
As an outsider to Nostr development, this is something I’m puzzled by. According to the GitHub page, “[NIPs] should be implemented in at least two clients and one relay — when applicable” before they’re accepted. Yet it seems as though Vitor is the first to implement NIP-94?

GitHub
GitHub - nostr-protocol/nips: Nostr Implementation Possibilities
Nostr Implementation Possibilities. Contribute to nostr-protocol/nips development by creating an account on GitHub.
That didnt take long for the in fighting to start
💜 And website :-)
Gotta go grab some 🍿
HA! @ "Maybe some dentists"
Why. Other platform users can just use another client. Specialization is good. Multi platform is very difficult and often lead shitty UX.
👀
#[0]
Because if you're running a business you would probably want to reach 💯 of a market instead of just 50%
#fun #poking #beehive #hehe
Better aim for 100% of your platform market I think rather than providing a mediocre UX on both platform and getting a lower share in the end. Except if you have lot of ressources to put into such thing it's probably a mistake.
Actually, https://filestr.vercel.app/ implemented NIP-94 before Amethyst.
cc #[6]
Plebstr isn't in a trust worthy app store yet. I only really trust f-droid at this point: 

F-Droid - Free and Open Source Android App Repository
F-Droid is an installable catalogue of FOSS (Free and Open Source Software) applications for the Android platform. The client makes it easy to brow...
Checkout Flutter if you haven’t yet: flutter.dev
If Damus was written using Flutter, one codebase (in Dart) would be available for both Android and iOS. Possibly even web!
I prefer native solutions for maximum performance
totally
That’s fair. Flutter is quite impressive in terms of performance from what I’ve seen. Not going to say it’s faster than native but it’s better than say react-native.
I understand recommending the Android client that suits more the way you think nostr micro-social should work, of course.
But building a Damus Android client because you don't agree with Amethyst direction looks like wanting to control yourself where micro-social nostr is going, imho.
Just my opinion, ofc.
Just call me Nostradamus. Honestly, 1 client with many devs (like #bitcoin core) is safer than hundreds of clients with a couple devs each. The only way to achieve such a thing is to make a multiplatform app that everyone can rally behind.
View quoted note →
Thank you for the correction. Still, isn’t the order supposed to be implementation in two clients, then acceptance?
The more the better
omg please so much
I picked up Plebstr recently, but it seems very unstable on my Pixel 7 Plus. Crashes regularly.
Theoretically, yes.
But it doesn't always work like that.
Sometimes a single implementation pushes a NIP acceptance (i.e. Zaps or Repost in Damus), sometimes implementation waits till a NIP merge, even months later!! (I.e. NIP-42 Auth).
:( yeah it’s pretty new
No, screw apple they're terrible.
It's missing a lot of features for sure.
Would building a Damus app on Android be easier than just implementing NIP-94 on Damus...🤔
🤦♂️🤦♂️🤦♂️
I will never implement nip94 for inline images in damus because that would be insanely rude to every other nostr client.
A lot of us refuse to use an OS that isn't open source
What's the beef with the images about? I'm on Android so I haven't noticed I guess.
In short, no one can see amethyst users images because of nip94
Well that sucks.
I think Apple needs and android OS interface for the users who are forces to use Apple 🤣🤣😂
Lies
Gangs of Nostr. #[4] VS #[2] .
Hm. I think the recent unpleasantness could have been avoided if everyone had seen Vitor’s implementation before NIP-94 was accepted. Will would have objected, and there wouldn’t have been consensus to merge the NIP.
here we go 🙄 linux master race right?
Sometimes implementation is important, yes.
But communication is always more important.
🫂
A common standard is already here:
Pasting an image URL.
#[3] has 'just' added a new way of embedding an image via a nostr: link.
But the old way is still working, isn't it Vitor?
🤷♂️
More or less anything that's FOSS. I use OpenBSD for routers and firewalls, GNU/Linux for workstations and some servers, FreeBSD for ZFS storage. GrapheneOS (Android) on my phone. On my IBM POWER9 architecture I can't use Windows or Mac. My phone apps...
#[4]
I’ve been working on #[4] with the bit of free time I have. But if #[5] and #[2] can align on strategy, I'd be all for that. I won’t be able to move fast enough, so we’d need additional contributors 🫂
🤔🫤🤯
How would Swift run on Android?
Happy to help.
Nice collection. I discover a couple of them.
I definitely recommand andOTP instead of FreeOTP+.
Thanks. andOTP is nice but I've not seen any updates in 2 years. FreeOTP+ is actively being maintained.
I'm sure android users will be flocking to the app with no backup functionality.
Yes please.
☝️What he said.
the web sucks tho
Web version even better... no app ;)
arent using apps worse?
Web apps are run in an app (a browser).
lol fair enough
i like web sir
But many people can access if that is your overall goal
There are plenty of good web clients (snort/iris) a fast native experience is the *main feature* of mobile clients
smart. most people with cell phones are android users
Competition is good! 🫱🏼🫲🏽 When the users make the demands and not advertisers, awesome shit is gonna happen! 🤯
🙏
Iris is really nice!
This is what the big tech loves and where every nostr user loses.
I have seen this happening too many times.
For example, libertarians have so many factions, and the world is sailing towards authoritarianism and socialism again while they focus on internal arguments.
It's not a standard if nobody follows it. Early users and builders are the founders of the protocol. The choices we make define the future outcomes and the direction for the whole ecosystem.
#[0]
#[1]
🤦♂️🤦♂️🤦♂️🤦♂️🤦♂️
Androidamus
"We have too many standards! Let's make one more standard to solve the too many standards problem!"
At this point, that probably won't work as intended.
It works for #bitcoin, and it will work here if the new standard is excellent.
Wait and see… Universal consensus is a deep beauty of decentralized protocols, because social consensus doesn’t scale — as you can probably tell by the bickering between different client-devs.
Open standards are pretty cool :)
Switching clients is simply proof that it isn’t centralized — like running knots instead of #bitcoin core. Although, 95%+ run bitcoin core and that is for the best. I think the same exact rules apply here.
Bitcoin and Nostr are different though, because Nostr doesn't have any consensus algorithm. If you stubbornly choose the wrong chain, you lose money or degrade your security. If you choose "the wrong nostr client" (which doesn't exist) your client is not interoperable with other clients. Factions emerge and social networks split, but there is no economical incentive to switch clients whatsoever.
It seems Snort also implemented NIP-94 before Amethyst, so that would make Amethyst the third nostr client implementing.
#[4]
Those developer factions will not include their users. Users of the clients will always want to see messages from each other, no matter what client they are using. Users are not going to be ideologically split by the ideology of the authors of their favorite client.
This means that the client developers will find themselves under very intense pressure to cooperate and interoperate. They can stamp their feet all they want; and throw all the tantrums they like. But they WILL eventually be forced, by their constinuents, to work together.
They can do this the easy way, or the hard way, but they will eventually do it.
Because WE are nostr, not THEY.
>From: (cypherhoodlum) at 04/25/23 08:04:32 on wss://relay.damus.io
>---------------
>Bitcoin and Nostr are different though, because Nostr doesn't have any consensus algorithm. If you stubbornly choose the wrong chain, you lose money or degrade your security. If you choose "the wrong nostr client" (which doesn't exist) your client is not interoperable with other clients. Factions emerge and social networks split, but there is no economical incentive to switch clients whatsoever.
Needs to be on IOS share sheet!
I can’t see many images people post now because of this Damus/Amethyst drama. Interoperability is already being destroyed. That was the entire point of my post. It’s the exact same principle. If you don’t get it, that’s fine..
Relying on forkable universal consensus > Relying on the fragility of peer pressure
True, you have a point there. If a rogue dev breaks interoperability badly enough, no one will want to use the app anymore, forcing the dev(s) to either ensure interoperability or lose contributors and users. Nothing a single dev can do about it. That's the beauty of Nostr.
Yeah my point was there's not as much incentive to mend the already breaking interoperability in Nostr than there is in Bitcoin. Although there will be enormous pressure to make apps on Nostr fully interoperable, it's not as clear who is in the right because there is no consensus mechanism like there is in Bitcoin. The longest chain wins. The fork with the highest hashrate wins. Which client implementation wins on Nostr? Who knows? What do you mean by universal consensus btw?
Sybil-resistant data discovery and decentralized data storage on untrusted computers is the true magic; it’s the heart of the cypherpunk. 🐝
A million Twitter clients isn’t innovation. Also, it’s quite confusing to normies when I tell them there are many apps for the same social media…
Hear, hear. Decentralised data storage on untrusted machines is exactly what the NostrGit project needs to succeed. Gotta host that code somewhere.
Universal consensus means a single set of rules everyone can rally behind. In Bitcoin, the longest change does not determine the consensus rules.
First, the consensus rules determine what can be a valid chain. Then, the longest chain following those consensus rules wins.
#Bitcoin Core has universal consensus because everyone rallied behind it as the ultimate full-node client. That’s what I’m suggesting here, with a multiplatform app.
View quoted note →
There would still be many apps no matter how good the universal specifications are. As you said previously, the Nostr protocol is not only for social media, far from it. And even within the social media use case, the apps are noticeably more efficient when coded natively for one specific platform. For example Flutter vs. Kotlin or Swift.
Kotlin just released multiplatform, and you just said Kotlin works well like Swift. There is another option beyond Kotlin that is very efficient too…
As for your first point, that’s the very problem I’m going to solve. Watch the magic unfold this year.
Oh, that's very cool if the performance remains! I need to look into it.
More-speech is written in Clojure, which works on Mac, PC, and Linux. It's about as cross-platform as you can get.
That's great! But then there is mobile of course.
Yes, So far, to my knowledge, no mobile platform supports Linux, OSX, or Windows. (Though some used to run Windows CE). One day perhaps...
I would love the communities of #Nostr to comment on MAUI.
MAUI is no longer in beta, unlike Kotlin Multiplatform. MAUI only requires a single codebase to create an cross-platform app on Windows, Mac, iOS, and Android.
Here is an abandoned MAUI Nostr app by #[6] @djbyter

GitHub
GitHub - kfrancis/NuSocial: .NET MAUI Nostr Client
.NET MAUI Nostr Client. Contribute to kfrancis/NuSocial development by creating an account on GitHub.
#[6] #[7] time to take Damus multi-platform?
This isn’t the right way of thinking about the problem. If you’re trying to draw parallels to Bitcoin Core development, what you’re looking for is not a multiplatform Nostr super app. What you actually want is a multiplatform Nostr SDK client library and relay library that people can use to build their own experiences that conform to the protocol.
Trying to build consensus through a multiplatform super app will fail and no one will rally around that. Consensus, in this case, is achieved through conversation, not technology. The reason why Nostr has worked up to this point is because it’s an open development environment. If you try to limit what developers can do with tooling, it will fail.
If you think Android needs a good Nostr client that doesn’t deviate from the protocol in a breaking way, there are already alternatives that exist. If they aren’t living up to expectations, send feature or issue requests or bounties to the developers. If you’re a developer yourself and the client is open source, contribute pull requests.
I can’t speak to Damus going to other platforms. That’s up to Will. But in my opinion, that’s the wrong way of thinking about the problems discussed in this thread.
Conversation doesn’t scale when the number of devs rises high — this isn’t a community village. That’s why the scope of conversation in #bitcoin is usually limited to softforks only.
Either way, regardless of my views there, a multi-platform app is a great idea for overall convenience. There could be multiple multi-platform apps.
I was simply asking what you thought of MAUI since you’ve been working with Kotlin Multiplatform recently.
The multiplatform app doesn’t create consensus by the way — it’s the superior rules that do. Everything else that isn’t backwards compatible with those rules is not allowed. That’s how rules work in #Bitcoin or #nostr, it appears.
The multiplatform app is just a bonus that increases reach.
I haven’t heard of MAUI. Looks like XML UI development, which some may or may not like. Regardless, I think multiplatform frameworks are great for developers who are willing to use non-native tools to build a uniform experience that everyone can use while minimizing code duplication, as long as the look and feel seem native feeling to the end users. If someone wants to build one, I’m all for it. More client implementations mean more choices for end users, it’s great for market competition and everyone wins. I think Plebstr is multiplatform but not sure what their stack is, they’re not open source.
I started building native iOS and Android for a new app because I wanted to have experience building purely native apps (I’m usually a backend developer)
We are using Flutter for multiplatform approach in Plebstr 😊
My opinion of flutter has just increased. The perf is impressive
Can be even better, we have things that need to get optimized.
I have been using flutter since 0.1.X version and it’s awesome, had issues, but those are being resolved and it’s getting better and better.
Thanks for sharing!
The note loading on Plebstr seems a little slower compared to Damus.
I’m truly not sure if Flutter is a better option than MAUI. Wish there were a more developed MAUI app to see.
Loading thread is not slow because of Flutter, it’s because it needs optimalization in our code tbh.
I have been using in past Android Native, Kotlin, Xamarin, Ionic, React Native and end up on Flutter.
Im sure that MAUI might be great, never heard of it before tbh, but I feel strong in Flutter and I enjoy using it 😊
Looking forward to seeing everything progress! 🎉
Apparently MAUI is an evolved version of Xamarin. Microsoft standardized it.
🌴
“MAUI represents an evolution of Xamarin.Forms, which Microsoft acquired in 2016. By integrating Xamarin into the .NET platform and rebranding it as MAUI, Microsoft aimed to provide developers with a unified .NET client application project model for building applications that can run on multiple platforms, including Android, iOS, macOS, and Windows.”
I'm working on it again after a nice chat yesterday. :)