Dropbox change le code en multi-plateforme à l'aide de C ++

Ça fait quelques jours, Développeurs Dropbox via un post dans le blog officiel de l'application fait connaître la voie qu'ils entendent suivre en matière de développement mobile de votre application multiplateforme, où l'équipe a décidé de créer une base de code unifiée, à des fins ou plates-formes diverses.

L'approche peut être utile pour les petites équipes avec peu de compétences, mais la production est nécessaire le plus rapidement possible. Depuis 2013, l'équipe Dropbox s'est appuyée sur cette stratégie. Àpointe vers les plates-formes Android et iOS via une base de code unique intégrée en C ++. Le message explique pourquoi la société préfère désormais le développement natif sur Swift et Kotlin.

«En assemblant notre base de code de manière non standard, nous avons hérité de coûts dont nous n'aurions pas eu à nous soucier si nous nous étions alignés sur les armes par défaut que des tiers utilisent à grande échelle.» Au final, c'était plus cher que d'écrire du code deux fois », a-t-il déclaré.

Brusquement, Les commentaires des ingénieurs de Dropbox montrent que le choix de l'approche de développement multiplateforme introduit des coûts de développement supplémentaires liés au déploiement de bibliothèques et de frameworks personnalisés.

Sans compter ceux liés à la mise en place d'outils de travail personnalisés ou à la nécessité de former ou de recruter des tiers capables de s'adapter à une pile logicielle hautement personnalisée.

En fait, souligne que le choix du développement multiplateforme C ++ pour Android et iOS peut conduire les développeurs à faire face à des difficultés qu'ils n'auraient pas eu nativement.

Par exemple, dit-il, établir un cadre pour gérer les tâches qui s'exécutent en arrière-plan peut être un must dans le pipeline de développement multiplateforme C ++.

En revanche, Un autre ingénieur explique l'ingénieur Dropbox, ce n'est pas un problème en natif.

Il prétend même que l'équipe Dropbox, dans le processus, a dû configurer une bibliothèque JSON pour C ++ 11, ainsi qu'une autre pour gérer les pointeurs NULL.

L'ingénieur de l'entreprise est allé encore plus loin en soulignant qu'il se tournait vers la théorie de la pensée selon laquelle on peut construire une base de code unique pour plusieurs plates-formes.

En fait, insiste-t-il, les spécificités de chaque plateforme sont des facteurs incontournables.

«La façon dont une application fonctionne en arrière-plan est spécifique à la plate-forme, et vous devez l'examiner depuis le début», dit-il.

En plus des considérations qui affectent le code, il y a celles qui concernent les outils de travail. En ce sens, l'ingénieur de l'entreprise évolue selon deux axes: le débogage et la configuration des outils personnalisés.

«L'expérience de débogage native est généralement supérieure au C ++ via l'EDI par défaut de la plate-forme cible», écrit-il, ajoutant que «en plus de devoir nous éloigner des outils disponibles, nous devions mobiliser des efforts de développement pour le développement d'autres. capable de prendre en charge l'approche multiplateforme en C ++. «

Enfin, sur les aspects formation et recrutement, Eyal Guthmann indique que l'aventure multiplateforme s'est construite autour d'un noyau d'ingénieurs avec une solide expérience en C ++.

Avec le départ de cette dernière vers d'autres équipes ou entreprises, l'entreprise a de plus en plus de mal à combler le vide technique pour maintenir la base de code C ++. En interne et en externe, l'entreprise a eu du mal à se former et à recruter sur cet axe, car il semble que très peu de développeurs mobiles s'intéressent au C ++.

Le transfert de l'équipe de Dropbox vers le natif via Kotlin et Swift pour Android et iOS présente des avantages.

En fait, le langage C ++, avec le C que vous ne citez plus, sert de dénominateur commun pour gérer de tels problèmes.

Il n'est pas difficile d'imaginer que le groupe d'ingénieurs initial l'a intégré pour la gestion de certains aspects critiques du backend. Seulement, des questions sur la qualité de l'interface C ++ avec les plates-formes cibles peuvent être posées.

source: https://blogs.dropbox.com/


Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données : AB Internet Networks 2008 SL
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.