amangautam1 / flutter-musicplayer Goto Github PK
View Code? Open in Web Editor NEWA complete music player in flutter with cool UI and design.
License: MIT License
A complete music player in flutter with cool UI and design.
License: MIT License
like the function toMap()
I/flutter (28786): The following assertion was thrown attaching to the render tree:
I/flutter (28786): 'package:flutter/src/material/slider_theme.dart': Failed assertion: line 233 pos 16: 'trackHeight !=
I/flutter (28786): null': is not true.
I/flutter (28786):
I/flutter (28786): Either the assertion indicates an error in the framework itself, or we should provide substantially
I have enough songs that sorting by name is usually more useful, and it'd be nice to see that supported!
How Can I Get artist Name,Albums Name,Cover,... from Music File?
hello this looks beautiful and well put ,, any future plans of supporting lyrics
File google-services.json is missing. The Google Services Plugin cannot function without it.
Searched Location:
/home/digital/Darpan_AndroidWorks/flutter_project/flutter-musicplayer/android/app/src/nullnull/debug/google-services.json
/home/digital/Darpan_AndroidWorks/flutter_project/flutter-musicplayer/android/app/src/debug/nullnull/google-services.json
/home/digital/Darpan_AndroidWorks/flutter_project/flutter-musicplayer/android/app/src/nullnull/google-services.json
/home/digital/Darpan_AndroidWorks/flutter_project/flutter-musicplayer/android/app/src/debug/google-services.json
/home/digital/Darpan_AndroidWorks/flutter_project/flutter-musicplayer/android/app/src/nullnullDebug/google-services.json
/home/digital/Darpan_AndroidWorks/flutter_project/flutter-musicplayer/android/app/google-services.json
Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
Get more help at https://help.gradle.org
BUILD FAILED in 10s
Finished with error: Gradle task assembleDebug failed with exit code 1
Problems:
Home(db);
is throwing exceptionSome get/set isn't defined in Song (flute_music_player.dart ).
Please check it.
I get that error when trying to launch the app. I have updated the code for the Song class and added a default return null in list_songs.dart at line 67 (my IDE showed it as an error due to the lack of a return statement) There are still some warnings showing up, though no errors. Could they be the reason as to why the app isn't starting ? If so how to fix them ? If not what could be the reason ? I am trying to run it on an emulator with Android API 16. Do I need a higher one ?
Warnings:
info: Name types using UpperCamelCase. (camel_case_types at [musicplayer] lib\main.dart:14)
info: This class inherits from a class marked as @immutable, and therefore should be immutable (all instance fields must be final). (must_be_immutable at [musicplayer] lib\musichome.dart:17)
info: Name types using UpperCamelCase. (camel_case_types at [musicplayer] lib\musichome.dart:33)
info: This function has a return type of 'Future', but doesn't end with a return statement. (missing_return at [musicplayer] lib\musichome.dart:238)
info: 'child' is deprecated and shouldn't be used. (deprecated_member_use at [musicplayer] lib\musichome.dart:246)
info: This class inherits from a class marked as @immutable, and therefore should be immutable (all instance fields must be final). (must_be_immutable at [musicplayer] lib\pages\card_detail.dart:10)
info: Name types using UpperCamelCase. (camel_case_types at [musicplayer] lib\pages\card_detail.dart:23)
info: This class inherits from a class marked as @immutable, and therefore should be immutable (all instance fields must be final). (must_be_immutable at [musicplayer] lib\pages\list_songs.dart:10)
info: Name types using UpperCamelCase. (camel_case_types at [musicplayer] lib\pages\list_songs.dart:22)
info: This class inherits from a class marked as @immutable, and therefore should be immutable (all instance fields must be final). (must_be_immutable at [musicplayer] lib\pages\material_search.dart:8)
info: Name types using UpperCamelCase. (camel_case_types at [musicplayer] lib\pages\material_search.dart:18)
info: This class inherits from a class marked as @immutable, and therefore should be immutable (all instance fields must be final). (must_be_immutable at [musicplayer] lib\pages\now_playing.dart:9)
info: Name types using UpperCamelCase. (camel_case_types at [musicplayer] lib\pages\now_playing.dart:21)
info: The value of the local variable 'i' isn't used. (unused_local_variable at [musicplayer] lib\pages\now_playing.dart:475)
info: Name types using UpperCamelCase. (camel_case_types at [musicplayer] lib\pages\settings.dart:14)
info: Field doesn't override an inherited getter or setter. (override_on_non_overriding_field at [musicplayer] lib\pages\settings.dart:32)
info: Unused import: 'dart:typed_data'. (unused_import at [musicplayer] lib\util\utility.dart:2)
info: Unused import: 'dart:io'. (unused_import at [musicplayer] lib\views\album.dart:1)
info: This class inherits from a class marked as @immutable, and therefore should be immutable (all instance fields must be final). (must_be_immutable at [musicplayer] lib\views\album.dart:9)
info: Name types using UpperCamelCase. (camel_case_types at [musicplayer] lib\views\album.dart:18)
info: This class inherits from a class marked as @immutable, and therefore should be immutable (all instance fields must be final). (must_be_immutable at [musicplayer] lib\views\artists.dart:6)
info: Name types using UpperCamelCase. (camel_case_types at [musicplayer] lib\views\artists.dart:15)
info: This class inherits from a class marked as @immutable, and therefore should be immutable (all instance fields must be final). (must_be_immutable at [musicplayer] lib\views\home.dart:13)
info: Name types using UpperCamelCase. (camel_case_types at [musicplayer] lib\views\home.dart:22)
info: This class inherits from a class marked as @immutable, and therefore should be immutable (all instance fields must be final). (must_be_immutable at [musicplayer] lib\views\playlists.dart:5)
info: Name types using UpperCamelCase. (camel_case_types at [musicplayer] lib\views\playlists.dart:15)
info: This method overrides a method annotated as @mustCallSuper in 'State', but does not invoke the overridden method. (must_call_super at [musicplayer] lib\views\playlists.dart:20)
info: This class inherits from a class marked as @immutable, and therefore should be immutable (all instance fields must be final). (must_be_immutable at [musicplayer] lib\views\songs.dart:10)
info: Name types using UpperCamelCase. (camel_case_types at [musicplayer] lib\views\songs.dart:20)
Getting timestamp,count as red underlines means as not listed(declared)
Plz help me out
FAILURE: Build failed with an exception.
File google-services.json is missing. The Google Services Plugin cannot function without it.
Searched Location:
C:\Users\Ritweek\Desktop\flutter-musicplayer\android\app\src\nullnull\debug\google-services.json
C:\Users\Ritweek\Desktop\flutter-musicplayer\android\app\src\debug\nullnull\google-services.json
C:\Users\Ritweek\Desktop\flutter-musicplayer\android\app\src\nullnull\google-services.json
C:\Users\Ritweek\Desktop\flutter-musicplayer\android\app\src\debug\google-services.json
C:\Users\Ritweek\Desktop\flutter-musicplayer\android\app\src\nullnullDebug\google-services.json
C:\Users\Ritweek\Desktop\flutter-musicplayer\android\app\google-services.json
Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
Get more help at https://help.gradle.org
BUILD FAILED in 6m 44s
Finished with error: Gradle task assembleDebug failed with exit code 1
Fetching external sources
-> Fetching podspec for Flutter
from .symlinks/flutter/ios
-> Fetching podspec for flute_music_player
from .symlinks/plugins/flute_music_player/ios
[!] No podspec found for flute_music_player
in .symlinks/plugins/flute_music_player/ios
if i close the NOW PLAYING page the next song will not play
Flutter SDK: 0.5.1
Dart SDK: 2.0.0
Error message while running flutter run
`Running 'gradlew assembleDebug'...
compiler message: lib/database/database_client.dart:27:14: Error: The getter 'count' isn't defined for the class '#lib1::Song'.
compiler message: Try correcting the name to the name of an existing getter, or defining a getter or field named 'count'.
compiler message: if (song.count == null) {
compiler message: ^
compiler message: lib/database/database_client.dart:28:12: Error: The setter 'count' isn't defined for the class '#lib1::Song'.
compiler message: Try correcting the name to the name of an existing setter, or defining a setter or field named 'count'.
compiler message: song.count = 0;
compiler message: ^
compiler message: lib/database/database_client.dart:30:14: Error: The getter 'timestamp' isn't defined for the class '#lib1::Song'.
compiler message: Try correcting the name to the name of an existing getter, or defining a getter or field named 'timestamp'.
compiler message: if (song.timestamp == null) {
compiler message: ^
compiler message: lib/database/database_client.dart:31:12: Error: The setter 'timestamp' isn't defined for the class '#lib1::Song'.
compiler message: Try correcting the name to the name of an existing setter, or defining a setter or field named 'timestamp'.
compiler message: song.timestamp = 0;
compiler message: ^
compiler message: lib/database/database_client.dart:33:14: Error: The getter 'isFav' isn't defined for the class '#lib1::Song'.
compiler message: Try correcting the name to the name of an existing getter, or defining a getter or field named 'isFav'.
compiler message: if (song.isFav == null) {
compiler message: ^
compiler message: lib/database/database_client.dart:34:12: Error: The setter 'isFav' isn't defined for the class '#lib1::Song'.
compiler message: Try correcting the name to the name of an existing setter, or defining a setter or field named 'isFav'.
compiler message: song.isFav = 0;
compiler message: ^
compiler message: lib/database/database_client.dart:41:43: Error: The method 'toMap' isn't defined for the class '#lib1::Song'.
compiler message: Try correcting the name to the name of an existing method, or defining a method named 'toMap'.
compiler message: id = await _db.insert("songs", song.toMap());
compiler message: ^
compiler message: lib/database/database_client.dart:45:33: Error: The method 'toMap' isn't defined for the class '#lib1::Song'.
compiler message: Try correcting the name to the name of an existing method, or defining a method named 'toMap'.
compiler message: .update("songs", song.toMap(), where: "id= ?", whereArgs: [song.id]);
compiler message: ^
compiler message: lib/database/database_client.dart:63:48: Error: Getter not found: 'Columns'.
compiler message: await _db.query("songs", columns: Song.Columns, orderBy: "title");
compiler message: ^^^^^^^
compiler message: lib/database/database_client.dart:74:48: Error: Getter not found: 'Columns'.
compiler message: await _db.query("songs", columns: Song.Columns, where: "albumid=$id");
compiler message: ^^^^^^^
compiler message: lib/database/database_client.dart:117:23: Error: Getter not found: 'Columns'.
compiler message: columns: Song.Columns, where: "artist='$artist'");
compiler message: ^^^^^^^
compiler message: lib/database/database_client.dart:147:45: Error: The method 'toMap' isn't defined for the class '#lib1::Song'.
compiler message: Try correcting the name to the name of an existing method, or defining a method named 'toMap'.
compiler message: id = await _db.insert("recents", song.toMap());
compiler message: ^
compiler message: lib/database/database_client.dart:150:40: Error: The method 'toMap' isn't defined for the class '#lib1::Song'.
compiler message: Try correcting the name to the name of an existing method, or defining a method named 'toMap'.
compiler message: await _db.update("recents", song.toMap(),
compiler message: ^
compiler message: lib/database/database_client.dart:195:45: Error: The method 'toMap' isn't defined for the class '#lib1::Song'.
compiler message: Try correcting the name to the name of an existing method, or defining a method named 'toMap'.
compiler message: id = await _db.insert("songs", song.toMap());
compiler message: ^
compiler message: lib/database/database_client.dart:198:40: Error: The method 'toMap' isn't defined for the class '#lib1::Song'.
compiler message: Try correcting the name to the name of an existing method, or defining a method named 'toMap'.
compiler message: await _db.update("songs", song.toMap(),
compiler message: ^
compiler message: lib/pages/now_playing.dart:110:10: Error: The setter 'timestamp' isn't defined for the class '#lib1::Song'.
compiler message: Try correcting the name to the name of an existing setter, or defining a setter or field named 'timestamp'.
compiler message: song.timestamp = new DateTime.now().millisecondsSinceEpoch;
compiler message: ^
compiler message: lib/pages/now_playing.dart:111:14: Error: The getter 'count' isn't defined for the class '#lib1::Song'.
compiler message: Try correcting the name to the name of an existing getter, or defining a getter or field named 'count'.
compiler message: if (song.count == null) {
compiler message: ^
compiler message: lib/pages/now_playing.dart:112:12: Error: The setter 'count' isn't defined for the class '#lib1::Song'.
compiler message: Try correcting the name to the name of an existing setter, or defining a setter or field named 'count'.
compiler message: song.count = 0;
compiler message: ^
compiler message: lib/pages/now_playing.dart:114:12: Error: The getter 'count' isn't defined for the class '#lib1::Song'.
compiler message: Try correcting the name to the name of an existing getter, or defining a getter or field named 'count'.
compiler message: song.count++;
compiler message: ^
compiler message: lib/pages/now_playing.dart:114:12: Error: The setter 'count' isn't defined for the class '#lib1::Song'.
compiler message: Try correcting the name to the name of an existing setter, or defining a setter or field named 'count'.
compiler message: song.count++;
compiler message: ^
compiler message: lib/pages/now_playing.dart:117:18: Error: The getter 'isFav' isn't defined for the class '#lib1::Song'.
compiler message: Try correcting the name to the name of an existing getter, or defining a getter or field named 'isFav'.
compiler message: isfav = song.isFav;
compiler message: ^
Compiler failed on /home/himank/LinuxProg/GitHub/flutter-musicplayer/lib/main.dart
FAILURE: Build failed with an exception.
`
I also ran flutter packages get before, so the dependecies are satisfied.
Not a compulsion though.
Fetching external sources
Fetching podspec for Flutter from .symlinks/flutter/ios
This is the current class for Song that i modify for use:
class Song {
static final Columns=["id","artist", "title", "album", "albumId", "duration", "uri", "albumArt","count","isFav","timestamp"];
int id;
String artist;
String title;
String album;
int albumId;
int duration;
String uri;
String albumArt;
int count;
int timestamp;
int isFav;
Song(this.id, this.artist, this.title, this.album, this.albumId,
this.duration, this.uri, this.albumArt);
Song.fromMap(Map m) {
id = m["id"];
artist = m["artist"];
title = m["title"];
album = m["album"];
albumId = m["albumId"];
duration = m["duration"];
uri = m["uri"];
albumArt = m["albumArt"];
}
Map<String, dynamic> toMap() {
Map params = <String, dynamic>{
"id": id,
"artist": artist,
"title": title,
"album": album,
"albumId": albumId,
"duration": duration,
"uri": uri,
"albumArt": albumArt,
"count": count,
"timestamp": timestamp,
"isFav": isFav,
};
return params;
}
}
This class (or a class which this class inherits from) is marked as '@immutable', but one or more of its instance fields are not final: MusicHome.songs.
Same message is showing in most pages
The error is pointing in this line of code which is MusicHome: class MusicHome extends StatefulWidget {
Here is the full code
`import 'dart:async';
import 'package:flute_music_player/flute_music_player.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:musicplayer/database/database_client.dart';
import 'package:musicplayer/pages/now_playing.dart';
import 'package:musicplayer/pages/settings.dart';
import 'package:musicplayer/util/lastplay.dart';
import 'package:musicplayer/views/album.dart';
import 'package:musicplayer/views/artists.dart';
import 'package:musicplayer/views/home.dart';
import 'package:musicplayer/views/playlists.dart';
import 'package:musicplayer/views/songs.dart';
import 'package:shared_preferences/shared_preferences.dart';
class MusicHome extends StatefulWidget {
List songs;
MusicHome();
final bottomItems = [
new BottomItem("Home", Icons.home),
new BottomItem("Albums", Icons.album),
new BottomItem("Songs", Icons.music_note),
new BottomItem("Artists", Icons.person),
new BottomItem("PlayList", Icons.playlist_add_check),
];
@OverRide
State createState() {
return new _Musicstate();
}
}
class _Musicstate extends State {
int _selectedDrawerIndex = 0;
List songs;
String title = "Music player";
DatabaseClient db;
bool isLoading = true;
Song last;
Color color = Colors.deepPurple;
var themeLoading = true;
getDrawerItemWidget(int pos) {
switch (pos) {
case 0:
return new Home(db);
case 2:
return new Songs(db);
case 3:
return new Artists(db);
case 1:
return new Album(db);
case 4:
return new PlayList(db);
default:
return new Text("Error");
}
}
_onSelectItem(int index) {
setState(() => _selectedDrawerIndex = index);
getDrawerItemWidget(_selectedDrawerIndex);
title = widget.bottomItems[index].title;
}
@OverRide
void initState() {
super.initState();
initPlayer();
getSharedData();
}
void initTheme() async {
var pref = await SharedPreferences.getInstance();
var val = pref.getInt("theme");
print("theme=$val");
if (val == 1) {
color = Theme.of(context).primaryColor;
setState(() {
themeLoading = false;
});
}
}
void initPlayer() async {
db = new DatabaseClient();
await db.create();
if (await db.alreadyLoaded()) {
setState(() {
isLoading = false;
getLast();
});
} else {
var songs;
try {
songs = await MusicFinder.allSongs();
} catch (e) {
print("failed to get songs");
}
List list = new List.from(songs);
for (Song song in list) db.upsertSOng(song);
if (!mounted) {
return;
}
setState(() {
isLoading = false;
getLast();
});
}
}
getSharedData() async {
const platform = const MethodChannel('app.channel.shared.data');
Map sharedData = await platform.invokeMethod("getSharedData");
if (sharedData != null) {
if (sharedData["albumArt"] == "null") {
sharedData["albumArt"] = null;
}
Song song = new Song(
9999 /random/,
sharedData["artist"],
sharedData["title"],
sharedData["album"],
null,
int.parse(sharedData["duration"]),
sharedData["uri"],
sharedData["albumArt"]);
List list = new List();
list.add((song));
MyQueue.songs = list;
Navigator.of(context).push(new MaterialPageRoute(builder: (context) {
return new NowPlaying(null, list, 0, 0);
}));
}
}
@OverRide
void dispose() {
super.dispose();
}
void getLast() async {
last = await db.fetchLastSong();
songs = await db.fetchSongs();
setState(() {
songs = songs;
});
}
GlobalKey scaffoldState = new GlobalKey();
@OverRide
Widget build(BuildContext context) {
var bottomOptions = [];
for (var i = 0; i < widget.bottomItems.length; i++) {
var d = widget.bottomItems[i];
bottomOptions.add(
new BottomNavigationBarItem(
icon: new Icon(
d.icon,
),
title: new Text(d.title),
backgroundColor: Theme.of(context).primaryColor,
),
);
}
return new WillPopScope(
child: new Scaffold(
key: scaffoldState,
appBar: _selectedDrawerIndex == 0
? null
: new AppBar(
title: new Text(title),
actions: [
new IconButton(icon: Icon(Icons.search), onPressed: null)
],
),
floatingActionButton: new FloatingActionButton(
child: new Icon(Icons.play_circle_filled),
onPressed: () async {
var pref = await SharedPreferences.getInstance();
var fp = pref.getBool("played");
if (fp == null) {
scaffoldState.currentState.showSnackBar(
new SnackBar(content: Text("Play your first song.")));
} else {
Navigator
.of(context)
.push(new MaterialPageRoute(builder: (context) {
if (MyQueue.songs == null) {
List list = new List();
list.add(last);
MyQueue.songs = list;
return new NowPlaying(db, list, 0, 0);
} else
return new NowPlaying(db, MyQueue.songs, MyQueue.index, 1);
}));
}
}),
drawer: new Drawer(
child: new Column(
children: [
new UserAccountsDrawerHeader(
accountName: new Text("Music player"), accountEmail: null),
new Column(
children: [
new ListTile(
leading: new Icon(Icons.settings,
color: Theme.of(context).accentColor),
title: new Text("Settings"),
onTap: () {
Navigator.of(context).pop();
Navigator
.of(context)
.push(new MaterialPageRoute(builder: (context) {
return new Settings();
}));
}),
],
)
],
),
),
body: isLoading
? new Center(
child: new CircularProgressIndicator(),
)
: getDrawerItemWidget(_selectedDrawerIndex),
bottomNavigationBar: new BottomNavigationBar(
items: bottomOptions,
onTap: (index) => _onSelectItem(index),
currentIndex: _selectedDrawerIndex,
),
),
onWillPop: _onWillPop,
);
}
Future _onWillPop() {
if (_selectedDrawerIndex != 0) {
setState(() {
selectedDrawerIndex = 0;
});
return(null);
} else
return showDialog(
context: context,
builder: ()=> new AlertDialog(
title: new Text('Are you sure?'),
content: new Text('music player will be stopped..'),
actions: [
new FlatButton(
onPressed: () => Navigator.of(context).pop(false),
child: new Text(
'No',
),
),
new FlatButton(
onPressed: () {
MyQueue.player.stop();
Navigator.of(context).pop(true);
},
child: new Text('Yes'),
),
],
),
) ??
false;
}
}
class BottomItem {
String title;
IconData icon;
BottomItem(this.title, this.icon);
}
`
Exception has occurred.
MissingPluginException (MissingPluginException(No implementation found for method getSharedData on channel app.channel.shared.data))
I/flutter (28237): theme=null
method not available: ext.flutter.debugPaintmethod not available: ext.flutter.showPerformanceOverlaymethod not available: ext.flutter.repaintRainbowmethod not available: ext.flutter.timeDilationmethod not available: ext.flutter.debugAllowBannermethod not available: ext.flutter.debugPaintBaselinesEnabledmethod not available: ext.flutter.inspector.show
Testing on USB connected android device.
Hi guys, you did a splendid job with the music player - it's the best I have ever seen.
Can you kindly update it to work on the new flutter version and it's dependencies?
Method not found
method not available: ext.flutter.inspector.isWidgetCreationTracked
error: The setter 'timestamp' isn't defined for the class 'Song'. (undefined_setter at [musicplayer] lib/pages/now_playing.dart:110)
error: The getter 'count' isn't defined for the class 'Song'. (undefined_getter at [musicplayer] lib/pages/now_playing.dart:111)
error: The setter 'count' isn't defined for the class 'Song'. (undefined_setter at [musicplayer] lib/pages/now_playing.dart:112)
error: The setter 'count' isn't defined for the class 'Song'. (undefined_setter at [musicplayer] lib/pages/now_playing.dart:114)
error: The getter 'isFav' isn't defined for the class 'Song'. (undefined_getter at [musicplayer] lib/pages/now_playing.dart:117)
warning: Missing return value after 'return'. (return_without_value at [musicplayer] lib/pages/list_songs.dart:68)
info: Name types using UpperCamelCase. (camel_case_types at [musicplayer] lib/main.dart:14)
info: This class inherits from a class marked as @immutable, and therefore should be immutable (all instance fields must be final). (must_be_immutable at [musicplayer] lib/musichome.dart:17)
info: Name types using UpperCamelCase. (camel_case_types at [musicplayer] lib/musichome.dart:33)
info: This function has a return type of 'Future', but doesn't end with a return statement. (missing_return at [musicplayer] lib/musichome.dart:238)
info: 'child' is deprecated and shouldn't be used. (deprecated_member_use at [musicplayer] lib/musichome.dart:246)
info: This class inherits from a class marked as @immutable, and therefore should be immutable (all instance fields must be final). (must_be_immutable at [musicplayer] lib/pages/card_detail.dart:10)
info: Name types using UpperCamelCase. (camel_case_types at [musicplayer] lib/pages/card_detail.dart:23)
info: This class inherits from a class marked as @immutable, and therefore should be immutable (all instance fields must be final). (must_be_immutable at [musicplayer] lib/pages/list_songs.dart:10)
info: Name types using UpperCamelCase. (camel_case_types at [musicplayer] lib/pages/list_songs.dart:22)
info: This class inherits from a class marked as @immutable, and therefore should be immutable (all instance fields must be final). (must_be_immutable at [musicplayer] lib/pages/material_search.dart:8)
info: Name types using UpperCamelCase. (camel_case_types at [musicplayer] lib/pages/material_search.dart:18)
info: This class inherits from a class marked as @immutable, and therefore should be immutable (all instance fields must be final). (must_be_immutable at [musicplayer] lib/pages/now_playing.dart:9)
info: Name types using UpperCamelCase. (camel_case_types at [musicplayer] lib/pages/now_playing.dart:21)
info: The value of the local variable 'i' isn't used. (unused_local_variable at [musicplayer] lib/pages/now_playing.dart:475)
info: Name types using UpperCamelCase. (camel_case_types at [musicplayer] lib/pages/settings.dart:14)
info: Field doesn't override an inherited getter or setter. (override_on_non_overriding_field at [musicplayer] lib/pages/settings.dart:32)
info: Unused import: 'dart:typed_data'. (unused_import at [musicplayer] lib/util/utility.dart:2)
info: Unused import: 'dart:io'. (unused_import at [musicplayer] lib/views/album.dart:1)
info: This class inherits from a class marked as @immutable, and therefore should be immutable (all instance fields must be final). (must_be_immutable at [musicplayer] lib/views/album.dart:9)
info: Name types using UpperCamelCase. (camel_case_types at [musicplayer] lib/views/album.dart:18)
info: This class inherits from a class marked as @immutable, and therefore should be immutable (all instance fields must be final). (must_be_immutable at [musicplayer] lib/views/artists.dart:6)
info: Name types using UpperCamelCase. (camel_case_types at [musicplayer] lib/views/artists.dart:15)
info: This class inherits from a class marked as @immutable, and therefore should be immutable (all instance fields must be final). (must_be_immutable at [musicplayer] lib/views/home.dart:13)
info: Name types using UpperCamelCase. (camel_case_types at [musicplayer] lib/views/home.dart:22)
info: This class inherits from a class marked as @immutable, and therefore should be immutable (all instance fields must be final). (must_be_immutable at [musicplayer] lib/views/playlists.dart:5)
info: Name types using UpperCamelCase. (camel_case_types at [musicplayer] lib/views/playlists.dart:15)
info: This method overrides a method annotated as @mustCallSuper in 'State', but does not invoke the overridden method. (must_call_super at [musicplayer] lib/views/playlists.dart:20)
info: This class inherits from a class marked as @immutable, and therefore should be immutable (all instance fields must be final). (must_be_immutable at [musicplayer] lib/views/songs.dart:10)
info: Name types using UpperCamelCase. (camel_case_types at [musicplayer] lib/views/songs.dart:20)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.