Client app for the Invoice Ninja web app.
-
Initialize the config file
cp lib/.env.dart.example lib/.env.dart
-
Support running the code unsigned on Android
cp android/app/build.gradle.dev android/app/build.gradle
-
Run the app
flutter run
Note: if you don't have an Invoice Ninja backend setup you can test the app with these credentials:
- Email:
demo@invoiceninja.com
- Password:
Password0
- URL:
demo.invoiceninja.com
cp android/build.gradle.foss android/build.gradle
cp lib/utils/oauth.dart.foss lib/utils/oauth.dart
cp lib/ui/app/upgrade_dialog.dart.foss lib/ui/app/upgrade_dialog.dart
cp android/app/src/main/AndroidManifest.foss.xml android/app/src/main/AndroidManifest.xml
cp pubspec.foss.yaml pubspec.yaml
rm pubspec.lock
The application was created using the Flutter Redux Starter.
The architecture is based off these two projects:
- Intro to Google Flutter
- Using Redux to manage state
- Handling complex forms
- Architectural review
- Additional thoughts
- Run
flutter packages pub run build_runner build --delete-conflicting-outputs
to regenerate the model files. It will also remove the old generated files so conflicts are avoided..
- Run
flutter drive --target=test_driver/all_it.dart
to run the tests
- Run
cp android/app/build.gradle.prod android/app/build.gradle
to support running the code signed - Run
cp android/key.properties.example android/key.properties
to create the keys file - Run
keytool -genkey -v -keystore key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias invoiceninja
to generate a key to be able to sign the android application. - Update
android/key.properties
according to the parameters you entered in previous command when you generated the key - Open a new Firebase project from your console. Firebase is used for authentication.
- Inside the project go to Authentication and enable at least one method.
- After go to add a new Android application. For the package name add
com.invoiceninja.flutter
- Press "Register App" button.
- Download "google-services.json" and put it in
android/app
directory.
https://github.com/invoiceninja/invoiceninja#credits
We gladly accept contributions! If you'd like to get involved with development please join our Slack group.