Starting to think damus needs an android app
Discussion
naw we already have some decent ones.
I will enjoy comparing you with Amethyst
License to think, as without there are cases turning true.
#mainvolume
Yes.
Cmooo
And eventually, web.
๐๐
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
๐
#[0]
yesss ๐ซ
๐๐ฝ๐๐ฝ send it on every platform
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.
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.
Agreed! His responses seem callous. Plebstr works great! Damus is the king!
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...
๐ซ
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?
https://github.com/nostr-protocol/nips#criteria-for-acceptance-of-nips
Actually, https://filestr.vercel.app/ implemented NIP-94 before Amethyst.
cc #[6]
Thank you for the correction. Still, isnโt the order supposed to be implementation in two clients, then acceptance?
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).
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.
Sometimes implementation is important, yes.
But communication is always more important.
๐ซ
That didnt take long for the in fighting to start
Plebstr isn't in a trust worthy app store yet. I only really trust f-droid at this point: https://f-droid.org
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.
Nah
Yess ๐๐ซ
Ideally, Mobile clients should all strive to create apps for both IMO.
Why. Other platform users can just use another client. Specialization is good. Multi platform is very difficult and often lead shitty UX.
Because if you're running a business you would probably want to reach ๐ฏ of a market instead of just 50%
Bring it on.
Texas proms. What?!
Canโt we hash this one out? Everything has been so collaborative thus far.
apparently not. Me and #[4]โ have already voiced our concerned. #[2]โ seems ok with breaking images in every other nostr client .
#[2]โ can we come back to a common standard here?
Standards will become a thing of the pastโฆ.

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.
nostr:note1xvlkjlkn6nj57lyyl8emjzdttarkkh4368w57tkm9uw78fue0l9qsynmrw
"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.
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.
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.
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.
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.
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..
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?
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.
nostr:note1rql5wuhmzxnt3kfxhltx6qzwcv98x7nua8s879jnl6z95328kkcs8cda72
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
#[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. https://nostr.build/av/68e79ada592a37720ecdee593cc8264948cd5009c243d81b9aca8ec39fe88f3c.mov
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. :)
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?
The more the better
๐คฆโโ๏ธ๐คฆโโ๏ธ๐คฆโโ๏ธ๐คฆโโ๏ธ๐คฆโโ๏ธ
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]
๐๐จ๐ปโ๐๐ซ๐จ๐ปโ๐
we got plebstr
๐
Yes ๐
Yes Android is mendatory
๐๐๐๐ค
Cross platform is good but It would be ideal to figure out how to make all clients interoperable or the Nostr protocol is going to be siloโed greatly hindering the intent of the project.
Itโs better for developers in different area to come up lists of NIPs that an app should implement.
What I meant is, for example,
Social Apps should do nip 1 2 3
DM should do 2 3 4
Blog should do 3 4 5
Something like this
Then we can visualize the overlapping and reduce the smallest common set of NIPs
Client diversity is also important. Interoperability is useful below a certain threshold.
yes pls
#[0]
how is everyone getting that little lightning symbol next to their name
๐ฏDamus for Android would be great!
What it takes, it takes!
When Windows Phone?
Long overdue! I canโt recommend anything to my Android friends.
Yup. Solid plan. Itโll expand your fiscal reach in the long run, is a win from an equity standpoint, and makes you a dynamic leader in the space. Damus as only iOS is leet no doubt, itโs just that gets played out.
Gotta go grab some ๐ฟ
Then you are facing the ugly problem of cross platform mobile. Donโt use Flutter. Dart is a tasteless language. The worst part of Flutter is Dart.
๐
๐ And website :-)
๐
#[0]
#fun #poking #beehive #hehe
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!
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.
๐คฆโโ๏ธ๐คฆโโ๏ธ๐คฆโโ๏ธ
I think Apple needs and android OS interface for the users who are forces to use Apple ๐คฃ๐คฃ๐
๐ค๐ซค๐คฏ
How would Swift run on Android?
I'm sure android users will be flocking to the app with no backup functionality.
Web version even better... no app ;)
the web sucks tho
arent using apps worse?
Web apps are run in an app (a browser).
lol fair enough
But many people can access if that is your overall goal
Iris is really nice!
smart. most people with cell phones are android users
Androidamus
Needs to be on IOS share sheet!



?cid=2154d3d7gy1qmpjjr7yk3frmh2ji4bz5qobu27stv2917160&rid=giphy.gif&ct=g
