Présentation
Curieux par nature, je cherche toujours à élargir mon horizon de compétences au travers mes expériences personnelles et professionnelles.
En parallèle des cours j’aime bien travailler sur des application mobiles, et me mettre en condition de création de projet et passer des heures a modéliser mon application et en apprendre d’avantage sur le langage Java et Javascript.
Compétences
Java
HTML
SQL
PHP
JavaScript
MySql
C#
CSS
WordPress
Parcours
Expérience professionnelle
Groupe Prisma Media
Stage - Développement applicatif pour l’application
Android eLisa (évolutions / corrections)
2021 - stage de 6 semaines
RATP, Département Maintenance Ferroviaire
Stage - Développement d'une application métier
Web pour l’Intranet de l'unité MRF-AME
2020 - 6 semaines
Rice Trotters
Vendeur, employé polyvalent
2018 - 8 mois
Moka Works (PME d’infogérance)
Stage - Résolution d'incidents systèmes et réseaux,
dépannage bureautique, scripts d'automatisation
2017 - 6 semaines
Projets
Stage RATP
Application sortie de composants
Durant mon stage à la RATP, j’ai effectué plusieurs activités en rapport avec le référentielle de BTS SIO, l’activité la plus importante était la création d’une application web qui est disponible maintenant sur l’intranet de la RATP.
Le nom de l’application est « Sortie composants » on peut le voir sur l’image des applications présentes sur le portail ci-dessus j’ai du créer 3 pages en
- HTML
- PHP
- JAVASCRIPT
- CSS
Cette application consiste a faire des sortie de composants d’un des magasin de logistique de la RATP. La création a durée 3 semaines le temps de tester toutes les pages et les interactions possibles.
Page 1 - Saisir son ordre de travail
Page 2 - Choisir sa tâche
Page 3 - Sortir le composant
Après avoir fini mon application web j’ai été amené à produire un Manuel d’utilisation pour les techniciens de la RATP pour pouvoir utiliser l’application.
Stage Prisma
Maintenance évolutive de l'application elisa
Durant mon stage chez Prisma Media j’ai effectué plusieurs activités en rapport avec le référentielle de BTS SIO, l’activité la plus importante était la résolution de tickets de bug et amélioration de l’application mobile Elisa qui est disponible sur Android et IOS.
Après la mise en place de mon poste de travail, j’ai eu pour tâche d’identifier des bug ou amélioration à faire dans l’application Elisa et les documenter dans le Git Lab de Prisma. J’avais une formulation a suivre pour documenter les bug:
- Indiquer l’environnement de test utilisé et la version
- Comment arriver au bug
- Ce qui ce passe
- Ce qui devrait se passer
J’ai réussi à identifier 5 bug mineur d’affichage et fonctionnel que vous retrouverez ci dessous.
J’ai passé plus de la moitié du temps de mon stage a résoudre des tickets de maintenance évolutive (bug ou amélioration), j’en ai résolu 4 au total, vous retrouverez ci dessous les informations concernant les bug rencontré et les amélioration que j’ai pu apporter avec des images avant et après mes modifications.
Ticket de bug #188
Le premier ticket que j’ai du résoudre était un bug que j’ai découvert en testant l’application sur mon portable qui avait une taille de police très grande par rapport à un réglage par défaut ce qui donnait une description coupé en deux à l’affichage, exemple ci-dessus.
J’ai essayé plusieurs méthodes pour régler ce problème d’afficahge:
- Changer le padding du texte
- Changer la taille du texte
- Changer la hauteur de la toolbar
Finalement la meilleur solution que j’ai pu trouver était de changer la hauteur de la toolbar en lui attribuant une hauteur minimum qui s’adaptera ensuite à la taille de l’écran et de la police d’écriture
Ticket de bug #186
C’est le deuxième ticket que j’ai du a résoudre il m’a pris moins de temps que le premier car je commençais à mieux comprendre la structure de l’application. Ce bug arrivait quand une personne arrivait sur une page de magazine et en regardant dans les magazines suggérées on peut retrouver le même magazine que la personne était en train de lire, exemple ci-dessus:
Pour ce bug il y avait différentes façon de la faire, j’ai choisi de filtrer le contenu au moment du modelage de la vue, de ce fait j’ai ajouté un filtre en plus de ce qu’il y avait ce qui donne comme résultat final des suggestions plus précises sans faire de redondance.
Ticket d'amélioration #163
Mon troisième ticket pour changer un peu on m’a attribué une amélioration à faire et cela concernait la couleur du bouton « Tout voir » qui s’affichait partout dans l’application il fallait changer :
- Background du bouton (Dark Mode)
- Ondulation des couleurs (Light Mode)
Pour faire cet amélioration j’ai du contacter la personne chargé du design qui m’a donné les codes couleurs à utiliser pour faire les modifications adapté ce qui donne ce résultat final ci-dessus.
Ticket de bug #189
Mon dernier ticket se portait sur correction de la marge qu’il y avait entre le bouton « Tout voir » et le contenu en bas du bouton qui est trop petit, exemple ci-dessus:
Pour modifier cette marge j’ai du changer visuellement les contraintes de direction du bouton et du contenu en bas du bouton ainsi le résultat final donne une meilleure marge entre ses deux éléments.
Stage Moka
Moka Works une entreprise d’infogérance dans lequel j’ai passé six semaines à apprendre sur les serveurs, les systèmes d’exploitation, la sécurité , les adresses IP, serveur DNS un peu tout ce qui touche au réseau.
Installation d'un seveur
On m’a confié la tâche d’installer un socle de virtualisation sur un Micro serveur HP et y configurer un Raid 5 (ZVOL1) pour pouvoir y installer une Machine virtuelle.
Proxmox est une solution de virtualisation libre service. Elle permet de mettre des serveur en ligne sur des machine virtuelles.
Application d'automatisation de commandes msDOS
C’est une application très très simple on a 3 boutons raccourcis de commande msDOS tel que :
- ping (Test la connexion à une IP donné)
- tracert (Trace tout le chemin pour arriver à L’IP saisie)
- ipconfig (Donne la configuration de l’IP de l’odinateur)
Et tout cela en sauvegardant tout les IP tapés dans la colonne de droite.
Tous les techniciens utilisaient la même commande ping et tracert pour suivre des serveur grâce a leur adresse IP, et l’application que je voulais créer devait servir a faire une liste d’IP pour faciliter la commande.
Maintenance informatique
Tout le long de mon stage j’ai été plusieurs fois amené a me déplacer chez des client pour remplacer des éléments défectueux, des déménagements de serveur, des déménagements de matériel bureautique, refaire parfois des structure réseau et installer des pack d’application.
Formation BTS SIO
Ce site est un projet de groupe réalisé à l’Ort Montreuil. Mon groupe de projet était composé de 2 camarades de classe ainsi que moi. On a utilisé un projet de site déjà existant en PHP avec une librairie Bootstrap qu’on a modifié avec le contexte que notre prof nous a donné.
Il y avait tout la base de données à créer ainsi que le front et le back end, on s’est partagé les taches à faire, je me suis occupé du front et back end de la page Emprunt et ainsi que certaines partie de la base de données.
Contexte GSB
Documentation technique
Formation BTS SIO
Cette application Java JForm est un projet de groupe réalisé à l’Ort Montreuil. Mon groupe de projet était composé de 2 camarades de classe ainsi que moi. On est parti de rien, on a crée toutes les pages, calasses et méthodes en JAVA nous mêmes avec l’aide de notre professeur.
Il y avait tout la base de données à créer et les méthodes (fonctions) on s’est partagé les taches à faire, je me suis occupé des méthodes des pages Visiteurs et Regions.
Contexte GSB
Documentation technique
Veille technologique
OUTILS DE DEVELOPPEMENT MOBILE
Introduction
Comment programmer une application native sur Android? Quels outils de développement pour faciliter la tâche?
Pour commencer, les premières questions à se poser sont:
- Quel langage de programmation utiliser?
- Quel Environnement de Développement (IDE) utiliser ?
Je tenterais de répondre ici à ces deux questions.
1/ Les outils de développements
Langages de programmation
Définition
Un langage de programmation est une notation conventionnelle utilisée pour formuler des algorithmes et générer des programmes informatiques qui appliquent ces algorithmes. Semblables aux langages naturels, les langages de programmation se composent de lettres, de vocabulaire, de règles grammaticales et de significations.
Intérêt
Les langages de programmation offrent une notation abstraite pour décrire de manière concise et facile à saisir les opérations de manipulation de données et l’évolution du déroulement du programme en fonction des situations.
Ceci l’esprit du programmeur de la prise en compte des spécificités du matériel informatique, et lui permet ainsi de se concentrer sur des problèmes plus avancés.
Un langage de programmation sert de moyen de communication avec l’ordinateur mais aussi entre programmeurs : les programmes étant d’ordinaire écrits, lus et modifiés par une équipe de programmeurs.
L’utilisation d’un langage est rendue possible par un traducteur automatique, qui est soit un compilateur, soit un interpréteur.
Quelques langages
Voici la liste des 10 langages les plus populaires utilisés dans la programmation mobile en 2020 (source : IEE Spectrum) :
Environnements de développement (IDE)
Définition
En programmation informatique, l’environnement de développement (en anglais : IDE pour Integrated Development Environment) est un ensemble d’outils qui peuvent augmenter la productivité des programmeurs qui développent des logiciels. Il comprend un éditeur de texte pour la programmation et des fonctions qui permettent de lancer le compilateur ou l’éditeur de lien en appuyant sur un bouton, et un débogueur en ligne qui permet au programme d’être exécuté ligne par ligne. Certains environnements sont dédiés à des langages de programmation spécifiques.
Intérêt
L’objectif de l’environnement de développement est d’augmenter la productivité du programmeur en automatisant certaines activités et en simplifiant les opérations. L’environnement de développement vise également à améliorer la qualité de la documentation relative au logiciel en cours de construction.
Un IDE propose, en général, plusieurs des outils suivants :
- Gestion de fichiers (répertoires, code source, ressources, configuration,..)
- Editeur de code source
- Outils de navigation
- Documentation dynamique
- Gestion de déploiement
- Compilateur
- Débogueur et outils de débogage
Quelques IDE
Intellij IDEA
IntelliJ IDEA est développé par JetBrains, et existe depuis 2011. Il prend en charge les langages de programmation Groovy, Java et Kotlin, et beaucoup d’autres via des plugins, dont Ruby, Perl, Python, R, Dart, Scala, SQL, JavaScript et TypeScript.
Il est distribué sous une licence Open Source Apache2, et une licence commerciale.
Android Studio
Android Studio est l’Environnement de Développement officiel de Google, qui l’a créé en 2014, basé sur IntelliJ IDEA. Il est spécialement conçu pour le développement d’applications mobiles Android. Il prend en charge les langages de programmation Java, C++ et Kotlin.
Il existe aujourd’hui plus de 3000 plugins pour IntelliJ.
Visual Studio
Visual Studio est un IDE développé par Microsoft, et qui existe depuis 1997. Il prend en charge C, C ++, CLI, Visual Basic .NET, C #, F #, JavaScript, TypeScript, XML, XSLT, HTML et CSS. La prise en charge d’autres langages peut être obtenue via des plug-ins, tels que Python, Ruby, Node.js
C’est un IDE commercial, mais il existe une version gratuite, Visual Studio Community. Et Microsoft propose aussi un éditeur de code gratuit, Visual Studio Code.
Visual Studio intègre des outils pour développer sous l’environnement mobile multiplateforme Xamarin.
NetBeans
NetBeans est un Environnement de Développement Open Source, existant depuis 2001, et créé par Sun. Il est utilisé principalement pour Java, mais est ouvert à d’autres langages : Groovy, PHP, JavaScript, C, C++, Fortran,…
2/ Sites consultés, outils mis en place
Sites consultés pour faire la veille
Définition d’environnement et langages de programmation :
https://fr.wikipedia.org/wiki/Environnement_de_d%C3%A9veloppement
https://fr.wikipedia.org/wiki/Langage_de_programmation
Listes des langages de programmation les plus utilisées
https://spectrum.ieee.org/
Articles listant les langages conseillés pour le développement Android
https://www.geeksforgeeks.org/top-programming-languages-for-android-app-development/
https://blog.hubspot.fr/marketing/langage-coder-une-application
Site de comparaison d’environnement de développement https://stackshare.io/stackups/android-studio-vs-intellij-idea-vs-visual-studio
Sites de présentation d’IDE
https://visualstudio.microsoft.com/fr/
https://www.jetbrains.com/fr-fr/idea/
https://developer.android.com/studio
https://www.eclipse.org/ide/
Flux RSS utilisés
J’utilise les services de feedly.com pour faire des flux RSS personnalisées j’ai pu me créer un compte facilement grâce à mon compte google.
Je me suis créé deux Feeds :
- Feed Développement Android dans laquelle j’ai rajouté plusieurs sources à suivre sur le sujet qui m’intéresse :
- Flux Android du site « Développez »
- Flux du site « PhonAndroid »
- Canal Reddit « r/androiddev »
- Feed IDE Mobile, avec des sources en rapport avec les 4 IDE choisis pour cette veille :
- Flux du blog « Android Studio » de Google
- Flux du blog « Intellig IDEA » de JetBrains
- Newsfeed « Visual Studio » des DevBlogs de Microsoft
- Flux “Eclipse” du site “Développez”
3/ Critères de comparaison (4 à 6 critères)
Langage de programmation
Pour choisir un langage de programmation pour développer sous Android, j’ai choisi les critères suivants :
1. Popularité pour les développeurs Android
Quand on choisit un langage de développement, il est utile de se reporter vers les langages les plus populaires, pour le type de développement qu’on souhaite réaliser (app mobile, site web, application d’entreprise). Les avantages des langages populaires sont :
- Communauté active de développeurs, donc plus de facilité pour trouver de l’aide (forum, blogs, site spécialisés, réseaux sociaux)
- Nombreux outils, IDE et plug-ins existants pour ce langage
- Facilité à trouver d’autres développeurs qui connaissent déjà le langage si on veut travailler en équipe
Pour connaitre les langages les plus populaires, j’ai regardé le classement de l’IEEE Spectrum, et j’ai lu les articles de blogs sur les langages conseillés pour le développement Android.
2. Stabilité dans le temps
Certains langages peuvent être très populaires à un moment, avec des effets de mode, mais oubliés après quelques années. Pour qu’une application soit maintenue pendant plusieurs années, il vaut mieux qu’elle soit écrite dans un langage qui sera actif et utilisé pendant de nombreuses années.
Pour cela, il faut regarder :
- Est-ce que le langage existe depuis longtemps, et a su évoluer pour suivre les avancées technologiques ?
- Est-ce qu’il est soutenu par les grands acteurs du monde de l’informatique : GAFAM, grandes entreprises, secteur public, consortium ?
- Est-ce qu’il est utilisable librement par tous, ou est-ce que son usage et ses outils sont contrôlés par une entreprise privée ?
3. Facilités pour Android
Différents langages sont utiles pour différents usages. Comme on s’intéresse ici au développement Android, il est important de regarder si les langages choisis permettent de réaliser facilement ce type d’application mobile :
- Est-ce qu’il y a des fonctionnalités spéciales du langage adapté à Android ?
- Est-ce qu’il y a des outils qui facilitent le développement Android avec ce langage ?
4. Simplicité d’apprentissage
Choisir un langage qu’il est facile d’appendre, c’est d’abord gagner du temps au début de son projet de développement. C’est aussi moins perdre de temps à faire des erreurs de syntaxe pendant le projet. Et c’est la possibilité de trouver plus facilement d’autres développeurs pour son projet, même s’ils n’ont pas beaucoup d’expérience dans ce langage, puisqu’ils apprendront facilement.
Pour connaitre la facilité d’apprentissage d’un langage, je me suis basé sur les avis d’experts que j’ai lu dans les sites ou blogs de développeurs.
Environnements de développement (IDE)
Pour le choix d’un environnement de développement pour Android, j’ai choisi les critères suivants :
1. Popularité pour les développeurs Android
Comme pour les langages, plus un IDE sera populaire, plus on aura une communauté active d’utilisateurs qui peut aider à résoudre les problèmes qu’on rencontre.
En plus, si un IDE est très populaire parmi les développeur Android, c’est qu’il est particulièrement bien adapté pour ce langage.
2. Couverture fonctionnelle
Un IDE doit offrir un panel d’outils complet pour faciliter le travail du développeur : éditeur de code source performant, auto-complétion, correction de syntaxe en cours de frappe, explorateur de fichiers ou base de données, intégration des outils de gestions de version (comme git), débogueur.
Plus un IDE contiendra d’outils performants et simples d’usage, plus les développeurs pourront être efficace dans leur travail.
3. Outils pour Android
Pour cette veille technologique, je recherche un IDE pour développeur un application mobile Android. Pour ce travail particulier, il est important de savoir si l’IDE possède des outils, fonctionnalités ou plugins spécifiques pour aider les développeurs Android spécifiquement.
4. Simplicité d’utilisation et d’apprentissage
Un IDE possède un environnement graphique, il doit être facile d’utilisation par le développeur, qui ne doit pas avoir besoin de trop de temps pour apprendre à le maitriser. Son interface doit être conçue intelligemment, pour que le développeur ne se perdre pas dans tous les outils, menus et fenêtres proposés par l’IDE.
4/ Tableau de comparaison
Langages de programmation
Environnements de développement (IDE)
5/ Conclusion :
Le choix d’un langage de programmation et d’un IDE pour développer une Application Mobile Android n’est pas évident, et il existe plusieurs choix possibbls.
Cependant, j’ai noté que certains IDE étaient plus adapté à certains langages. Par exemple, Android Studio semble être l’IDE de choix des développeurs Kotlin. A l’inverse, ce qui choisisse de développer des application Android en C# vont se tourner vers Visual Studio.
Certains choix ne sont pas conseillés : ainsi, le langage C++ n’est pas le plus simple pour faire du développement Android. Et NetBeans n’est pas non plus l’IDE le mieux adapté pour Android.
Pour les autres, ce sont tous de bons choix : on peut facilement coder une application Android avec Kotlin, Java et même C#. Et on peut facilement utiliser Android Studio, Intellij IDEA ou Visual Studio.
Le choix, au final, dépend surtout du profil et de l’expérience du développeur, et des autres projets qu’il a réalisés ou qu’il pourra réaliser :
- Si c’est un développeur qui se lance dans les applications mobiles, et qui veut se spécialiser dans ce domaine, alors le meilleur choix est Kotlin et Android Studio. Ils sont vraiment conçus et dédiés pour le développement d’application mobile, et c’est le premier choix des développeurs Android.
- Si c’est un développeur qui veut faire une application Android, mais qui a déjà de l’expérience en développement web ou client-serveur, ou qui pense qu’il va développer ce type de compétence, alors il peut choisir de rester avec un langage qu’il connait déjà (Java, ou C#), et choisir un IDE moins spécialisé qu’Android Studio : Intellij IDEA pour Java, et Visual Studio pour C#