2
0
mirror of https://github.com/inventree/inventree-app.git synced 2025-04-27 21:16:48 +00:00
inventree-app/BUILDING.md
Oliver d4cff1a5b9
Barcode scanner updates (#562)
* Add BUILDING.md

* Replace scaning library

- Out with qr_code_scanner
- In with flutter_zxing

* Update specs for jdk / kotlin / gradle

- NFI what this all means?

* Refactor barcode scanning widget

* Refactor barcode overlay

* Add handlers

* Update release notes

* Fix AppBar color

* Enhance attachment widget

* remove unused import

* Improved icon

* Select theme from main drawer
2024-12-06 00:08:04 +11:00

65 lines
1.6 KiB
Markdown

## InvenTree App Development
For developers looking to contribute to the project, we use Flutter for app development. The project has been tested in Android Studio (on both Windows and Mac) and also VSCode.
## Prerequisites
To build the app from source, you will need the following tools installed on your system:
- Android Studio (with Flutter and Dart plugins)
### iOS Development
For iOS development, you will need a Mac system with XCode installed.
### Java Version
Some versions of Android Studio ship with a built-in version of the Java JDK. However, the InvenTree app requires [JDK 17](https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html) to be installed.
If you see any errors related to JDK version mismatch, download and install the correct version of the JDK (from the link above) and update your Android Studio settings to point to the correct JDK location:
```bash
flutter config --jdk-dir /path/to/jdk
```
## Invoke Tasks
We use the [invoke](https://www.pyinvoke.org) to run some core tasks - you will need python and invoke installed on your local system.
## Getting Started
Initial project setup (after you have installed all required dev tools) is as follows:
Generate initial translation files:
```
invoke translate
```
Install required flutter packages:
```
flutter pub get
```
You should now be ready to debug on a connected or emulated device!
## Building Release Versions
Building release versions for target platforms (either android or iOS) is simplified using invoke:
### Android
Build Android release:
```
invoke android
```
### iOS
Build iOS release:
```
invoke ios
```