Design

Warning /!\ Ubuntu Touch is no longer maintained as a core product by Canonical. However, the Ubports community are continuing development.

Music Spec

For the Trusty 14.04 release the Music app will introduce a convergent tablet and desktop design, along with upgrades to the current phone UI. A working document containing a draft spec with review comments is available.

User story #1: Search

As a user, I want to search my music, so that I can quickly find and listen to a track, album, artist or genre

Functional definition

  • Search is to be performed for the given term on track names, album names, and genre name
  • If there isn't a performance hit, search results should be returned live while typing
  • Optional: type-ahead. When typing a term, present suggestions from previous searches
  • Optional: define search syntax and keywords, e.g. "artist:abba", "genre:trash metal"

Design

  • Search view with results (phone)

AppSpecTemplate/Needs design phone.png

  • Search view with results (tablet)

AppSpecTemplate/Needs design tablet.png

User story #2 Queue

As a user I want to add and remove songs to the play queue, so that I can listen to music and decide what I want to hear

Functional definition

  • System for storing the play queue
  • Method for selecting the next track either sequentially or randomly based on user settings

Design

  • Play queue (phone)

Play queue (phone).png

  • Play queue (tablet)

Play queue (tablet).png

  • Remove song from play queue (phone)

Remove song from queue (phone).png

  • Remove song from play queue (tablet)

Remove song from queue (tablet).png

  • Clear play queue (phone)

AppSpecTemplate/Needs design phone.png

  • Clear play queue (tablet)

AppSpecTemplate/Needs design tablet.png

User story #3 Share

As a user, I want to share the music I'm listening to, so that my friends know what I'm playing

Functional definition

  • Sharing will be carried out via the Friends API, thus the supported services will be those supported by Friends
  • Login to the supported social services will be carried out via Online accounts

Design

  • Share button
    • share.png

  • Share button in panel

share button in panel.png

User story #4 Scrobble

As a user, I want to scrobble the music I'm listening to, so that I can build a history of plays and tastes

Functional definition

  • Initial service to use for scrobbling: last.fm
  • An Online Accounts plugin will be required
  • Log in will be carried out in the standard System Settings dialog, not via the Music app
  • Scrobbling can be added in a settings view in the music app. If no account is configured, the Music app should call System Settings with the trusted online accounts helper to open the accounts page, and then return to the app once the account has been configured

Design

  • Settings pane for scrobbling

User story #5 Playlist

As a user, I want to add songs to a play list so I can listen to them in sequence later

Functional definition

  • Data store for keeping playlists
  • Method for creating and deleting playlists
  • Method for adding individual or multiple tracks to playlists
  • Optional: Method for sharing playlist content to 3rd parties
  • Optional: Sync playlists between devices

Design

  • Playlist (phone)

AppSpecTemplate/Needs design phone.png

  • Playlist (tablet)

AppSpecTemplate/Needs design tablet.png

  • Playlist (desktop)

AppSpecTemplate/Needs design desktop.png

User story #6 Navigate

As a user I want to navigate the tracks in the current play queue / playlist so that I can select which track to play next

Functional definition

  • User interface for selecting skipping forward and backward
  • User interface for selecting tracks directly, overriding the current 'next track'
  • User interface for toggling shuffle and repeat modes

Design

  • Toolbar with play controls (phone)

Toolbar with play controls (phone) .png

  • Toolbar with play controls (tablet)

Toolbar with play controls (tablet).png

  • Toolbar with play controls (desktop)

Toolbar with play controls (desktop).png

User Story #7 Browse

As a user I want to browse my music by meaningful groups so that I can find music I am in the mood to listen to

Functional definition

  • Method to extract and store metadata from music
  • Method to filter based on criteria including artist, album
  • Optional: Allow filtering by metadata including (but not limited to) year, genre, rating

Design

  • Filtered view (phone)
    • <insert image here>

  • Filtered view (tablet)

AppSpecTemplate/Needs design tablet.png

  • Filtered view (desktop)

AppSpecTemplate/Needs design desktop.png

User Story #8 Rate

As a user I want to rate my music so that I can remember and listen to my favourite tracks later

Functional definition

  • Method for rating arbitrary tracks while browsing or playing
  • Method for storing ratings of tracks as numeric
  • Optional: Method for rating playlists
  • Optional: Method for rating artists and albums

Design

  • Rating a track while playing (phone)

Rating a track while playing (phone).png

  • Rating a track while another track is being played (phone)

Rating a track while another track is being played (phone).png

  • Rating a playlist (phone)

AppSpecTemplate/Needs design phone.png

Touch/CoreApps/Music/Design (last edited 2014-03-06 12:13:59 by 24-179-141-193)