NewPipe icon indicating copy to clipboard operation
NewPipe copied to clipboard

Help-Tours throught NewPipe

Open TobiGr opened this issue 8 years ago • 8 comments

As already mentioned in #857 I'd like to see a kind of beginner/"Newbie" tour so new users learn some basics things about NewPipe and we can easily make announcements / introduce new features. I have two tours in mind which could be accessible via the settings and the should automatically start at the first launch of the app / detaills page.

First launch intro

Welcome About NewPipe
1. We should welcome our new users. 2. Spread the idea of NewPipe and tell / show the people how it basically works. (In the middle there should be easy animations with: 0. Trendings, 1. Search, 2. Video detail page, 3. Video launch )
Different players Downloads
3. Show our three awesome players (animations here and everywhere else too) 4. Promote download feature
Different players Downloads
5. What's new in version x 6. Explore NewPipe and other tours

Playlist & Players

Since there are many improvements in queue I didn't think about this too much, but my plan was to

  1. Give a detailed introduction into all three players, resolution
  2. Explain Playlists and longpress behaviour.

Please tell me what you think about that (especially the first one) so I can start implementing it soon.

TobiGr avatar Nov 18 '17 23:11 TobiGr

I think popup tooltips should be useful to (in addition to tour). Many users skips help-tours in apps because they already familiar with basics. But with it they skipping some hidden features.

Also, tooltips (which appears when activity shown) should be more useful for "Hold to Append" tip and other similar cases. (Now it has tooltip that appears when pressing button and quicky disapears after releasing, so some users may cannot read it)

(I mean tooltips like that: https://user-images.githubusercontent.com/2083052/32987809-511d3dc4-cd06-11e7-848a-d53e008f02c1.png)

dcoder-mm avatar Nov 19 '17 05:11 dcoder-mm

For the 'tour', will we just use https://github.com/apl-devs/AppIntro? (Off-topic: how did you make those 'screenshots'?)

I also have to agree with @dcoder-mm.

ghost avatar Nov 19 '17 10:11 ghost

Yes tooltips sound also good.

For the 'tour', will we just use https://github.com/apl-devs/AppIntro? (Off-topic: how did you make those 'screenshots'?)

@wb9688 Yes I used AppIntro. With implementing I meant stuff like animations, category in the settings, and a working "what's new" dialog. Adding a library and some strings isn't real programming :)

TobiGr avatar Nov 19 '17 12:11 TobiGr

I don't really see the need for a tour. Newpipe is not a complex app. There's very few windows in the app and the advanced features are either obvious or labeled with text.

ghost avatar Nov 25 '17 01:11 ghost

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

stale[bot] avatar Dec 01 '18 20:12 stale[bot]

What do you think about opening the Settings Activity directly upon first start of the app? Specifically, the Video and Audio menu, where we could flash/highlight the resolution setting temporarily to draw attention to it?

I think this could encourage users to browse the rest of the settings too.

I'm thinking of a welcome dialogue shown in Settings, something like:

"Hi! Welcome to Newpipe! This app is quite different from Youtube, Soundcloud or other apps you may have used in the past, so we encourage you to have a look through the settings and change them to your preference. Some important ones you may want to know about:

  • Default resolution (for the main player, and also the popup player)
  • Preferred 'open' action (default action when opening a link from another app)
  • Minimize on app switch (should Newpipe continue playing in the background if you switch to another app?)
  • Gesture controls for volume and brightness
  • Download folder (Yes! You can download too!)
  • App theme (self-explanatory)
  • Watch and Search History (who wants to know what I'm watching!? ( ⚆ _ ⚆ ) )
  • App language and content language
  • Content of main page (which tabs to show, in what order)
  • Import and Export Backup

Once you're done, back out of the settings to see the main interface! We hope you enjoy using the app!"

This way, we don't have to design an entire app tour which is used only once and never again. An app tour would have to be updated constantly to explain new features and to not conflict with changed code.

opusforlife2 avatar Sep 13 '20 11:09 opusforlife2

The screenshots are good to understand the features of NewPipe. This should be one of the basic features to be implemented because it helps naive users and newbies to understand how to use NewPipe. This issue has been open since 3 years. Is it that difficult to implement?

tiwarys avatar Dec 25 '20 15:12 tiwarys

I added this to the rewrite project, as I think it should be addressed during the rewrite. In addition to a few (<=6) introductory panels at the beginning, like Tobi suggested, I think we should add some popups here and there suggesting users to perform some actions or explaining hidden functionality. These popups should be small, easily dismissible, non distracting, and appaer a few times after a new install (I mean that the same popup will appear multiple times), and then get exponentially less frequent over time. Here is an example of how it could be useful:

Image

I think this should be implemented in a way that makes it super easy for devs to add a popup like this anywhere in the app, so we don't have excuses for not adding them anymore. Therefore I would suggest an implementation like this:

  • Make it a Compose Modifier that can be applied on any @Composable, e.g. Modifier.popupHint(). We'll call the @Composable to which the Modifier is applied "caller" from now on.
  • The modifier takes these params: text: String to show in the popup, key: String a unique key used to save information about this popup to the database, frequency_multiplier: Float this is = 1.0 by default and setting a value higher/lower than 1 means that a popup will appear more/less frequently than "normal" (what "normal" means is defined below).
  • There should be another Modifier constructor that takes a PopupHintSpec object with the same fields (except that they are stored in a data object that can be reused in multiple places, in case the same popup needs to appear on multiple buttons).
  • The implementation of the popup should take care of automatically rendering itself in the right place, without the caller having to worry about that. So the popup should not appear at all if the caller is out of the screen, and otherwise should be visible on screen in its entirety (especially the X button needs to be visible at all costs!). Its width should be as small as possible while still keeping the text within, say, 3 lines. The popup should not be on top of the caller, but rather below/on the side, and the tick of the box should point towards the caller.
  • The UI should be rather small and shouldn't obscure the rest of the UI or anything like that (the user should be able to ignore the popup until a later time).
  • The Modifier should use its key to store to SharedPreferences/database some information about how many times the caller has appeared so far, so it can decide whether it should be shown again. I would suggest some kind of exponential decay in how often it is shown: e.g. show the popup only if the counter is a power of 2. When a popup has never ever been shown before (and thus there is no data about it saved in the db), I would initialize its counter to a small random value, so the first time each popup appears is randomized, and the user does not get 10 synchronized popups all at once. Moreover, initializing to, say, a value of 10 will make it so that the first popup will appear after 2^4-10=6 appearances, and then again after 2^5-2^4=16, then after 2^6-2^5=32, ... We'd need to tune the various parameters here to make sure there are not too many popups.
  • Every time a view with a Modifier.popupHint() is instantiated, the counter is increased by 1, except for when the popup has to be shown: in that case, show the popup and wait for the user to press X before increasing the counter (so popups won't be missed).
  • Maybe there is some way in Compose to make sure no two popups with the same key appear on screen at the same time? This is anyway only relevant for popups e.g. on items in lists, which I guess is something we won't use.

Let me know your thoughts :-)

Stypox avatar Nov 06 '25 12:11 Stypox