# Contribuer au code de Duniter App

**URL:** https://forum.duniter.org/t/contribuer-au-code-de-duniter-app/932
**Category:** Mobile apps
**Created:** [3 June 2016 10:12 UTC](https://forum.duniter.org/t/contribuer-au-code-de-duniter-app/932 "2016-06-03T10:12:11Z")
**Posts on this page:** 3
**Page:** 1

<div class="post-metadata">

### Author: ![naivalf27](https://forum.duniter.org/letter_avatar/naivalf27/32/5_5575768a8748004e209b776fc1b2916d.png) [@naivalf27](https://forum.duniter.org/u/naivalf27)
#### Post date: [3 June 2016 10:12 UTC](https://forum.duniter.org/t/contribuer-au-code-de-duniter-app/932/1 "2016-06-03T10:12:11Z")

</div>

## Introduction

Cet article est un tutoriel d’initiation au code source de l’application Duniter App. Celui-ci vous permettra, à travers une succession d’étapes, d’accéder à la maîtrise des outils et méthodes utilisés quotidiennement par les développeurs de Duniter App pour créer et modifier l’application.

À la fin de ce tutoriel, vous serez donc _capable de modifier l’application_. Et si le cœur vous en dit, vous pourrez même réaliser une modification et partager celle-ci avec le dépôt de code principal, afin que celle-ci soit officiellement intégrée et disponible aux utilisateurs !

À vos claviers !

###Sommaire

- Niveau I : Récupérer le code source
- Niveau II : Installation logiciel
- Niveau III : mise en place de la librairie Libsodium
- Niveau IV : récupérer le projet
- Niveau V : Lancer l’application
- Niveau VI : À vous

##Niveau I : Récupérer le code source

Ce premier niveau consiste à créer _votre propre version_ des sources du logiciel et de récupérer cette copie sur votre ordinateur. Vous y produirez :

- Votre propre compte _GitHub_
- Votre propre version du logiciel, votre _fork_
- Une copie locale des fichiers de code source provenant de votre _fork_

###Créez un compte GitHub

> Si vous disposez déjà d’un compte GitHub, vous pouvez passer cette étape.

Rendez-vous sur [https://github.com](https://github.com) (site en anglais). Renseigner les 3 champs proposés :

- Nom d’utilisateur
- E-mail
- Mot de passe

 ![](https://forum.duniter.org/uploads/default/original/2X/7/78f20cc5bc961d1ace2307e18386086f0164f458.png)

Vous recevrez probablement un e-mail de confirmation qu'il vous faudra valider. Une fois cette étape passée, vous devriez disposer d'un compte GitHub .

###Forkez le dépôt principal

> Si vous avez déjà forké le dépôt principal [duniter/duniter-android-app](https://github.com/duniter/duniter-android-app), vous pouvez passer cette étape.

Rendez-vous à l'adresse [https://github.com/duniter/duniter-android-app](https://github.com/duniter/duniter-android-app). Cliquez sur le bouton « Fork » en dans le coin supérieur droit de la page :

![](https://forum.duniter.org/uploads/default/original/2X/d/da51b860d0cc02f80f96b6846a38062d3a8d8c39.png)

Vous aurez alors _votre propre version_ du code de Duniter, dans _votre dépôt_ GitHub :

 ![](https://forum.duniter.org/uploads/default/original/1X/590e8e80dfbb23c72bbe77ce4ce5881a07e9722a.png)

### Installer Git

L'installation de Git dépend de votre système d'exploitation. Suivez simplement les indications présentes sur : [https://git-scm.com/](https://git-scm.com/)

### Cloner votre fork

A ce stade, vous êtes en mesure de récupérer votre version du code source (votre _fork_), afin de pouvoir travailler dessus.

#### Ouvrez Git en ligne de commande

Pour récupérer le code source, lancez Git en mode console.

- Sous Linux et MacOS, ouvrez tout simplement le Terminal
- Sous Windows lancez le programme _Git Bash_ :

![](https://forum.duniter.org/uploads/default/original/2X/6/665fe4ede2924d97201368c67033806e25d407bf.png)

#### Clonez votre fork

Retournez sur la page web GitHub, puis trouvez le bouton « Clone or download » :

 ![](https://forum.duniter.org/uploads/default/original/2X/8/80c538d0fdae09b1c9e874b365f486bceaf0c6f6.png)

Cliquez dessus, vous pourrez alors copier l'URL de clonage en cliquant sur l'icône de valise :

 ![](https://forum.duniter.org/uploads/default/original/1X/97f75b4ff9774b9c7503fc4de027df36d34b498f.png)

Vous n'avez plus qu'à retourner dans votre console Git et saisir :

```
git clone [coller l'URL copiée] --recursive
```

ce qui donne dans mon cas :

```
git clone https://github.com/naivalf27/duniter-android-app.git --recursive
Cloning into 'duniter-android-app'...
remote: Counting objects: 6212, done.
remote: Total 6212 (delta 0), reused 0 (delta 0), pack-reused 6212
Receiving objects: 100% (6212/6212), 6.26 MiB | 793.00 KiB/s, done.
Resolving deltas: 100% (3594/3594), done.
Checking connectivity... done.
Submodule 'kalium-jni/src/main/jni/libsodium' (https://github.com/jedisct1/libsodium) registered for path 'kalium-jni/src/main/jni/libsodium'
Cloning into 'kalium-jni/src/main/jni/libsodium'...
remote: Counting objects: 18327, done.
remote: Total 18327 (delta 0), reused 0 (delta 0), pack-reused 18327
Receiving objects: 100% (18327/18327), 5.12 MiB | 461.00 KiB/s, done.
Resolving deltas: 100% (10127/10127), done.
Checking connectivity... done.
Submodule path 'kalium-jni/src/main/jni/libsodium': checked out '194a3c60480dde18150eff18b829b0c17c4dc19b'
```

Si vous êtes arrivés à un comportement similaire, **bravo** , vous posséder désormais le code source Duniter App!

## Niveau II : Installation logiciel

Ce second niveau vise à obtenir les outils de base pour exécuter le code source, et vérifier son bon fonctionnement. Vous y réaliserez :

- l'installation du _JDK_
- l'installation du logiciel _Android Studio_
- l'installation du _NDK Android_

### Installer JDK

Le JDK ou _Java Development Kit_

Vous pouvez la télécharger sur le site [d’Oracle](http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html).

 ![](https://forum.duniter.org/uploads/default/original/1X/fef4f4dfe7c2168cb27c9e7f5e399fd547ce774a.png)

À vous de télécharger le bon fichier en fonction de votre OS.

Il ne vous reste plus qu’à l’installer normalement.

### Installer Android Studio

Vous trouverez toute les sources a cette adresse [AndroidStudio-Downloads](https://developer.android.com/studio/index.html#downloads)

Pour Windows télécharger le fichier sans SDK Android:

 ![](https://forum.duniter.org/uploads/default/original/1X/3b8fa2f5c0465b13ae5ce74d49702e0c9f027866.png)

#### Sous Linux

Il vous suffit de décompresser le fichier ZIP, d’ouvrir un terminal dans ce dossier et de taper la commande:

> ./bin/studio.sh

#### Sous Windows et Mac OS

Il vous suffit d’installer l’exécutable que vous venez de télécharger.

#### Toutes machines confondues

A la fin de l’installation ou au premier lancement, Andorid Studio vous indiqueras que vous ne possédez pas de SDK et vous proposera de l’installer. Si vous l’avez déjà installé vous pouvez indiqué ou il se trouve.Sinon installer la version qu’il vous propose.

### Installer NDK

Le NDK est utiliser pour l’exécution de code sous C++.  
Vous pouvez le télécherger sur [ce site](https://developer.android.com/ndk/downloads/index.html)

Attention : n’installer pas la version 12 du NDK. Elle n’est pas encore stable.

Encore une fois télécharger la version qui vous concerne et décompresser le à coté de votre SDK.

Dans android studio aller dans `Project Structure...`

 ![](https://forum.duniter.org/uploads/default/original/1X/04e64b769cbd45b9d275cd5f81002a399a1a7684.png)

Une fenêtre comme celle-ci devrait s’ouvrir :

 ![](https://forum.duniter.org/uploads/default/original/1X/ceb75301172038e75f5c43b328dd7febd7bedc7e.png)

Vous pouvez donc renseigner la position du NDK à cette endroit.

## Niveau III : mise en place de la librairie Libsodium

### Sous Linux

Aller dans votre clone du projet Duniter-android-app et lancer un terminal.

Une fois dedans lancer la commande:

> ./autogen.sh

Vous n’avez plus qu’à patienter.

#### Sous Windows et Mac OS

Je suis désoler mais je n’ai pas encore trouver de solution autre que récupérer les fichier depuis un post sous Linux.

## Niveau IV : récupérer le projet

Lors du lancement d’Android Studio vous arriver sur cette fenetre:

 ![](https://forum.duniter.org/uploads/default/original/1X/33266d44fdbfd6c8b44e46a3664edafacaf0a316.png)

Sélectionner : “Open an existing Android Studio project”  
et indiquer le dossier de votre clone.

## Niveau V : Lancer l'application

Pour pouvoir lancer un émulateur, on va devoir en créer un.

Pour cela cliqué sur l’icone suivante :

 ![](https://forum.duniter.org/uploads/default/original/1X/46e959d1e616e34972a41f4d120a1d4f5beb0955.png)

Une fenêtre va s’ouvrir et vous proposer de créer un “Virtual Device” suivez le logiciel.

Si vous avez un téléphone Android vous pouvez le mettre en mode développeur et le brancher si vous souhaitez vois l’application sur votre téléphone.

Puis une fois l’émulateur de créer vous pouvez le bouton “Play” ( ![](https://forum.duniter.org/uploads/default/original/1X/70b2ce88a5e7aa5754f6a771cf5efed3c639a27b.png)) pour lancer l’application.  
Vous pouvez aussi utiliser l’icone ( ![](https://forum.duniter.org/uploads/default/original/1X/b7c419b33a43f6a43c5b756074ee0c199072f7d1.png)) pour lancer l’application en mode debug.

Android Studio vous demandera sur quel appareil vous souhaitez lancer l’application, sélectionner l’émulateur ou le téléphone et laissez faire.

## Niveau VI : À vous

Pour essayer vous pouvez essayer de modifier la page des règle de la monnaie pour quelle ressemble à ça :

 ![](https://forum.duniter.org/uploads/default/original/1X/e4a5ffe88d16b5e54ea43c4de88a6251f27a8240.png)

Pour cela vous aurez besoin de trouvez deux fichier:

Le controler : RulesFragment.java  
La view : fragment\_currency\_rules.xml

Vous aurez besoin de la méthode :

> SqlService.getBlockSql(getActivity()).last(currency.getId());

Qui sert à récupérer dans la base de donnée le dernier object Block qui possède un Dividende.

> BlockService.getCurrentBlock(getActivity(), currency, new CallbackBlock() {  
> @Override  
> public void methode(BlockUd blockUd) {
> 
> ```
> }
> });
> 
> ```

Qui sert à récupérer dans la blockchain le block courant.

Bonne chance !

Pour les tricheurs 😉 : [correction](https://github.com/duniter/duniter-android-app/blob/master/Exercice/exerch) à appliquer.

---

<div class="post-metadata">

### Author: ![demo](https://forum.duniter.org/user_avatar/forum.duniter.org/demo/32/1417_2.png) [@demo](https://forum.duniter.org/u/demo)
#### Post date: [3 June 2016 14:01 UTC](https://forum.duniter.org/t/contribuer-au-code-de-duniter-app/932/2 "2016-06-03T14:01:17Z")

</div>

If I could add 2 likes instead of one on this post, I will do it.

This is a very nice post, but on the other hand everybody observes how many work has to be done just before starting coding.

This is a deficiency, and we should find a way for someone to be able to code instantly.

There is a bundle that offers all things together, in order to have a web server, it is called xampp.

It is a nice idea for a bundle to be created, including all things together, so that someone will download this bundle in order to start immediatly coding in duniter project.

---

<div class="post-metadata">

### Author: ![Amelia742](https://forum.duniter.org/letter_avatar/amelia742/32/5_5575768a8748004e209b776fc1b2916d.png) [@Amelia742](https://forum.duniter.org/u/Amelia742)
#### Post date: [7 August 2019 13:55 UTC](https://forum.duniter.org/t/contribuer-au-code-de-duniter-app/932/3 "2019-08-07T13:55:20Z")

</div>

Hi,  
thank you so much for this post!

[Dafont](https://appsync.biz/dafont/) [Showbox](https://showbox.bio/) [Adam4adam](https://www.oovoo.onl/adam4adam/)
