Open lberrymage opened 1 year ago
Developers should be able to submit descriptions along with their app. These descriptions should follow a (potentially versioned) well-defined format in the unsigned repository metadata; HTML formatting will not be supported. For the initial implementation, developers should be able to submit a description for one of their existing apps including a short (~80 char max) description along with a significantly longer long description which can be sectioned into paragraphs.
If there will be website for listing/searching Accrescent apps too, the HTML format should be supported, so I think markdown format would be good as it supports paragraphs, lists, headings and eventually tables or images.
Something like markdown would be ideal. The reason I call out HTML is mostly for rendering purposes. I'd rather not render untrusted HTML via WebView just for the app description. Sanitizing that for script injection etc. is another opportunity for error that I don't think is necessary for a feature this simple.
The source format doesn't matter as much for the website since the pages will need to be generated from the metadata anyway, although markdown may make that easier.
Looking into it more, I think we could use commonmark-java to create an AST, and instead of rendering it to HTML, pass it to Compose to generate a composable tree as described in this article. I really like that idea initially.
Rendering from the AST ourselves also presents another advantage: we can explicitly choose what to support rendering. For example, if we don't want to support images in the description, we can choose not to render them, or if we only want to allow two levels of headings instead of six, we can do that.
Limiting the format in this way ensures a degree of consistency across the board which makes descriptions both more aesthetically pleasing and, in my opinion, more useful since users can hold consistent expectations for what an app description includes.
In terms of where to source the descriptions from, it would be great if existing structures/folder locations used already by Google Play and/or F-Droid could be re-used, as to limit the effort for existing apps.
What do you mean? Developers will upload/update descriptions through the developer console (or eventually its API), so I'm not sure what could be re-used per se.
A few thoughts on this:
All apps should submit both a short and longer description.
Descriptions should not include:
We should have guidelines for how the descriptions should be structured to ensure that they are as uniform across different apps as possible. I wonder if Play Store has any guidelines for how developers should ideally write app descriptions? That'd be nice to see.
What do you mean? Developers will upload/update descriptions through the developer console (or eventually its API), so I'm not sure what could be re-used per se.
For AntennaPod, Triple-T is used to manage the metadata. F-Droid understands & respects the file structure: https://f-droid.org/en/docs/All_About_Descriptions_Graphics_and_Screenshots/#triple-t-structure
I guess what I had in mind is some uploader tool for Accrescent that leverages this file structure as well (or maybe even get support for release management in Fastlane for Accrescent).
wonder if Play Store has any guidelines for how developers should ideally write app descriptions? That'd be nice to see.
Here's what I could find:
Just a hint: You might wanna take inspiration from the AppStream standard from the Linux Desktop world. Docs are here.
I'm no Android developer, but I guess it could be beneficial in the long term to at least come up with something easily convertible to/from AppStream metadata (and not reinvent the wheel, as the saying goes ☺️).
Implementation has begun at https://github.com/accrescent/parcelo/tree/descriptions.
Short descriptions are now merged into main and slated for next week's release.
I'm deprioritizing long descriptions for a little while to prioritize infrastructure and scaling improvements, while are now reflected in the roadmap.