Skip to content
iOS/Android app for Invoice Ninja built with Flutter
Branch: master
Clone or download
Latest commit aff19bf Mar 19, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
android Bug fix Mar 19, 2019
assets/images Update logo Sep 16, 2018
ios Bug fix Mar 19, 2019
samples Flutter upgrade Nov 11, 2018
stubs Add edit to context menus Feb 11, 2019
test_driver Working on tests Mar 4, 2019
.gitignore Login Sep 27, 2018
LICENSE.txt Add license May 17, 2018 Working on tests Mar 1, 2019
analysis_options.yaml Update Flutter Mar 4, 2019
invoiceninja.iml iOS app Sep 2, 2018
invoiceninja_android.iml Email templates Aug 13, 2018
pubspec.lock Working on tests Mar 4, 2019
pubspec.yaml Stub fix Dec 12, 2018

Invoice Ninja

Companion 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


  • Dashboard
  • Clients
  • Products
  • Invoices
  • Quotes
  • Payments
  • Projects
  • Tasks
  • Vendors
  • Expenses
  • Credits
  • Recurring
  • Tablet support
  • Desktop support

Application Architecture

The application was created using the Flutter Redux Starter.

The architecture is based off these two projects:

Blog Posts

Developer Notes

  • Run cp lib/.env.dart.example lib/.env.dart to create the config file
  • Run cp android/ android/ to create the keys file
  • 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 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/ 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.
  • Run flutter run while you have a device connected to the computer or an emulator running and now you can run it.
  • Run flutter drive --target=test_driver/products_it.dart to run the tests


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

You can’t perform that action at this time.