Go to file
Gianfranco Gasbarri 4557c7e1ec Fixed tests for Tablet/Desktop layout 2020-06-11 19:30:24 +01:00
.github/workflows Languages 2020-05-28 16:00:13 +03:00
android ios fixes 2020-03-22 14:12:59 +02:00
assets/images Payment terms 2020-05-26 11:49:28 +03:00
ios ios fixes 2020-03-22 14:12:59 +02:00
lib Fixed tests for Tablet/Desktop layout 2020-06-11 19:30:24 +01:00
samples Settings 2019-11-17 14:43:25 +02:00
stubs Data tables columns 2020-06-10 22:27:31 +03:00
test Web 2019-11-12 23:01:45 +02:00
test_driver Fixed tests for Tablet/Desktop layout 2020-06-11 19:30:24 +01:00
web Add manifest.json 2020-06-08 17:49:04 +03:00
.gitignore PDF support 2019-12-26 21:25:45 +02:00
.metadata
LICENSE.txt Update copyright year 2019-05-28 23:28:32 +03:00
README.md Handle refund error 2020-05-15 18:31:28 +03:00
analysis_options.yaml Add hashCode cache 2020-05-21 11:23:45 +03:00
invoiceninja.iml
invoiceninja_android.iml
pubspec.lock Show clear error if logging into v4 web app 2020-06-11 17:05:43 +03:00
pubspec.yaml Hide user from list 2020-06-08 20:55:28 +03:00
run_all_it_tests.sh Combine all IT tests to one suite so as not to open and close the app between them. 2019-06-13 23:00:09 +03:00
starter.sh Payment terms 2020-05-25 20:14:07 +03:00

README.md

Invoice Ninja

Client app for the Invoice Ninja web app.

Note: the mobile app requires the latest version of the web app.

View Invoice List Invoices Contact Details Edit Product

Setting up the app

  • Run cp lib/.env.dart.example lib/.env.dart to create the config file.
  • Run cp android/app/build.gradle.dev android/app/build.gradle to support running the code unsigned.
  • Run flutter run while you have a device connected to the computer or an emulator running and now you can run it.

Note: if you don't have an Invoice Ninja backend you can set DEMO_MODE to true in lib/.env.dart to run the app offline.

Application Architecture

The application was created using the Flutter Redux Starter.

The architecture is based off these two projects:

Blog Posts

Code generation

  • 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..

Tests

  • Run flutter drive --target=test_driver/all_it.dart to run the tests

Code Signing

  • 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.

Credits

Special thanks to:

Contributions

We gladly accept contributions! If you'd like to get involved with development please join our Slack group.