XRPL-Labs/Xaman-App

Q: link directly to xApps

Opened this issue · 7 comments

From @nixer89

one question: Why was the decision made to directly (natively) link from the XUMM app to other xApps. from what I remember, this is something you guys wanted to avoid (speaking about the "NFT Viewer")

can you also link everyone into my "Token Trasher xApp" when the user tries to remove a token which has a balance? 😛 (I can see these type of questions coming from other dev's maybe?) So there is some type of inequality now between xApps. Some are "endorsed" by XUMM via directly linking from the XUMM UI (not the xApps menu)

and others (most) are only available in the xumm xApp menu

so 3 apps have currently a big advantage imho

@nixer89 I still stand by not natively linking to specific xApps, but for NFT viewing I feel we must make this exception:

  • There is no standard
  • Different types of NFTs need different types of viewers
  • I expect more to come

All NFT viewers being accepted to Xumm as xApp (if they pass our quality, etc. requirements) will also be in the NFT 'launchpad' xApp as a viewer.

It's not an endorsement, it's just a subsection (selection) of the "More xApps" section, limited to NFT viewer ones.

The advantage of the three is just because they are the only three, today. Come more & the list will grow. All NFT viewers the same treatment. At which point it's no longer an advantage of specific viewer xApps: it's just showing them in the context where they matter.

At which point it's no longer an advantage of specific viewer xApps: it's just showing them in the context where they matter

And this is exactly the advantage I am talking about. They are shown in a context where they matter. easy accessible. A free promotion. I understand the reasoning, but it creates a kind of 2 class system within the xApps. Some are shown in places where they matter and are easily accessible. Others are only accessible via the "view more xApps" and "hard to find" in a sense.

So to find suitable NFT-viewer xApps it is fairly simple now for the user: Open your NFT, click on it and see available xApps.

For all other apps he must do one of these steps:

  1. the user clicks on "View more xApps" and randomly checks the list of available xApps and thinks "oh, this might be interesting for me, lets check it out"
  2. xApps do self advertisement on other platforms such as twitter and attract users
  3. user tries to find a function he is missing in XUMM and checks the "xApp store" if there is an xApp for it

As example, some (non NFT viewer xApps) might also make sense to be accessible where they matter:

  • "Transaction Export" xApp in transaction list
  • "Token Trasher" xApp when a user tries to remove a token with a balance
  • "Dex-Trade" xApps when facilitating trades
  • "On/Off Ramp" xApps when a user sets up a new account
  • etc. etc.

Imho there is going to be a 2 class system in the xApps now. The ones easily accessible by directly linked in XUMM where they matter.
And all other ones which the user "finds accidentally" by clicking the view more xApps section.

Not sure how all other xApp devs think about it but it kinda demotivates me.

ps: I don't have anything against NFT viewer xApps :D <3
Just how XUMM currently gives them an advantage over all other xApps.

pps: I don't want to start any trouble and don't want to hurt anyone's feelings, just wanted to publish my thoughts about it.

Please don't look at it as two class xApps: this is not an xApp class: this is just for NFT's: we can't possibly ever support all the different NFT types & viewing options.

Showing certain xApps in a context aware way (export @ transaction list, trasher @ token remover, OnOfframp on new account) makes perfect sense imo. This is something I'll ask our UX'er to take a good look at.

I much rather make the in-context experience more universal than to remove NFT viewing xApps from where they matter.

It's a good point that other xApps are relevant in other flows as well. Thank you!

(P.S. On/Offramp on unactivated account Home is something that's indeed already on the roadmap)

As the developer of the TX exporter xApp, I would like to add my input.

The addition of the NFT xApps in-place is a net benefit (they should not be removed), but why only do this for NFT viewers, as nixer says, there are other xApps that would benefit from an in-place promotion.

Perfect example is on the events screen, there is a filter icon, why not an export icon next to it, that loads the tx exporter xApp? It is an obvious place to link to it.

Seems intuitive and beneficial to the end-user and I don't really see it as an endorsement. You are simply improving the user experience by offering them access to a tool that xumm supports, you're just making it easier and more intuitive to find.

As a security feature, you could display a simple warning before load, to explain the user is about to use an xApp for augmented functionality. If worded right, this would educate users, but not scare them from using it, then you mitigate risk, whilst improving user experience. You could easily have a xumm setting to suppress warnings in the future.

To me if you can enhance the user-experience for very little effort, it is worth looking at a fair way to implement these additions where they improve user-experience.

Either way I still love xumm and will continue to develop on the platform where i have the opportunity.

N3TC4T commented

xrpl365 We need to make a competitive and free environment for xApp developers, if we add export button next to the filter icon in the event tab, we shouldn't only load one specific xApp, but load a list of xApps that have the requested functionality, like how it's currently working with NFT viewers.

I suggest two changes for the new xApp list:

  1. We add xApp categories to the list, NFTs, Dex, On/Off ramp, Side Chain, Utilities etc ...
    Note: selecting the names for categories can be a little bit tricky as they can grow a lot if they haven't been choosen correctly at first and that's gonna be confusing for users.

  1. We let user to be able to select the xApps in this list, as a xApp shortcut(this can be done by using local datastore). it's a great place for this as it's a quick way to access to an xApp you usually want to use or scan a payload (two main way the user interacts with the third party apps).
    we can change the view more xApp button to an edit icon or button.

if we add export button next to the filter icon in the event tab, we shouldn't only load one specific xApp, but load a list of xApps that have the requested functionality, like how it's currently working with NFT viewers.

I think this is fine, assuming there is more than one app, no point displaying a choice of one?
The point is to improve user experience without sacrificing security and your suggestion would do that.

As for your other points I agree, clearly as the eco system grows you are going to need a more sophisticated mechanism for finding apps.

Here is an idea... allow devs to tag their app with obvious keywords and then have a simple search of those tags, so in my case I would choose to tag "export", "csv", "download"... then anyone searching for an export function doesn't need to guess what category to be in and doesn't need to know the name of the xApp. This enables search by functionality.

I like the idea of user configured lists too; anything that lets a user customise their own experience is a good thing in my book.

Thanks for the positive engagement :-)

@N3TC4T Added & updated the API;
/api/v1/app/xapp/store/v1 for the available options, categories keys

One special fake category is message which yields the message property with the header message. The id increments, if it's higher than the last closed message it's new and should be displayed;

/api/v1/app/xapp/store/v1/message:

{
	"message": {
		"id": 1,
		"title": "What's new",
		"content": "We see a growing use of xApps development and usage. This positive trend made us decide to give xApps a more prominent place in Xumm."
	},
	"categories": {
		"featured": null,
		"popular": null,
		"recent": null,
		"all": null
	}
}

With a comma the categories can be included to the response:
/api/v1/app/xapp/store/v1/message,featured,popular
or
/api/v1/app/xapp/store/v1/all

If an xApp is listed: false it's a personal entry, not publicly listed, but present because they opened it before and it's not a listed xApp, or because they are a tester (we don't have to do anything with this, but who knows it could clarify if this adds an icon?)

If personal_flag_based: true it's not a public xApp, but being conditionally displayed (we don't have to do anything with this, but who knows it could clarify if this adds an icon?)

As discussed on search: