mirror of
https://github.com/johrpan/musicus_mobile.git
synced 2025-10-26 10:47:25 +01:00
Move database to seperate package
This commit is contained in:
parent
939840d95f
commit
7e25880cc5
28 changed files with 98 additions and 24 deletions
30
README.md
30
README.md
|
|
@ -4,8 +4,38 @@ The classical music player and organizer.
|
||||||
|
|
||||||
https://musicus.org
|
https://musicus.org
|
||||||
|
|
||||||
|
## Project structure
|
||||||
|
|
||||||
|
The top level directories contain the main Musicus packages, of which some
|
||||||
|
depend on other ones. All packages are written in [Dart](https://dart.dev).
|
||||||
|
|
||||||
|
### `database`
|
||||||
|
|
||||||
|
A Database of classical music. This package will be used by all standalone
|
||||||
|
Musicus applications for storing classical music metadata.
|
||||||
|
|
||||||
|
### `mobile`
|
||||||
|
|
||||||
|
The Musicus mobile app. It is being developed using
|
||||||
|
[Flutter toolkit](https://flutter.dev) and only runs on Android for now.
|
||||||
|
|
||||||
|
### `player`
|
||||||
|
|
||||||
|
The simplest possible audio player plugin. This is used by the mobile app for
|
||||||
|
playback.
|
||||||
|
|
||||||
## Hacking
|
## Hacking
|
||||||
|
|
||||||
|
Picking up Dart as a programming language and Flutter as an UI toolkit should
|
||||||
|
be relatively straight forward. You can visit
|
||||||
|
[this page](https://flutter.dev/docs/get-started/install) to get started with
|
||||||
|
Flutter. After cloning the Musicus repository, it works best to work at its
|
||||||
|
subcomponents one at a time. I recommend
|
||||||
|
[VS Code](https://flutter.dev/docs/get-started/editor?tab=vscode) for editing.
|
||||||
|
Please contact me via e-mail (see my profile), if you have any questions or
|
||||||
|
need help. I'm also open to ideas for the future of Musicus! Please use the
|
||||||
|
issue tracker for them.
|
||||||
|
|
||||||
You can use the following command to automatically update generated code while
|
You can use the following command to automatically update generated code while
|
||||||
working on Musicus:
|
working on Musicus:
|
||||||
|
|
||||||
|
|
|
||||||
31
database/.gitignore
vendored
Normal file
31
database/.gitignore
vendored
Normal file
|
|
@ -0,0 +1,31 @@
|
||||||
|
# Miscellaneous
|
||||||
|
*.class
|
||||||
|
*.log
|
||||||
|
*.pyc
|
||||||
|
*.swp
|
||||||
|
.DS_Store
|
||||||
|
.atom/
|
||||||
|
.buildlog/
|
||||||
|
.history
|
||||||
|
.svn/
|
||||||
|
|
||||||
|
# IntelliJ related
|
||||||
|
*.iml
|
||||||
|
*.ipr
|
||||||
|
*.iws
|
||||||
|
.idea/
|
||||||
|
|
||||||
|
# VS Code related
|
||||||
|
.vscode/
|
||||||
|
|
||||||
|
# Flutter/Dart/Pub related
|
||||||
|
**/*.g.dart
|
||||||
|
**/doc/api/
|
||||||
|
.dart_tool/
|
||||||
|
pubspec.lock
|
||||||
|
.flutter-plugins
|
||||||
|
.flutter-plugins-dependencies
|
||||||
|
.packages
|
||||||
|
.pub-cache/
|
||||||
|
.pub/
|
||||||
|
/build/
|
||||||
1
database/lib/musicus_database.dart
Normal file
1
database/lib/musicus_database.dart
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
export 'src/database.dart';
|
||||||
14
database/pubspec.yaml
Normal file
14
database/pubspec.yaml
Normal file
|
|
@ -0,0 +1,14 @@
|
||||||
|
name: musicus_database
|
||||||
|
description: A database for classical music.
|
||||||
|
version: 0.0.1
|
||||||
|
|
||||||
|
environment:
|
||||||
|
sdk: ">=2.3.0 <3.0.0"
|
||||||
|
|
||||||
|
dependencies:
|
||||||
|
moor:
|
||||||
|
moor_ffi:
|
||||||
|
|
||||||
|
dev_dependencies:
|
||||||
|
build_runner:
|
||||||
|
moor_generator:
|
||||||
|
|
@ -6,11 +6,11 @@ import 'package:flutter/widgets.dart';
|
||||||
import 'package:moor/isolate.dart';
|
import 'package:moor/isolate.dart';
|
||||||
import 'package:moor/moor.dart';
|
import 'package:moor/moor.dart';
|
||||||
import 'package:moor_ffi/moor_ffi.dart';
|
import 'package:moor_ffi/moor_ffi.dart';
|
||||||
|
import 'package:musicus_database/musicus_database.dart';
|
||||||
import 'package:path/path.dart' as p;
|
import 'package:path/path.dart' as p;
|
||||||
import 'package:path_provider/path_provider.dart' as pp;
|
import 'package:path_provider/path_provider.dart' as pp;
|
||||||
import 'package:shared_preferences/shared_preferences.dart';
|
import 'package:shared_preferences/shared_preferences.dart';
|
||||||
|
|
||||||
import 'database.dart';
|
|
||||||
import 'music_library.dart';
|
import 'music_library.dart';
|
||||||
import 'player.dart';
|
import 'player.dart';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:musicus_database/musicus_database.dart';
|
||||||
|
|
||||||
import '../backend.dart';
|
import '../backend.dart';
|
||||||
import '../database.dart';
|
|
||||||
|
|
||||||
class EnsembleEditor extends StatefulWidget {
|
class EnsembleEditor extends StatefulWidget {
|
||||||
final Ensemble ensemble;
|
final Ensemble ensemble;
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:musicus_database/musicus_database.dart';
|
||||||
|
|
||||||
import '../backend.dart';
|
import '../backend.dart';
|
||||||
import '../database.dart';
|
|
||||||
|
|
||||||
class InstrumentEditor extends StatefulWidget {
|
class InstrumentEditor extends StatefulWidget {
|
||||||
final Instrument instrument;
|
final Instrument instrument;
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:musicus_database/musicus_database.dart';
|
||||||
|
|
||||||
import '../backend.dart';
|
import '../backend.dart';
|
||||||
import '../database.dart';
|
|
||||||
|
|
||||||
class PersonEditor extends StatefulWidget {
|
class PersonEditor extends StatefulWidget {
|
||||||
final Person person;
|
final Person person;
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:musicus_database/musicus_database.dart';
|
||||||
|
|
||||||
import '../backend.dart';
|
import '../backend.dart';
|
||||||
import '../database.dart';
|
|
||||||
import '../selectors/performer.dart';
|
import '../selectors/performer.dart';
|
||||||
import '../selectors/work.dart';
|
import '../selectors/work.dart';
|
||||||
import '../widgets/texts.dart';
|
import '../widgets/texts.dart';
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:musicus_database/musicus_database.dart';
|
||||||
|
|
||||||
import '../backend.dart';
|
import '../backend.dart';
|
||||||
import '../database.dart';
|
|
||||||
import '../music_library.dart';
|
import '../music_library.dart';
|
||||||
import '../selectors/files.dart';
|
import '../selectors/files.dart';
|
||||||
import '../selectors/recording.dart';
|
import '../selectors/recording.dart';
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:musicus_database/musicus_database.dart';
|
||||||
|
|
||||||
import '../backend.dart';
|
import '../backend.dart';
|
||||||
import '../database.dart';
|
|
||||||
import '../selectors/instruments.dart';
|
import '../selectors/instruments.dart';
|
||||||
import '../selectors/person.dart';
|
import '../selectors/person.dart';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:musicus_database/musicus_database.dart';
|
||||||
|
|
||||||
import '../backend.dart';
|
import '../backend.dart';
|
||||||
import '../database.dart';
|
|
||||||
import '../editors/tracks.dart';
|
import '../editors/tracks.dart';
|
||||||
|
|
||||||
import 'person.dart';
|
import 'person.dart';
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:musicus_database/musicus_database.dart';
|
||||||
|
|
||||||
import '../backend.dart';
|
import '../backend.dart';
|
||||||
import '../database.dart';
|
|
||||||
import '../editors/person.dart';
|
import '../editors/person.dart';
|
||||||
|
|
||||||
import 'work.dart';
|
import 'work.dart';
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,9 @@
|
||||||
import 'dart:async';
|
import 'dart:async';
|
||||||
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:musicus_database/musicus_database.dart';
|
||||||
|
|
||||||
import '../backend.dart';
|
import '../backend.dart';
|
||||||
import '../database.dart';
|
|
||||||
import '../music_library.dart';
|
import '../music_library.dart';
|
||||||
import '../widgets/play_pause_button.dart';
|
import '../widgets/play_pause_button.dart';
|
||||||
import '../widgets/recording_tile.dart';
|
import '../widgets/recording_tile.dart';
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:musicus_database/musicus_database.dart';
|
||||||
|
|
||||||
import '../backend.dart';
|
import '../backend.dart';
|
||||||
import '../database.dart';
|
|
||||||
import '../editors/work.dart';
|
import '../editors/work.dart';
|
||||||
import '../widgets/texts.dart';
|
import '../widgets/texts.dart';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:musicus_database/musicus_database.dart';
|
||||||
|
|
||||||
import '../backend.dart';
|
import '../backend.dart';
|
||||||
import '../database.dart';
|
|
||||||
import '../editors/instrument.dart';
|
import '../editors/instrument.dart';
|
||||||
|
|
||||||
class InstrumentsSelector extends StatefulWidget {
|
class InstrumentsSelector extends StatefulWidget {
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:musicus_database/musicus_database.dart';
|
||||||
|
|
||||||
import '../backend.dart';
|
import '../backend.dart';
|
||||||
import '../database.dart';
|
|
||||||
import '../editors/ensemble.dart';
|
import '../editors/ensemble.dart';
|
||||||
import '../editors/person.dart';
|
import '../editors/person.dart';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:musicus_database/musicus_database.dart';
|
||||||
|
|
||||||
import '../backend.dart';
|
import '../backend.dart';
|
||||||
import '../database.dart';
|
|
||||||
import '../editors/person.dart';
|
import '../editors/person.dart';
|
||||||
|
|
||||||
class PersonsSelector extends StatelessWidget {
|
class PersonsSelector extends StatelessWidget {
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:musicus_database/musicus_database.dart';
|
||||||
|
|
||||||
import '../backend.dart';
|
import '../backend.dart';
|
||||||
import '../database.dart';
|
|
||||||
import '../editors/recording.dart';
|
import '../editors/recording.dart';
|
||||||
import '../widgets/texts.dart';
|
import '../widgets/texts.dart';
|
||||||
import '../widgets/works_by_composer.dart';
|
import '../widgets/works_by_composer.dart';
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:musicus_database/musicus_database.dart';
|
||||||
|
|
||||||
import '../backend.dart';
|
import '../backend.dart';
|
||||||
import '../database.dart';
|
|
||||||
import '../editors/work.dart';
|
import '../editors/work.dart';
|
||||||
|
|
||||||
// TODO: Lazy load works and/or optimize queries.
|
// TODO: Lazy load works and/or optimize queries.
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:musicus/database.dart';
|
import 'package:musicus_database/musicus_database.dart';
|
||||||
|
|
||||||
import '../backend.dart';
|
import '../backend.dart';
|
||||||
import '../music_library.dart';
|
import '../music_library.dart';
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:musicus_database/musicus_database.dart';
|
||||||
|
|
||||||
import '../backend.dart';
|
import '../backend.dart';
|
||||||
import '../database.dart';
|
|
||||||
|
|
||||||
import 'texts.dart';
|
import 'texts.dart';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,9 @@
|
||||||
import 'dart:async';
|
import 'dart:async';
|
||||||
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:musicus_database/musicus_database.dart';
|
||||||
|
|
||||||
import '../backend.dart';
|
import '../backend.dart';
|
||||||
import '../database.dart';
|
|
||||||
|
|
||||||
class EnsembleText extends StatelessWidget {
|
class EnsembleText extends StatelessWidget {
|
||||||
final int ensembleId;
|
final int ensembleId;
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:musicus_database/musicus_database.dart';
|
||||||
|
|
||||||
import '../backend.dart';
|
import '../backend.dart';
|
||||||
import '../database.dart';
|
|
||||||
|
|
||||||
class WorksByComposer extends StatelessWidget {
|
class WorksByComposer extends StatelessWidget {
|
||||||
final int personId;
|
final int personId;
|
||||||
|
|
|
||||||
|
|
@ -14,6 +14,8 @@ dependencies:
|
||||||
sdk: flutter
|
sdk: flutter
|
||||||
moor:
|
moor:
|
||||||
moor_ffi:
|
moor_ffi:
|
||||||
|
musicus_database:
|
||||||
|
path: ../database
|
||||||
musicus_player:
|
musicus_player:
|
||||||
path: ../player
|
path: ../player
|
||||||
path:
|
path:
|
||||||
|
|
@ -21,10 +23,6 @@ dependencies:
|
||||||
rxdart:
|
rxdart:
|
||||||
shared_preferences:
|
shared_preferences:
|
||||||
|
|
||||||
dev_dependencies:
|
|
||||||
build_runner:
|
|
||||||
moor_generator:
|
|
||||||
|
|
||||||
flutter:
|
flutter:
|
||||||
uses-material-design: true
|
uses-material-design: true
|
||||||
fonts:
|
fonts:
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue