|
|
||
|---|---|---|
| .github/workflows | ||
| android | ||
| assets/images | ||
| fastlane/metadata/android/en-US | ||
| ios | ||
| lib | ||
| linux | ||
| macos | ||
| samples | ||
| stubs | ||
| test | ||
| test_driver | ||
| web | ||
| windows | ||
| .gitignore | ||
| .metadata | ||
| LICENSE.txt | ||
| README.md | ||
| analysis_options.yaml | ||
| invoiceninja.iml | ||
| invoiceninja_android.iml | ||
| pubspec.lock | ||
| pubspec.yaml | ||
| run_all_it_tests.sh | ||
| starter.sh | ||
README.md
Invoice Ninja
Client app for the Invoice Ninja web app.
Setting up the app
- Run
cp lib/.env.dart.example lib/.env.dartto create the config file. - Run
cp android/app/build.gradle.dev android/app/build.gradleto support running the code unsigned. - Run
flutter runwhile 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
- Intro to Google Flutter
- Using Redux to manage state
- Handling complex forms
- Architectural review
- Additional thoughts
Code generation
- Run
flutter packages pub run build_runner build --delete-conflicting-outputsto 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.dartto run the tests
Code Signing
- Run
cp android/app/build.gradle.prod android/app/build.gradleto support running the code signed - Run
cp android/key.properties.example android/key.propertiesto create the keys file - Run
keytool -genkey -v -keystore key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias invoiceninjato generate a key to be able to sign the android application. - Update
android/key.propertiesaccording 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/appdirectory.
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.