Are your mobile development teams overwhelmed by increasing complexity as your user base grows and your application scales? Are you noticing a growing gap between feature development and their actual release to end-users, as well as increasingly high maintenance costs? Our mobile experts can help you implement mobile DevOps best practices to optimize your build and deployment times.
BAM supported us in the selection and implementation of tools for our CI/CD. The team's advice and expertise enabled us to set up our first pipelines very quickly, and to gain peace of mind and confidence in our deliveries. Many thanks to the whole team for their help, energy and investment in our project.
Renaud Viry
Team Leader développement SW
ATLANTIC
ATLANTIC
Our approach: setting up a mobile CI/CDNotre approche : la mise en place d’une CI/CD mobile
Identify your needs
Do you run regular tests to check the stability of your application?
A robust testing strategy is crucial for the success of any software project. It ensures that the application works as intended, provides confidence in regression management, improves code understanding and documentation, and promotes good architecture. At BAM, we have taken a comprehensive testing approach at four levels:
Static analysis : We use static analysis tools to detect errors, improve code quality, and enforce coding standards. Our tools include heavily typed languages, linters, and Sonar.
Unit tests : We perform extensive unit tests to validate individual components in isolation.
Integration tests : Our integration tests verify the interactions and compatibility between the various components of our system. By simulating real scenarios, we ensure that integration points, data flow, and communication between components work perfectly.
End-to-end testing (E2E) : Our testing strategy includes comprehensive end-to-end testing to validate the functionality of the entire system. By using technologies such as Maestro, we simulate user journeys and validate the behavior of the system as a whole.
For each of the tools associated with these levels, we tested and validated configurations that lead to higher quality and more reliable applications.
Are your tests automatically run for each code review?
A continuous integration (CI) system offers several advantages:
Quality assurance : CI detects bugs early in the development process, minimizing impact and cost.
Quick return : CI provides immediate feedback on code quality, helping developers resolve issues quickly.
Seamless code integration : CI facilitates collaboration between developers.
Automated deployment made easy : the configuration of a CI is a prerequisite for setting up an automated and reliable deployment.
We have implemented mobile CIs on the main CI platforms (CircleCI, Github Actions, GitLabCI), including:
Dependency caching to speed up the CI setup
Optimizing test execution times
Executing E2E tests on the CI
Déployez-vous vos applications sur les stores en une commande ?
Le lead time pour qu'un code arrive en production est l'une des métriques clés identifiées par le programme de recherche DORA* qui a un impact fort sur l'entreprise.
L'automatisation du build et du déploiement de vos applications permet de réduire le temps nécessaire pour passer de l'écriture du code à son exécution dans un environnement de production. Cela peut faire gagner aux développeurs un temps et des efforts considérables, tout en garantissant la consistance de l’environnement de build. Les développeurs peuvent ainsi se concentrer sur ce qu'ils font de mieux : coder pour ajouter de la valeur au produit, sans se soucier des subtilités du processus de build et de déploiement.
De nombreux outils vous permettent d’automatiser votre processus de build et de déploiement, Fastlane étant le plus connu d’entre eux.
*Le programme de recherche DORA (DevOps Research and Assessment) mène depuis 2013 une exploration des pratiques de développement, qui recense aujourd'hui plus de 2000 organisations et couvre tous les domaines d'application logiciel. Cette étude scientifique, fondée sur la donnée brute, montre une corrélation forte entre le succès (productivité, profitabilité, croissance) et quatre métriques clés
Fréquence de mise en production
Taux de mise en production sans erreur
Lead time pour qu'un code arrive en production
Lead time pour corriger un défaut en production
Are you able to release a new version of your apps every week?
The frequency of production is one of the key metrics identified by the DORA* research program that has a strong impact on the company. The impacts of frequent production are multiple:
Fast feedbacks: A shorter feedback loop makes it possible to respond to user needs more quickly.
Reduced risk of major regressions: Smaller, more frequent updates reduce the risk of major issues resulting from larger updates.
Continuous improvement: Regular delivery allows for continuous refinement of processes and product quality.
Shorter Time to Market: Regular updates mean that new features reach users more quickly, providing a competitive advantage.
Customer satisfaction: Users see steady progress, increasing their confidence in the product and the company.
We can assist you in optimizing your design, development and QA processes to achieve this objective!
*The DORA research program (DevOps Research and Assessment) Since 2013, has been conducting an exploration of development practices, which now lists more than 2,000 organizations and covers all areas of software application. This scientific study, based on raw data, shows a strong correlation between success (productivity, profitability, growth) and four key metrics
Production frequency
Error-free production rate
Lead time for a code to reach production
Lead time to correct a defect in production
Êtes-vous en mesure de publier un correctif à vos utilisateurs en moins d’une demi journée ?
Le Lead time pour corriger un défaut en production est une des métriques clés identifiées par le programme de recherche DORA* qui a un impact fort sur l'entreprise.
En développement web, lorsque vous publiez un correctif sur votre serveur, les modifications sont immédiatement disponibles pour tous les utilisateurs. Il n'est pas nécessaire que les utilisateurs fassent une mise à jour, la prochaine fois qu'ils actualiseront ou visiteront le site, ils verront la version mise à jour. Comment atteindre des performances similaires pour les applications mobiles ?
Avec React Native, des technologies come Code-push ou expo-updates rendent cela possible. CodePush vous permet de pousser des mises à jour directement sur les appareils de vos utilisateurs sans passer par le processus de mise à jour de l'App Store et du Play Store. La politique d’installation de la mise à jour est configurable et peut donc être adaptée en fonction de la criticité de la mise à jour. Vous avez également la possibilité de cibler des versions spécifiques de votre application avec des mises à jour, ce qui peut être utile si un bug n'affecte que certaines versions.
Il est important de noter que CodePush ne peut être utilisé que pour les mises à jour JavaScript et d’assets. Si votre correctif nécessite des modifications de code natif, vous devrez toujours passer par le processus de mise à jour traditionnel de l'App Store.
Bien que les directives des stores ne recommandent pas l'utilisation de ce type de technologies pour ajouter des fonctionnalités, elles demeurent néanmoins extrêmement puissantes pour intervenir rapidement sur les bugs en production. Leur mise en place est fortement conseillée.
*Le programme de recherche DORA (DevOps Research and Assessment) mène depuis 2013 une exploration des pratiques de développement, qui recense aujourd'hui plus de 2000 organisations et couvre tous les domaines d'application logiciel. Cette étude scientifique, fondée sur la donnée brute, montre une corrélation forte entre le succès (productivité, profitabilité, croissance) et quatre métriques clés
BAM supported us in the selection and implementation of tools for our CI/CD. The team's advice and expertise enabled us to set up our first pipelines very quickly, and to gain peace of mind and confidence in our deliveries. Many thanks to the whole team for their help, energy and investment in our project.
Renaud Viry
Team Leader développement SW