Contribuer au code de Duniter App


#1

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 (site en anglais). Renseigner les 3 champs proposés :

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

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, vous pouvez passer cette étape.

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

Vous aurez alors votre propre version du code de Duniter, dans votre dépôt GitHub :

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/

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 :

Clonez votre fork

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

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

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.

À 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

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

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

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...

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

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:

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 :

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” () pour lancer l’application.
Vous pouvez aussi utiliser l’icone () 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 :

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 :wink: : correction à appliquer.


#2

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.