42 lines
1.7 KiB
Markdown
42 lines
1.7 KiB
Markdown
# Frontend
|
|
|
|
The frontend of this project is a Flutter application designed to run on both Android and iOS devices (and possibly as a PWA). The frontend is responsible for displaying the user interface and handling user input. It communicates with the backend via a REST-api to retrieve and send data.
|
|
|
|
|
|
## Getting Started
|
|
The flutter application is divided into multiple chunks of code.
|
|
- the `lib` directory contains the main code of the application.
|
|
- the `android` and `ios` directories contain platform-specific code.
|
|
- the root directory contains configuration files and metadata.
|
|
|
|
To run the application, you need to have the Flutter SDK installed. You can find instructions on how to do this [here](https://flutter.dev/docs/get-started/install).
|
|
|
|
Once you have the Flutter SDK installed, you can locally install the dependencies by running:
|
|
```bash
|
|
flutter pub get
|
|
```
|
|
|
|
## Development
|
|
### ...
|
|
### Icons and logos
|
|
The application uses a custom launcher icon and splash screen. These are managed platform-independently using the `flutter_launcher_icons` package.
|
|
|
|
To update the icons, change the `flutter_launcher_icons.yaml` configuration file. Especially the `image_path` is relevant. Then run
|
|
```bash
|
|
dart run flutter_launcher_icons
|
|
```
|
|
|
|
|
|
## Deployment (using fastlane)
|
|
The application is deployed to the Google Play Store and the Apple App Store using fastlane:
|
|
|
|
[https://docs.fastlane.tools/](https://docs.fastlane.tools/)
|
|
|
|
Fastlane is installed as a Ruby gem. Since the bundler-gemfile is scoped to a single directory, a gemfile is included in both the `android` and `ios` directories. Once installed, the usage is
|
|
```bash
|
|
cd frontend/android # or ios
|
|
bundle install
|
|
bundle exec fastlane <lane>
|
|
```
|
|
This is reused in the CI/CD pipeline to automate the deployment process.
|