Haïthem B.

Mobile Developer

760 dollar
Freelancer
11 years
Paris, FRANCE

My experience

More

PROJETS PERSOJanuary 2011 - Present

Depuis que j’ai commencé le développement iOS en 2011, je me suis beaucoup impliqué dans des projets personnels à commencer par des petites applications de jeux, puis une application de contact auparavant tous sur l’AppStore (depuis rejetés car plus maintenus). J’ai depuis développé quelques projets open source et des applications.
• FireMock : Un framework qui a pour objectif de créer des Mock pour les appels web services. Le but étant de renvoyer des données statiques afin de voir comment l’application s’adapte et réagit selon les retours. Les problématiques liées aux mock étaient nombreuses au sein de l’agence, en premier lieu l’illisibilité du code, de nombreuses lignes souvent dépendantes de plusieurs contextes. Autre soucis, la flexibilité de l’implémentation des Mocks était souvent restreinte, la nécessité de relancer l’application pour changer de mock par exemple était un frein au développement des applications. FireMock est né de ces problématiques et réponds au besoins du développeur à l’aide d’une structure réglementée et simple. De plus il permet de changer de mock au runtime sans avoir besoin de recompiler l’application.
• FireMultipeer : Wrapper autour de l’API Apple Multipeer Connectivity. Ce service permet d’échanger des données entre applications iOS sans nécessité d’une connexion internet via WiFi ou Bluetooth.
• SpriteKit : Quelques connaissances en SpriteKit, l’outil de jeux vidéo 2D de Apple. J’ai quelques petites applications en cours.
More

Backelite - PROJETS INTERNESSeptember 2015 - August 2018

Pendant mes trois années à Backelite j’ai contribué à différents POC internes et de création de frameworks et outils internes et open source dans le but d’aider nos équipes à gagner en véolocité et efficacité dans les projets en cours et à venir.
• FireAPI : Idée initiale partie sur mon expérience des différents projets où la partie réseau et modèle manquait de structure et de réutilisabilité à travers les multiples projets de la société. Elle se matérialise par un framework disponible sur le Gitlab de l’entreprise et s’imbrique entre la partie réseau de l’app, généralement Alamofire ou URLSession et la partie modèle. Elle permet ainsi de définir des règles et apporte des fonctionnalités qui répondent à des problématiques.
Notamment, elle n’est pas dépendante d’une librairie comme Alamofire, il est ainsi très simple et rapide de changer de librairie de réseau au sein de l’application ou d’en utiliser plusieurs pour différents web service. Elle simplifie aussi grandement l’accessibilité à des services comme le cache où la gestion des erreurs.
• ARCity : POC réalisé avec un collaborateur afin de tester ARKit. À ce titre nous avons créer une application qui affiche en 3D une ville avec laquelle on peut interagir via ses monuments et créer son guide de voyage. Elle intègre également un framework créer dans le cadre de mes projets personnels afin de communiquer entre plusieurs appareils iOS sans connexion internet dans le but de partager son guide.
• Xcode Template : Méconnue, Xcode permet de créer ses template personnalisés. J’ai créer plusieurs templates projets afin de gagner en rapidité au début de chaque nouveau projet. Ainsi, le starter est composé déjà d’un Podfile pour les dépendances, d’une architecture projet MVVM, des fichiers de Jenkins pour la CI, le fichier Sonar, des scripts utilisés dans la majorité de nos développements. Xcode Template permet également de créer des templates de fichiers que j’ai mis à disposition sur mon Github.
More

Backelite - AUTRES PROJETSSeptember 2015 - August 2018

Backelite est une agence qui dispose de nombreux projets variés. À ce titre j’ai été amené à participer ponctuellement à plusieurs d’entre eux dans le cadre d’évolutions ou de maintenance. Ce travail était généralement fait seul en terme de développement en coopération avec un chef de projet.
• Wit (SNCF) : Projet interne qui permet de consulter les trains et leurs horaires. TMA et évolution vers Swift 4.1. Migration de l’intégration continue et l’évolution de ses scripts
• Ramsay : Application de santé, elle permet de rechercher des médecins. Swift 3. Maintenance correctives.
• Luxair : Application de la compagnie aérienne Luxembourg Airlines (Objective-c). Maintenance
correctives et migration de l’intégration continue avec l’évolution de ses scripts
• E-hotel : Ministère de la défense (objective-c). Maintenance correctives.
• Société général iPad : Application de Société général version iPad (objective-c). Maintenance
correctives.
More

Backelite - LCL MESCOMPTESSeptember 2015 - July 2018

LCL Mescomptes est une application iPhone refaite de zéro pour une sortie en Octobre 2015 et qui permet au client de la banque de consulter ses comptes. C’est une des plus grosses applications de Backelite et sur lesquels je suis intervenu. Refaite en objective-c en 2015 en suivant le principe de IOC et de programmation fonctionnelle avec Reactive Cocoa, elle est depuis migré progressivement en Swift.
Le projet suit la méthodologie de Scrum et Kanban et est composée d’une équipe de 5 développeurs par plateforme. J’ai participé au développements des nouvelles fonctionnalités, de la tma corrective et d’évolutions de l’application, au chiffrages des fonctionnalités et évolutions, à la maintenance de l’intégration continue et de la livraison des builds.
• Documents : Récupérations de documents et de leur affichage sur l’application à l’aide de CoreGraphics afin de créer une lecture de pdf à l’image de Adobe Reader.
• Crédit Renouvelable : Service Crédit Renouvelable est une fonctionnalité accessible pour le client et qui est composé de graphiques (CoreGraphics, CoreAnimation)
• Tests UI : Intégration de Test UI avec Appium dans plusieurs sections de l’application tel que l’authentification.
• FireAPI : Framework initié pour répondre à une problématique d’organisation et de réutilisation de code. C’est une couche qui fait la liaison entre le réseau et la partie modèle.
• FireMock : Framework qui permet de créer des mock simplement afin de travailler avec des données statiques.
• Livraison du projet au client & Intégration Continue
• Tests unitaires

Skills
• Swift, Objective-c
• RxSwift, Reactive Cocoa, SwiftGen, SwiftLint, FireAPI, Alamofire, FireMock, Crashlytics,
Cocoapods, Keychain, Common Crypto, Appium
• MVVM, DI
• Intégration Continue Jenkins
More

Backelite - RMIT UNIVERSITYDecember 2017 - January 2018

Développement de RMIT sur iPhone qui permet aux nouveaux étudiants de l’université situé en
Australie de mieux s’intégrer. Elle est amenée à évoluer au cours des prochains mois. L’application a
été pensée pour intégrer des éléments d’architecture avancé afin de permettre une maintenance et
une évolution efficace. On y trouver le concept de Coordinator, d’injection de dépendance, de flux
de donnée et asynchronisme avec RxSwift notamment.
J’ai participé au chiffrage des tâches à mener, du développement de plusieurs services ainsi que de
la livraison pour le client afin de mener des bêta tests à un ensemble d’utilisateurs. Pour les besoins
de ce projet et de quelques autres (LCL), j’ai élaboré et développer un framework interne qui a pour
but de simplifier et organiser les appels réseaux en s’intégrant comme couche entre la partie réseau
et la partie modèle. J’ai notamment développé les parties suivantes :
• Onboarding : Séquence de pages afin d’accueillir l’utilisateur la première fois sur l’application afin
de le guider pour ses premiers pas.
• Assistive Scheduling : Section qui affiche les tâches que doit effectuer l’étudiant à son arrivé à
l’université.
• Authentification : L’authentification de l’utilisateur est nécessaire pour avoir accès à des parties
comme le calendrier des cours ou l’assistive scheduling.
• Livraison du projet au client & Intégration Continue
• Tests unitaires
• Architecture du projet

Skills• Swift 4
• RxSwift, SwiftGen, SwiftLint, FireAPI, Alamofire, FireMock, Crashlytics, Cocoapods, Keychain
• MVVM, Coordinator, DI
• Intégration Continue Jenkins
More

Backelite - CRÉDIT AGRICOLE MABANQUEAugust 2016 - September 2017

CA MaBanque est une des plus grosses applications de Backelite. J’ai travaillé sur ce produit en continue pendant près d’un an le plus souvent pour des besoins de TMA mais pas seulement. J’ai contribué au développement du service Solde Rapide dont l’objectif est de donner à l’ouverture de l’application et sans authentification une visibilité sur l’état de ses comptes. J’ai également participé à l’intégration d’un service de communication inter-app entre MaBanque et MaCarte qui est une application CA qui aide à gérer ses cartes.

MaBanque est une des plus anciennes applications que gère Backelite. Elle est majoritairement écrite en objective-c mais diviser en plusieurs modules (principe de micro-service).
• Inter-app : L’idée était de permettre une communication d’informations entre les 2 applications de CA. Les informations concernaient des informations générales sur le client ou sur ses cartes.
• Solde Rapide : Interface à l’entré de l’application qui indique l’état de ses comptes à travers une image visuelle claire, ici une météo (soleil quand tout va bien, orage quand tout va mal).
• Intégration sur le projet de Swift et de FireMock, un système de mock que j’ai développé et mis en open source sur GitHub.
• TMA : Corrections d’anomalies.

Skills• Objective-c, Swift 2
• AFNetworking, Crashlytics, Cocoapods, FireMock
• MVC
More

Backelite - LOGICIMMO NEUFMay 2017 - August 2017

En tant que Lead dev du projet, j’avais pour rôle de mener une équipe de 2 développeurs vers la réalisation d’une application iPhone et iPad de consultation de biens immobiliers neufs en France.
L’ensemble de l’application récupérait des informations via une API pour ensuite les afficher à l’écran. L’application embarquait un moteur de recherche et de nombreux filtres pour permettre à l’utilisateur de rechercher le bien avec une meilleure précision. De plus, elle utilisait les Notifications Push enrichies pour alerter ses utilisateurs d’un nouveau bien.
Dans le rôle de Lead dev, j’ai appuyé l’équipe dans ses décisions techniques et pratiquer des revues de codes pour faire monter en compétence l’équipe. J’ai également mené des échanges techniques avec le client dans le cadre de l’API qu’il mettait à notre disposition afin de répondre à nos besoins.• Home Recherche : L’accueil de l’application dispose d’un formulaire dynamique permettant de saisir les informations nécessaires à la recherche d’un bien. La complexité de l’écran était importante car le design s’approchait davantage du web que d’une application mobile.
• Rich Push Notification : Création de Push Notifications enrichies qui dispose d’un format personnalisé (image du bien + texte)
• Détail d’un bien : J’ai développé une grande partie du détail d’un bien qui dispose de nombreuses  sections (description, contact, intérêts etc.) comportant notamment des graphiques.
• CoreData : L’application nécessité une persistance pour stocker des données consultables en offline.
• Livraison du projet au client & Intégration Continue
• Architecture du projet
• Lead, revue de code, choix techniques et conseils.

Skills
• Swift 3
• RxSwift, CoreData, FireMock, Alamofire, Crashlytics, Cocoapods
• MVVM
• Intégration Continue Jenkins
• Lead
More

Backelite - CHANEL FASHION COMMUNITYNovember 2016 - January 2017

Projet interne à Chanel, elle permet à ses collaborateurs de partager des photos et vidéos et de pouvoir les commenter, les aimer et partager.

Mon rôle a été de faire évoluer l’application vers Swift 3 et d’intégrer de nouveaux services comme l’intégration de vidéos.
• Migration Swift 3 : Passer l’application de Swift 2 à Swift 3
• Intégration Vidéo : Intégrer la vidéo dans le flux d’activité et permettre de partager des vidéos.

Skills• Swift 3
• Alamofire, Crashlytics, RxSwift, R.Swift, Cocoapods
• Intégration Continue
• MVC
More

TellmediaJanuary 2014 - September 2015

Tellmedia est une agence de marketing mobile dans laquelle je menais le développement mobile et web.
Mon rôle en tant que référent technique dans la startup est de mener à bien différents projets iOS et Android et de POC pour différents clients.
• Jimy : Application iPhone (Swift) qui analyse la concentration de l’utilisateur. Elle utilise pour cela de nombreux graphiques entièrement développé avec CoreGraphics et CoreAnimation. Elle détecte les mouvements à l’aide de CoreMotion et utilise CoreData pour la persistance.
• Select Bon Plans : Application interne qui permettait de visualiser les bons plans renseignée par l’équipe via un Back Office développé en Symphony 2
• SelectTV: Application Android TV déclinaison de l’application Select Bon Plan iPhone.
• LeParisien : POC qui affichait les vidéos du journal LeParisien sur Android TV.
• Mavip : Application iPad qui présente un ensemble de photos haute résolutions.

Skills• Swift, Objective-c, PHP5, Java
• Android, iOS, Web Symphony 2
• Alamofire, AFNteworking, Image I/O, CoreGraphics, CoreAnimation, CoreData
• FOSRestBundle, FOSUserBundle, RMSPushNotificationsBundle
• MVC
More

EVESAFebruary 2012 - September 2012

Stage de développement web au sein de la société Evesa qui gère l’éclairage public et les feux tricolores de la ville de Paris. J’ai développé pendant ces 7 mois 2 applications web PHP/MySQL qui permettent de recenser le matériel des armoires électriques et des postes électriques de la ville.

My stack

Analysis methods and tools

Agile, Scrum, Kanban, SwiftLint, MVVM, JIRA

Environment of Development

Xcode, CocoaPods

Others

Crashlytics

Middleware

Jenkins

Technologies

Core Data, Core Animation, AlamoFire, AFNetworking, Core Graphics

Databases

MySQL, SQLite

Software testing

Appium

IT Infrastructure

iOS, Git

Languages

Objective-C, Swift

Mobile

RxSwift, Android, Cocoa

My education and trainings

- Ingénierie Web & E-Business, Ingénierie informatique - ESGI, Paris.2013 - 2015

- Licence Web & Mobile, Informatique - ECTEI groupe ECE, Paris.2011 - 2012

- BTS IRIS (Informatique et Réseaux Industriels des Services) - Newton Enrea Clichy (France).2009 - 2011