gecko/README.md

119 lines
3.8 KiB
Markdown
Raw Normal View History

2021-01-09 11:03:41 +01:00
# Ğecko
2020-12-13 05:43:52 +01:00
Ğecko is a transaction client owned by [Axiom-Team association] and written in Dart. It is fast and secure thanks to native code compilation. It is not intended to manage member accounts, but rather simple wallets.
2020-12-13 05:43:52 +01:00
2021-02-10 20:15:21 +01:00
The development is quite early, you can participate in the discussion [on the Duniter forum](https://forum.duniter.org/t/gecko-nouveau-client-de-paiements-1-sur-mobile-en-cours-de-developpement-dart-flutter/7857) (mostly FR)
2020-12-15 13:00:48 +01:00
2021-04-01 23:45:12 +02:00
[Axiom-Team association]: https://axiom-team.fr/
2021-02-10 20:15:21 +01:00
## Getting Started
2020-12-15 13:00:48 +01:00
2021-01-09 11:03:41 +01:00
<div align="center">
2021-01-30 19:17:48 +01:00
![Demo Gif](https://git.p2p.legal/axiom-team/gecko/raw/branch/master/assets/Demo-0.0.1+0.gif)
2021-01-09 11:03:41 +01:00
<br><br>
![Foo](https://git.p2p.legal/axiom-team/gecko/raw/commit/1cd2d63fe02949edabb69aa5fc498512c01db416/images/art/bb_gecko.png)
2021-02-10 20:15:21 +01:00
</div>
## Develop
To contribute to the code, we advise you to install the following development environment.
1. Android Studio
- Android VM
- Android NDK
1. Flutter SDK
1. VSCode/Codium Flutter extension
This will take about 12GB on your drive and 30 min of your time (with a good connection). Don't hesitate to ask on the forum for a peer-coding session if you are stuck.
### Android Studio
Android Studio will let you set up an Android VM and install tools you need.
- Install [Android Studio](https://developer.android.com/studio/) using your favorite installation method.
- At startup, do not open a project but click "configure" at the bottom of the "Welcome" menu
- In "SDK Manager"
- SDK Platforms Ttab
- note your SDK folder location (later used for Rust environment variables)
- select Android 11 (R) API level 30 (default)
- SDK Tools
- select NDK (native development kit used to compile Rust to native target)
- In "AVD Manager"
- create a virtual machine (ours is Pixel 4 32bits machine)
- launch it in the emulator
If you reach this point without trouble, you're good to go for the next step.
### Flutter SDK
Flutter is a powerfull SDK to develop Android apps. [Install it](https://flutter.dev/docs/get-started/install/linux) with your favorite installation method.
### VSCode
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.
### Build the app
2021-04-19 23:52:44 +02:00
In a dart file (e.g. `lib/main.dart`), type the `F5` key to build the code. The app should open automatically in your VM which is running.
### Build your app for Desktop
#### Linux
Install dependancies:
`sudo apt-get install clang cmake ninja-build pkg-config libgtk-3-dev`
Then build debug for linux:
2021-04-19 23:52:44 +02:00
`flutter run -d linux`
If you get this error:
```
flutter /usr/share/cmake-3.16/Modules/FindPkgConfig.cmake:643 (_pkg_check_modules_internal)
```
Please try:
`sudo apt install liblzma-dev`
then
`flutter clean && flutter run -d linux`
2021-05-31 22:00:27 +02:00
## Roadmap
2021-06-08 19:39:31 +02:00
- v0.1.0 (expected date: 21-08-16)
- Reorganization of persistent data
- Complete implementation of Figma model (made by Boris)
2021-05-31 22:00:27 +02:00
- Account management (creation, security)
- Payment (QR-code generation / reading, form)
2021-06-08 19:39:31 +02:00
- Viewing transaction history
2021-05-31 22:00:27 +02:00
- Finalization of integration tests and unit tests
2021-06-08 19:39:31 +02:00
- Completing the network scan when starting the application
2021-05-31 22:00:27 +02:00
- F-Droid publication
- v1.0
2021-06-08 19:39:31 +02:00
- Multi-vault management
- Cesium import
- Advanced search
- Item basket management
- Transaction monitoring
- Contacts / Messaging
- IOS compatibility
- Sharding (sharing of key fragments)
- Apple AppStore and Google PlayStore publication
2021-05-31 22:00:27 +02:00
- Mock-up and UX design of future functionalities
- v2.0
2021-06-08 19:39:31 +02:00
- Opaque bypass
2021-05-31 22:00:27 +02:00
- NFC payment
- Desktop compatibility
2021-06-08 19:39:31 +02:00
- Web of trust management (certifications, promises of certifications)
- Calendar / community
2021-04-19 23:52:44 +02:00