2021-01-09 11:03:41 +01:00
# Ğecko
2020-12-13 05:43:52 +01:00
2023-03-01 18:42:29 +01:00
Ğecko is mobile client for Duniter v2s blockchain (Ḡ1v2): https://duniter.org/blog/duniter-substrate< br >
It use polkawallet_sdk package to interact with Duniter: https://github.com/polkawallet-io/sdk
2020-12-13 05:43:52 +01:00
2023-03-01 18:42:29 +01:00
This application is maintained by [Axiom-Team association ](https://axiom-team.fr/ ).
2020-12-15 13:00:48 +01:00
2023-03-01 18:42:29 +01:00
You can download the last version of the app [here ](https://forum.duniter.org/t/gecko-gdev-last-build/9367/last ).< br >
You can ask questions about Ḡecko developpement in our [Duniter forum ](https://forum.duniter.org/t/gecko-talks-user-support/9372/last ).
2021-04-01 23:45:12 +02:00
2020-12-15 13:00:48 +01:00
2021-01-09 11:03:41 +01:00
< div align = "center" >
2022-06-16 01:40:47 +02:00
![Demo Gif ](https://git.duniter.org/clients/gecko/-/raw/master/images/demo-0.0.9+2.gif )
2021-01-09 11:03:41 +01:00
< br > < br >
2021-02-10 20:15:21 +01:00
< / div >
## Develop
2023-03-01 18:42:29 +01:00
To contribute to the code, we advise you to install the following development environment:
2021-02-10 20:15:21 +01:00
2023-03-01 18:42:29 +01:00
1. [Android Studio ](https://developer.android.com/studio/install )
2. [Flutter ](https://docs.flutter.dev/get-started/install )
3. [VSCode ](https://code.visualstudio.com/docs/setup/linux ) or [VSCodium ](https://vscodium.com/ )
2023-03-01 11:47:02 +01:00
2023-03-01 18:42:29 +01:00
This will take about 12GB on your drive and 20 min of your time (with a good connection). Don't
2023-03-01 11:47:02 +01:00
hesitate to ask on the forum for a peer-coding session if you are stuck.
2021-02-10 20:15:21 +01:00
2023-03-01 18:42:29 +01:00
At the end, `flutter doctor` command should be OK for what you need.
2021-02-10 20:15:21 +01:00
### Android Studio
Android Studio will let you set up an Android VM and install tools you need.
2023-03-01 11:47:02 +01:00
- Install [Android Studio ](https://developer.android.com/studio/ ) using your favorite installation
method.
2021-02-10 20:15:21 +01:00
- At startup, do not open a project but click "configure" at the bottom of the "Welcome" menu
- In "SDK Manager"
2023-03-01 18:42:29 +01:00
- SDK Platforms tab
- select Android 11 (R) API level 30 (default) or higher
2021-02-10 20:15:21 +01:00
- In "AVD Manager"
2023-03-01 18:42:29 +01:00
- create a virtual machine
2021-02-10 20:15:21 +01:00
If you reach this point without trouble, you're good to go for the next step.
2023-03-01 18:42:29 +01:00
### iOS (Xcode on Mac)
TODO: documentation
2021-02-10 20:15:21 +01:00
### Flutter SDK
2023-03-01 11:47:02 +01:00
Flutter is a powerfull SDK to develop Android
apps. [Install it ](https://flutter.dev/docs/get-started/install/linux ) with your favorite
installation method.
2021-02-10 20:15:21 +01:00
### VSCode
2023-03-01 11:47:02 +01:00
We are using VSCode and therefore document the process for this IDE. Of course you're free to use
whatever you want.
Clone the ğecko repo and open a dart file (e.g. `lib/main.dart` ). VSCode will suggest you to insall
relevant extensions.
2021-02-10 20:15:21 +01:00
2023-03-01 18:42:29 +01:00
### Launch the app in debug mode
2021-02-10 20:15:21 +01:00
2023-03-01 18:42:29 +01:00
Start a VM, then open a dart file (e.g. `lib/main.dart` ), type the `F5` key to build the code. The app should open
2023-03-01 11:47:02 +01:00
automatically in your VM which is running.
2021-04-19 23:52:44 +02:00
2023-03-01 18:42:29 +01:00
### Build APK
2021-12-19 21:05:04 +01:00
2023-03-01 18:42:29 +01:00
You will need to generate PlayStore key or disable signing APK before continue.
Then, check this script and launch it:
2021-12-19 21:05:04 +01:00
2023-03-01 18:42:29 +01:00
```
./scripts/build-apk.sh
```
2021-04-19 23:52:44 +02:00
2023-03-01 18:42:29 +01:00
### Integration tests
2021-04-19 23:52:44 +02:00
2023-03-01 18:42:29 +01:00
Open an android or iOS emulator, then launch this script:
2021-12-19 21:05:04 +01:00
```
2023-03-01 18:42:29 +01:00
./integration_test/launch_test.sh
2021-12-19 21:05:04 +01:00
```
2023-03-01 18:42:29 +01:00
It will start the [default test scenario ](https://git.duniter.org/clients/gecko/-/blob/master/integration_test/scenarios/gecko_complete.dart ).
2021-12-19 21:05:04 +01:00
2023-03-01 18:42:29 +01:00
You can start another scenario defined [here ](https://git.duniter.org/clients/gecko/-/tree/master/integration_test/scenarios ) specifying the name of the file without its extension, for example to run migrate_cesium_identity.dart test:
2021-12-19 21:05:04 +01:00
2023-03-01 18:42:29 +01:00
```
./integration_test/launch_test.sh migrate_cesium_identity
```
2021-12-19 21:05:04 +01:00
2023-03-01 18:42:29 +01:00
### A problem ?
2021-05-31 22:00:27 +02:00
2023-03-01 18:42:29 +01:00
Please open an issue here: https://git.duniter.org/clients/gecko/-/boards