Portefolio de Tim

CowCalendar

Genèse du projet

Les éleveurs de bovin ne vivent pas comme nous au rythme d’une année de 365 jours. Une vache a un temps de gestation d’environ 282 jours. Si on commence à chercher, il semblerait qu’il n’existe pas vraiment de calendrier qui puisse permettre de se rappeler des faits 282 jours après une date.

Cette problématique m’a été soumise par un ami à moi qui étais confronté à ce problème. Sachant que je suis passionné d’informatique et de développement, il m’a demandé s’il était possible de développer une application mobile pour un téléphone Android (Nokia 3).

Je me suis dit qu’il était vraiment intéressant de réaliser quelque chose de concret et qui répondait à une vraie problématique.

Page principale

Choix technologique

Ajout d’un bovin en chaleur

À cette époque, j’étais en terminale. Je développais en Python, il m’a paru intéressant de réaliser cette application avec Kivy, un framework graphique assez récent qui permet de faire des applications mobiles avec Python. Après quelques essais de développement, je me suis très vite rendu compte que le développement serait laborieux. Le framework n’était pas encore assez élaboré et que je n’étais pas encore assez compétent pour comprendre le fonctionnement du code.

Je me suis donc tourné vers Unity, un moteur de jeu vidéo qui permet de développer des jeux pour ordinateur, tablette et smartphone. On utilise du C#. J’ai utilisé ce langage un an auparavant pour développer un petit jeu avec ce logiciel. J’ai donc commencé à tester un peu, mais très vite, je me suis rendu compte que mon utilisation n’était pas vraiment adapté.

Enfin, j’ai dû pencher pour une solution qui me faisait un peu peur. Développer en natif. Je ne connaissais pas le JAVA, ni la POO et je n’avais aucune connaissance en SQL et en base de données. Je me suis quand même lancé avec des tutos, et du bidouillage. Finalement, je me suis rendu compte que c’était surement la meilleure option pour moi.

Technologies utilisées

  • Le Java pour développer la partie logique
  • Le XML pour les graphiques
  • SQLite pour la base de données
  • Android Studio comme IDE
  • GitHub pour versionner mon code.

Choix de design

Pour cette partie, j’étais bien loin d’imaginer qu’il existait des guid-line, des widgets spécialisés et toutes ces choses. J’ai donc tout développé, de la bottom bar au calendrier, j’ai donc réinventé la roue à chaque fois.

Gestion du début de la gestation

Mes impressions sur le projet

Suppression d’un évènement

Ce projet a vraiment été très excitant car c’était mon premier développement mobile, et j’ai vraiment appris beaucoup de choses . Avec le recul, je me rends compte de toutes les erreurs que j’ai pu faire par manque de connaissance. Malgré tout l’application est actuellement utilisée et elle a même besoin d’améliorations fonctionnelles comme la possibilité de choisir une date de début.

Je pense qu’un jour, je redévelopperai cette application avec une vraie conception orientée objet et une utilisation de widgets plus appropriés que les miens.

Ce projet n’a pas le plus beau rendu ou les plus belles lignes de codes mais il m’a appris une chose essentielle : j’ai la capacité de développer avec une technologie inconnue.

J’ai compris que l’apprentissage se fait de manière beaucoup plus naturelle avec un projet qu’avec des livres. Cette méthodologie est devenue depuis la mienne. Pour découvrir une notion, je lis un peu sur le sujet et je me confronte très vite à la réalité du terrain, même si certains jours sont plus difficiles que d’autres (surtout au début quand on ne comprend rien …).

Lien vers le code

Thème par Anders Norén