Go to file
Hillel Coren c48e82d56a Improve time picker 2020-12-28 12:15:14 +02:00
.github/workflows Update build 2020-12-02 19:35:16 +02:00
android Fix for text input crash 2020-12-24 10:24:54 +02:00
assets/images Add card meta data 2020-08-16 18:54:45 +03:00
fastlane/metadata/android/en-US Update title 2020-12-16 09:20:22 +02:00
ios ios build 2020-12-11 10:23:53 +02:00
lib Improve time picker 2020-12-28 12:15:14 +02:00
linux Add linux support 2020-09-27 15:29:55 +03:00
macos ios build 2020-12-11 10:23:53 +02:00
samples Update fasttrack meta-data 2020-12-15 23:26:10 +02:00
stubs Don’t clear selected when deleting 2020-12-03 19:47:31 +02:00
test Web 2019-11-12 23:01:45 +02:00
test_driver macOS support 2020-11-08 17:30:00 +02:00
web Track login errors 2020-10-04 13:35:48 +03:00
windows Update Windows build files 2020-09-16 21:20:02 +03:00
.gitignore PDF support 2019-12-26 21:25:45 +02:00
.metadata
LICENSE.txt
README.md Update readme 2020-12-16 09:46:00 +02:00
analysis_options.yaml Hide Dart UI error 2020-09-03 20:37:56 +03:00
invoiceninja.iml
invoiceninja_android.iml
pubspec.lock Add null check 2020-12-27 22:01:23 +02:00
pubspec.yaml Add null check 2020-12-27 22:01:23 +02:00
run_all_it_tests.sh
starter.sh Categories 2020-10-25 16:33:31 +02:00

README.md

Invoice Ninja

Client app for the Invoice Ninja web app.

  • Google Play Store: v4 | v5
  • Apple App Store: v4 | v5

Dashboard View Invoice List Invoice New Invoice

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 setup you can test the app with these credentials:

  • Email: demo@invoiceninja.com
  • Password: Password0
  • URL: demo.invoiceninja.com

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

https://github.com/invoiceninja/invoiceninja#credits

Contributions

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