vfsfitvnm / ViMusic

An Android application for streaming music from YouTube Music.
GNU General Public License v3.0
8.65k stars 782 forks source link

Home page layout redesign #11

Closed noClaps closed 2 years ago

noClaps commented 2 years ago

Feature description

You should add a Liked Songs or similar playlist automatically when someone clicks the heart button. Maybe it can be the default playlist while other playlists can have a separate page.

I think Favorites should be a separate playlist, similar to how it is in most mainstream music apps, like Spotify.

I also really like the approach in https://github.com/z-huang/music, where they've implemented a whole section for songs.

Why do you want this feature?

Currently the Liked/Favorite Songs is difficult to find, and having a separate playlist or section for it would make it much clearer.

Additional information

No response

vfsfitvnm commented 2 years ago

I don't like the idea of treating the favorites as a playlist - however I agree that the home page UI should be improved. Every idea/sketch is appreciated.

noClaps commented 2 years ago

Maybe you can have the favorite songs shown as a list by default, and then have the Playlists section moved to the other sections below with Most played and History?

So at the top, instead of "Your playlists" would be "Favorites", and then the 3 sections below would be "History", "Most played" and "Playlists". This way, you can implement https://github.com/vfsfitvnm/ViMusic/issues/12 as well, since the top area would need more space since its a list, and the bottom area can be collapsed to provide that space.

vfsfitvnm commented 2 years ago

That sound reasonable - I think I'll add a setting to order the home page sections (e.g. I'd like to have "History" at the top, then "Favorites", then "Your playlists" and finally "Most played"). Also, to avoid lists taking too much space, I could also make them horizontal (like the actual "Your playlists" sections).

noClaps commented 2 years ago

Playlists work in a horizontal layout because people don't usually have many of them. However, people can have hundreds of favorited songs, and scrolling through that can be difficult. That's why songs are usually in a vertical layout. Also, you can display more info in a vertical layout.

As for the layout, I actually kind of liked having the "Most played", "History" and "Your playlists" all in one section idea. Maybe to switch between them you can implement a drop-down menu to choose between the 3 instead of having to cycle through them one-by-one? I'm assuming this wouldn't take much changes in code, plus it keeps your settings minimal while providing all the functionality.

vfsfitvnm commented 2 years ago

Playlists work in a horizontal layout because people don't usually have many of them. However, people can have hundreds of favorited songs, and scrolling through that can be difficult. That's why songs are usually in a vertical layout. Also, you can display more info in a vertical layout.

This makes sense.

Maybe to switch between them you can implement a drop-down menu to choose between the 3 instead of having to cycle through them one-by-one?

I don't like dropdowns, they are problematic in jetpack compose (also, it would take the same amount of taps to change section).

plus it keeps your settings minimal while providing all the functionality

I think I'm forced to add the possibility to change the order - e.g. I mostly play from "History", so "Favorites" at the top would be a waste of space for me!

noClaps commented 2 years ago

I don't like dropdowns, they are problematic in jetpack compose (also, it would take the same amount of taps to change section).

I guess you can keep the current system then. Either that or you can allow hiding or showing the sections. Personally, I only play from Favorites and Playlists, so History and Most played are a bit useless for me. In your case, Favorites is useless as you play from History. Someone else may have a different setup.

I think I'm forced to add the possibility to change the order - e.g. I mostly play from "History", so "Favorites" at the top would be a waste of space for me!

You can combine this feature with the hide and show feature above. This allows for full customisation of the home screen layout.

vfsfitvnm commented 2 years ago

This how it could look like ("View all" buttons are missing):

https://user-images.githubusercontent.com/46219656/174332326-f9417efc-fc9c-4951-8f97-c441c0b0281c.mp4

But I prefer the previous setup, honestly.

Alternatively, I could add an option to change the number of rows (0 = do not display, 1, 2 or 3) so that the "Your playlists" can take less/more space:

noClaps commented 2 years ago

simplescreenrecorder5.mp4

How would this work with more than 4 favorited songs? Also, having an option to hide individual sections along with reordering would be nice, because I don't need more than 2 sections at a time, and I'm assuming most people don't either. Other than that, I'm actually kind of liking this look.

Alternatively, I could add an option to change the number of rows (0 = do not display, 1, 2 or 3) so that the "Your playlists" can take less/more space:

But that just limits it to people who use a lot of playlists. Maybe this fits your use case, but I have like a total of 2 playlists, so having options for multiple rows wouldn't be that useful to me. Maybe for people with more playlists, you can have the playlist section scroll horizontally, or expand in rows as the number of playlists increases? This way ot fits both use cases.

If you apply the 2nd one, maybe you can have a way to minimise the sections to just one row or like 4-5 lines, so that the view doesn't fill up instantly?

I mean it's your app, you can design it how you want, I'm just throwing out ideas that would fit my use case personally, as well as trying to accommodate for other use cases of my friends.

noClaps commented 2 years ago

Also, you should add a small symbol that shows you can switch between the 3 lower sections, if you're using the current setup.

vfsfitvnm commented 2 years ago

But that just limits it to people who use a lot of playlists. Maybe this fits your use case, but I have like a total of 2 playlists, so having options for multiple rows wouldn't be that useful to me. Maybe for people with more playlists, you can have the playlist section scroll horizontally, or expand in rows as the number of playlists increases? This way ot fits both use cases.

The playlists grid already scrolls horizontally! Furthermore, non-playlists user can reduce the row count to 1 while playlists user can increase it to 3 (the current row count is fixed at 2)

Also, you should add a small symbol that shows you can switch between the 3 lower sections, if you're using the current setup.

That's how I did it initially, but people told me it was hard to understand...

noClaps commented 2 years ago

That's how I did it initially, but people told me it was hard to understand...

No, I meant in between the text, like Favorites <--> History. Removing the text would make it confusing, but the current implementation isn't that intuitive either. This is why I was suggesting a dropdown earlier, but that doesn't seem possible for this case.

The playlists grid already scrolls horizontally! Furthermore, non-playlists user can reduce the row count to 1 while playlists user can increase it to 3 (the current row count is fixed at 2)

Well in that case I don't see the point of having it expand. I would actually suggest removing the scroll functionality, and just having it automatically expand vertically as more playlists are added, while keeping the 4-item width. If someone uses a lot of playlists, seeing more than 16 playlists at a time would probably be helpful.

Side note: we should probably rename this issue to something like "Layout redesign" or something, since right now it's about more than just the Liked Songs playlist lol.

vfsfitvnm commented 2 years ago

@noClaps I'm renewing a lot of things for v0.2.0, and I can definitely implement a design like https://github.com/z-huang/music or https://github.com/RetroMusicPlayer/RetroMusicPlayer (a bottom nav bar which leads to songs, playlists, artists, albums etc)-

Favorites will have their dedicated playlist.

BluePixel4k commented 2 years ago

@noClaps I'm renewing a lot of things for v0.2.0, and I can definitely implement a design like https://github.com/z-huang/music or https://github.com/RetroMusicPlayer/RetroMusicPlayer (a bottom nav bar which leads to songs, playlists, artists, albums etc)-

Favorites will have their dedicated playlist.

That sounds amazing, I'm looking forward to the release of this version! 🚀

vfsfitvnm commented 2 years ago

Unfortunately we are not there yet.

I tried adding a bottom navigation bar, but I didn't like how it looked - a dedicated section to artists and albums is still missing. I did some small changes to the UI, thought (see referenced commits up here).

noClaps commented 2 years ago

Just installed the app. The UI and animations already feel a lot smoother and more polished.

I'd recommend removing the Cached playlist (if you want a purely online streaming app), or reimplementing it as an optional Downloaded playlist (if you want to provide the option of having offline play). Right now it seems a bit confusing and pointless. Users should have the option if they want to have songs available offline or not, especially in cases where the user may not have that much storage space on their phone.

vfsfitvnm commented 2 years ago

Thanks, I don't know why I didn't think of this earlier - I agree it should be optional: I'll add a toggle for that.

vfsfitvnm commented 2 years ago

Please take a look at #107 :)

bluesy92 commented 2 years ago

Some UI changes I'd like to see are the removal of "videos" and "playlists" from YouTube. This creates multiple sources of the same song, which can potentially create multiple copies in the cache, and adds content clearly named as videos into what should be a spotify-like experience. At the very least, a toggle to disable these features would be nice.

I'd like to also see the home screen integrate autogenerated playlists. Something new to look at each time you log in.

And maybe the ability to share local playlists for community to search from. If my first request to remove support for videos and playlists becomes a thing, the ability to have community-driven content would be nice.

vfsfitvnm commented 2 years ago

@bluesy92

There is no valid reason to remove videos and playlist. YouTube Music can always recommend videos in the radio, and it also has duplicated songs already.

autogenerated playlists.

How they are autogenerated?

the ability to have community-driven content would be nice.

You are looking way further than it's necessary...

bluesy92 commented 2 years ago

@bluesy92

There is no valid reason to remove videos and playlist. YouTube Music can always recommend videos in the radio, and it also has duplicated songs already.

autogenerated playlists.

How they are autogenerated?

the ability to have community-driven content would be nice.

You are looking way further than it's necessary... As far as the auto-generated playlists, the most immediate methods that come to mind are making a list from the Radio functionality, or from meta tags. I admit that community driven content is very far in the future, but it was made knowing I intend to use this player (and recommend it) well into the future.

I was using SpotTube before. But scraping YouTube for Spotify content doesn't always give results, so I'd rather a YouTube centric player. Plus, I like the auto-download caching since I'm data limited. So I intend to stick with ViMusic for a long time, and my suggestions were made knowing they're very well outside of the current scope of the project, and I apologize for that.

vfsfitvnm commented 2 years ago

Closing (#107 )