diff --git a/.github/workflows/flutter-build.yml b/.github/workflows/flutter-build.yml
index be450bce..ac12781b 100644
--- a/.github/workflows/flutter-build.yml
+++ b/.github/workflows/flutter-build.yml
@@ -29,6 +29,7 @@ jobs:
- run: make appimage
# Building Android Application
- run: flutter build apk
+ - run: mv build/app/outputs/apk/release/app-release.apk build/Spotube-android-arm64-v8a.apk
- uses: actions/upload-artifact@v2
with:
name: Spotube-Linux-Bundle
@@ -36,7 +37,7 @@ jobs:
build/Spotube-linux-x86_64.deb
build/Spotube-linux-x86_64.tar.xz
build/Spotube-*-x86_64.AppImage
- build/app/outputs/apk/release/app-release.apk
+ build/Spotube-android-arm64-v8a.apk
build_windows:
runs-on: windows-latest
steps:
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 27d49948..fc3ce8dc 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,30 @@
+# v2.0.0
+
+### New
+- Android Support https://github.com/KRTirtho/spotube/issues/24
+- Responsive UI (Mobile, Tablet)
+- Anonymous/Guest Account
+- Mini floating player
+- Full page PlayerView for smaller devices
+- Horizontal CategoryCard Scroll & pagination for quicker access to Playlists
+- Bottom bar for smaller devices
+- Collapsed Sidebar for medium sized devices
+- Persists Volume level
+- Android NavigationPanel controls (OS media controls of Android)
+
+### Improved
+- Search - now scrolls & paginates for Playlists & Albums
+- Authentication - allows guest accounts making authentication optional
+- Lyrics - can be fetched without requiring GeniusAccessToken. This makes geniusAccessToken optional
+- UI snappiness & faster load times
+- Simpler logic, faster calculations & better caching (flutter_hooks)
+- shared state management - uses riverpod & hooks combination
+
+### Bug fixes
+- Can't play any song in macos https://github.com/KRTirtho/spotube/issues/23
+- Downloaded tracks can't be played as they're WebAudio (.weba) instead of MP3
+- delay while changing Playlist/Single tracks
+
# v1.2.0
### New
diff --git a/README.md b/README.md
index 861a40ef..19e64bd9 100644
--- a/README.md
+++ b/README.md
@@ -27,7 +27,9 @@ Spotube is a [Flutter](https://flutter.dev) based lightweight spotify client. It
Following are the features that currently spotube offers:
- Open Source
-- No telementry, diagnostics or user data collection
+- Anonymous/Guest Login
+- Cross platform
+- No telemetry, diagnostics or user data collection
- Lightweight & resource friendly
- Native performance (Thanks to Flutter+Skia)
- Playback control is on user's machine instead of server based
@@ -36,7 +38,7 @@ Following are the features that currently spotube offers:
- Lyrics
- Downloadable track
-
+
# Installation
@@ -44,6 +46,10 @@ I'm always releasing newer versions of binary of the software each 2-3 month wit
All the binaries are located in the [releases](https://github.com/krtirtho/spotube/releases), just download
+## Android
+
+Download the [Android app](https://github.com/KRTirtho/spotube/releases/latest/download/Spotube-android-arm64-v8a.apk) & install it on your phone/tablet
+
## Windows
Download the [setup file](https://github.com/KRTirtho/spotube/releases/latest/download/Spotube-windows-x86_64-setup.exe) & follow along the installer
@@ -98,30 +104,33 @@ Download the [Mac OS Disk Image (.dmg) file](https://github.com/KRTirtho/spotube
**I'll/try to upload the package binaries to linux debian/arch/ubuntu/snap/flatpack/redhat/chocolatey/homebrew stores or software centers or repositories**
-# Configuration
-There are some configurations that needs to be done to start using this software
+## Optional Configurations
+
+ Login with Spotify
-You need a spotify account & a developer app for
+ You need a spotify account & a developer app for
-- clientId
-- clientSecret
+ - clientId
+ - clientSecret
-**Grab credentials:**
+ **Grab credentials:**
-- Go to https://developer.spotify.com/dashboard/login & login with your spotify account (Skip if you're logged in)
- 
+ - Go to https://developer.spotify.com/dashboard/login & login with your spotify account (Skip if you're logged in)
+ 
-- Create an web app for Spotify Public API
- 
+ - Create an web app for Spotify Public API
+ 
-- Give the app a name & description. Then Edit settings & add **http://localhost:4304/auth/spotify/callback** as **Redirect URI** for the app. Its important for authenticating
- 
+ - Give the app a name & description. Then Edit settings & add **http://localhost:4304/auth/spotify/callback** as **Redirect URI** for the app. Its important for authenticating
+ 
-- Click on **SHOW CLIENT SECRET** to reveal the **clientSecret**. Then copy the **clientID**, **clientSecret** & paste in the **Spotube's** respective fields
- 
+ - Click on **SHOW CLIENT SECRET** to reveal the **clientSecret**. Then copy the **clientID**, **clientSecret** & paste in the **Spotube's** respective fields
+ 
+
-**Setup Genius Lyrics (Optional)**
+
+Setup Genius Lyrics
- Signup/Login into [genius](https://genius.com/signup) for **lyrics**
- Go To [Genius Developer Portal](https://genius.com/api-clients/new) for creating an API client
@@ -132,6 +141,7 @@ You need a spotify account & a developer app for

> **Note!**: No personal data or any kind of sensitive information won't be collected from spotify. Don't believe? See the code for yourself
+
# TODO:
@@ -140,6 +150,7 @@ You need a spotify account & a developer app for
- [x] Track download
- [ ] Support for playing/streaming podcasts/shows
- [x] Artist, User & Album pages
+- [x] Android Support
# Building from source
@@ -179,6 +190,16 @@ Bu why? You can learn about it [here](https://dev.to/krtirtho/choosing-open-sour
- [bitsdojo_window](https://github.com/bitsdojo/bitsdojo_window) - A Flutter package that makes it easy to customize and work with your Flutter desktop app window on Windows, macOS and Linux
- [hotkey_manager](https://github.com/leanflutter/hotkey_manager) - A flutter plugin that allow Flutter desktop apps to defines system/inapp wide hotkey
- [Inno Setup](https://jrsoftware.org/isinfo.php) - Inno Setup is a free installer for Windows programs by Jordan Russell and Martijn Laan
+- [collection](https://github.com/dart-lang/collection) - The collection package for Dart contains a number of separate libraries with utility functions and classes that makes working with collections easier
+- [flutter_riverpod](https://riverpod.dev/) - A Reactive Caching and Data-binding Framework
+- [flutter_hooks](https://github.com/rrousselGit/flutter_hooks) - React hooks for Flutter. Hooks are a new kind of object that manages a Widget life-cycles. They are used to increase code sharing between widgets and as a complete replacement for StatefulWidget
+- [hooks_riverpod](https://riverpod.dev/) - Riverpod with hooks
+- [go_router](https://github.com/flutter/packages/tree/main/packages/go_router) - A declarative router for Flutter based on Navigation 2 supporting deep linking, data-driven routes and more
+- [palette_generator](https://github.com/flutter/packages/tree/main/packages/palette_generator) - Flutter package for generating palette colors from a source image.
+- [audio_session](https://github.com/ryanheise/audio_session) - Sets the iOS audio session category and Android audio attributes for your app, and manages your app's audio focus, mixing and ducking behaviour.
+- [logger](https://github.com/leisim/logger) - Small, easy to use and extensible logger which prints beautiful logs
+- [flutter_launcher_icons](https://github.com/fluttercommunity/flutter_launcher_icons) - A package which simplifies the task of updating your Flutter app's launcher icon.
+- [permission_handler](https://github.com/baseflow/flutter-permission-handler) - Permission plugin for Flutter. This plugin provides a cross-platform (iOS, Android) API to request and check permissions.
# Social handlers
diff --git a/android/app/build.gradle b/android/app/build.gradle
index ceb59302..f162c8cb 100644
--- a/android/app/build.gradle
+++ b/android/app/build.gradle
@@ -26,7 +26,7 @@ apply plugin: 'kotlin-android'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
android {
- compileSdkVersion flutter.compileSdkVersion
+ compileSdkVersion 31
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml
index 5d1d8687..97ea4c61 100644
--- a/android/app/src/main/AndroidManifest.xml
+++ b/android/app/src/main/AndroidManifest.xml
@@ -3,6 +3,8 @@
+
+
@@ -12,7 +14,7 @@
-
+