The project was in need of some refactoring since I created it when I was new to developing Android apps some 3 or 4 years ago, therefore I compiled a list with TODOs and will gradually strike them out when as I complete them:
Refactored MVP logic to be more precice with the design pattern
Refactored app backend to use repositories
Refactored app backend to use UseCases
Migrated to AndroidX
Updated Material design/libraries
Refacted static classes to be injected instead
Genral QOL code refactoring
Fixed last.fm image fetching(since they disabled it) - artist images are now fetched from a different API
- Completeley remove the few static helper methods that are left in the UI
- Single activity architecture with Android Navigation Component
- Rewrite in Kotlin
a musical encyclopedia
https://github.com/gabynnette for the design of the app icons, logos and Google Play Store banner, much appreciated!
Special thanks to
This application is designed using the MVP pattern.
The application features a beautiful material design, and makes use of cutting-edge libraries to function, e.g.:
The API for all the information is the LastFM API.
Other libraries include custom labels, tooltips, Calligraphy library for fonts,
and Google's support libraries.
This application is meant to be a musical library for anyone who might enjoy having a cool app, which fetches information
fast and accurate from a reliable musical site, with up-to-date information about artists, albums and songs.
The program is very versatile, because it makes use of all the features the last.fm API provides such as top artists, top songs,
top songs per artist, top artists by geographical region etc...
Recently I added scrobbling integration, so the application now scrobbles to last.fm from music players like:
- Google Play Music
- and more...
Some features this app. supports:
- Search for artists and albums
- Add artists and albums to your favorites for quicker access
- Select a specific artists to view more detailed information about them like their genres, biography and albums
- Select a specific album to view detailed information about it.
- Different phones support different emojis - you will have an unique penguin mascot for your device!
- Scrobbling notifications
- Currently scrobbling track information
- Scrobble history
- 'Love track' button
- Scrobbling from cache(e.g. offline scrobbles to be scrobbled at a later point)
- Beautiful graph showing the top tracks and top artists in a time span, which the user can specify
Features to be implemented will be:
- Track statistics in the Artist detail menu
- More user-specific information from last.fm
If you have any recommendations feel free to email me.
NOTE: If you fork/clone this repo, be sure to add the following to your gradle.properties:
API_KEY = "YOUR_LASTFM_API_KEY"
API_SECRET = "YOUR_LASTFM_API_SECRET"