Skip to content
iOS/Android app for Invoice Ninja built with Flutter
Branch: master
Clone or download
Latest commit aff19bf Mar 19, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.idea
android Bug fix Mar 19, 2019
assets/images Update logo Sep 16, 2018
ios Bug fix Mar 19, 2019
lib
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
.metadata
LICENSE.txt Add license May 17, 2018
README.md 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
starter.sh Stub fix Dec 12, 2018

README.md

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

Features

  • 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/key.properties.example android/key.properties 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/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.
  • 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

Contributions

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.