IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Boden : un framework C++ multiplateforme pour le développement d'application mobile native
Android et iOS

Le , par Bill Fassinou

132PARTAGES

15  0 
Ashampoo Systems GmbH & Co. KG a publié Boden, un framework multiplateforme, open source et purement natif C++ destiné à faciliter le développement d’application Android et iOS. Le framework permet, selon ses concepteurs, de créer des applications mobiles multiplateformes et natives avec une seule base de code. Il est publié sous la licence GPL (2/3). Le framework Boden vous permet de créer des applications mobiles multiplateformes natives à partir d'une seule base de code. Boden utilise les contrôles de l'interface utilisateur de la plateforme cible. Par conséquent, les utilisateurs ne reconnaissent aucune différence dans l'apparence à laquelle ils sont déjà habitués.

Boden est conçu à partir du C++ 17 pour permettre l’écriture d’applications modernes, rapides et conviviales, bénéficiant ainsi de toute la puissance du langage. Vous pouvez écrire vos applications mobiles en C++ 17 moderne et les compiler en applications 100 % natives pour Android et iOS à partir d'une seule base de code statiquement typée. Selon l’équipe Boden, la compilation ne nécessite pas de scripts alternatifs ou quoi que ce soit d’autre. De plus, Boden se veut simple. Vous n’aurez pas à gérer les surcharges introduites par les machines virtuelles. La simplicité de Boden vous permet de profiter de la puissance de l’outil de mise en page CSS Flexbox afin de construire le design de votre interface utilisateur. Flexbox est un outil qui permet de créer des structures responsives et flexibles sur des pages Web, c’est-à-dire qu’il permet de positionner et d’aligner des éléments HTML sans même connaître leur dimension à priori.

« Avec Boden, la configuration de votre interface utilisateur est un jeu d'enfant. Vous avez la possibilité de définir simplement vos mises en page à l'aide de feuilles de style Flexbox directement en C++ », a expliqué l’équipe de développement du framework. Boden utilise également le moteur de mise en page de yoga conçu par Facebook pour toutes les plateformes. En effet, yoga est une bibliothèque open source qui implémente Flexbox et permet ainsi de créer des mises en page flexibles sur toutes les plateformes. Facebook le définit comme étant un moteur de mise en page hautement optimisé conçu pour la vitesse, la taille et la facilité d'utilisation. Yoga utilise également des frameworks open source largement utilisés tels que Litho, ComponentKit et React Native. La bibliothèque propose des fonctionnalités comme le calcul des dispositions hors du fil principal pour garantir des performances optimales de l'interface utilisateur.


Pour que yoga puisse être utilisé n’importe où, il a été lui-même construit en C/C++ portable et présente un faible nombre de dépendances et une petite taille binaire. Cela a été fait pour que yoga puisse être utilisable sur iOS et Android, en partageant les connaissances, voire le code, entre ces plateformes. À part cela, l’équipe explique qu’une chaîne de Boden est littéralement un std::string. De plus, aucune fonctionnalité du C++ notamment les conteneurs, les pointeurs intelligents ou les éléments de base n’a été réinventée. Cela vous permet de réutiliser vos connaissances existantes et de vous concentrer sur l'essentiel : votre application.

Cependant, la publication du framework sous la licence GPL (General Public Licence) est sujette à de petites remarques dans la communauté. On estime que le logiciel étant concédé sous la licence GPL, il sera difficile de travailler et de commercialiser ses applications sur les plateformes Android et iOS. Pour info, la General Public License est une licence qui fixe les conditions légales de distribution d'un logiciel libre du projet GNU. Les logiciels sous la licence GPL peuvent être utilisés et modifiés partout, sans aucune restriction, ni dans les environnements privés, ni même dans les environnements d'entreprise. Néanmoins, il existe des limitations quant à la publication de ces logiciels.

Si votre logiciel utilise un ou plusieurs logiciels publiés sous cette licence, il doit être à son tour distribué avec son code source complet, selon les mêmes conditions de licence que le logiciel original. « Cela semblait très prometteur, mais le fait d'appliquer la licence GPL pour les applications mobiles iOS et Android est impossible. Même si je publie les applications gratuitement, il est très difficile de travailler avec la GPL sur ces écosystèmes. C'est triste parce que le code est vraiment très cool », a déclaré l’un d’entre eux.

Ainsi, le principal problème avec la GPL serait que cette restriction rendrait les applications incompatibles avec les conditions de service de l'iOS App Store et des fois avec le Google Play Store. Dans la communauté, on conseille donc de prévoir également une licence LGPL pour Boden qui dispose de quelques restrictions en moins que la GPL. En effet, la LGPL (pour GNU Lesser General Public License) est également une licence utilisée pour les logiciels libres.
Elle présente de grandes ressemblances avec la GPL, rédigée par le même organisme, la Free Software Foundation, visant à promouvoir le développement de logiciels libres. Cette licence limitée, ou amoindrie, c'est-à-dire qu'elle est moins restrictive que la licence GPL dont elle découle, a été créée pour permettre à certains logiciels libres de pénétrer tout de même certains domaines où le choix d'une publication entièrement libre de toute l'offre était impossible.

Dans un commentaire sur la question, l’équipe de Boden à assurer qu’elle travaille avec des avocats pour voir dans quelle mesure ajouter une option LGPL au framework Boden. Il existe deux perspectives différentes à ce sujet. Premièrement la perspective utilisateur, où la licence MIT semble bien sûr être l’une des plus attractives. Ensuite, il y a le point de vue de l'entreprise où l'on cherche à savoir quel est le modèle économique utilisé et comment le développement sera durable à long terme, a expliqué un membre de l’équipe Boden. « Nous sommes arrivés à la conclusion que la LGPL est actuellement la meilleure option pour aligner ces deux perspectives et offrir la meilleure valeur à long terme. Si la GPL/LGPL ne vous suffit pas, nous vous proposerons une licence commerciale avec des conditions équitables », a-t-il conclu dans son commentaire.

Sources : Boden (1, 2)

Et vous ?

Que pensez-vous du framework Boden ?
Quelle licence auriez-vous préférée pour Boden ? Pourquoi ?

Voir aussi

Flutter : le framework UI de Google, en plus du mobile, prend désormais en charge le desktop, le Web et l'embarqué

Google lance Flutter 1.2, son SDK open source de développement d'apps mobiles iOS et Android et Dart DevTools, une suite d'outils de programmation

Google lance Flutter 1.0, son SDK pour développement Mobile Android et iOS, la toute première version stable et native

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de yoshi_120
Membre du Club https://www.developpez.com
Le 04/06/2019 à 16:17
Désolé mais on dépend toujours de cette merde d'androis sdk, android studio et de java.

Pourquoi ne pas extraire le NDK et adb pour juste générer des applications en C++ et utiliser adb pour les installer sur un téléphone en debug pour les tests ?
Je hais au plus au point Java, Android et cie. Toutes les technos qui se présentent en faisant croire qu'on n'a plus besoin de Java et cie comme flutter par exemple la première chose qu'ils demandent d'installer c'est Android Sdk, studio donc quel gain puisque c'est justement installer ce bousin qui me dérange.
1  0 
Avatar de Guildem
Membre habitué https://www.developpez.com
Le 04/06/2019 à 18:52
Citation Envoyé par yoshi_120 Voir le message
Désolé mais on dépend toujours de cette merde d'androis sdk, android studio et de java.

Pourquoi ne pas extraire le NDK et adb pour juste générer des applications en C++ et utiliser adb pour les installer sur un téléphone en debug pour les tests ?
Je hais au plus au point Java, Android et cie. Toutes les technos qui se présentent en faisant croire qu'on n'a plus besoin de Java et cie comme flutter par exemple la première chose qu'ils demandent d'installer c'est Android Sdk, studio donc quel gain puisque c'est justement installer ce bousin qui me dérange.
Tu l'installes pour utiliser les tools comme adb et autres, pour communiquer avec ton device, debugger... Logique donc. C'est rien à faire, ça démarre rien en tâche de fond, je vois pas le soucis.

Que dire alors d'iOS qui t'impose de compiler sur un mac ? C'est bien plus contraignant (sauf si tu fais déjà partie du club).

Quant à Flutter, il ne demande pas Android Studio, c'est juste une des options pour développer et compiler, mais tu peux le faire aussi avec Visual Studio Code, ou carrément avec vim si ça t'amuse. Faut juste dart, flutter et les tools d'android.

Enfin Java est une techno un peu vieillotte certes, même avec les dernières mises à jour, mais c'est pas non plus un cancer qu'il faut extraire de ton os. Tu l'installes, il bouge pas, te demande rien (sauf si tu utilises un os avec des mises à jour applicatives vieillottes), et point.
2  1 
Avatar de darklinux
Membre extrêmement actif https://www.developpez.com
Le 04/06/2019 à 7:10
Que pensez-vous du framework Boden ?

Que je pourrais être intéressé , bien plus intéressant que SwiftUI
0  0 
Avatar de imikado
Rédacteur https://www.developpez.com
Le 04/06/2019 à 10:30
Un concurrent sérieux pour Qt ?
0  0 
Avatar de archqt
Membre émérite https://www.developpez.com
Le 04/06/2019 à 15:30
Citation Envoyé par imikado Voir le message
Un concurrent sérieux pour Qt ?
Ben non car Qt est au moins LGPL. Ils n'ont pas encore compris que pour percer maintenant il faut une licence "cool" comme MIT.
0  0 
Avatar de archqt
Membre émérite https://www.developpez.com
Le 04/06/2019 à 18:45
Citation Envoyé par yoshi_120 Voir le message
Désolé mais on dépend toujours de cette merde d'androis sdk, android studio et de java.

Pourquoi ne pas extraire le NDK et adb pour juste générer des applications en C++ et utiliser adb pour les installer sur un téléphone en debug pour les tests ?
Je hais au plus au point Java, Android et cie. Toutes les technos qui se présentent en faisant croire qu'on n'a plus besoin de Java et cie comme flutter par exemple la première chose qu'ils demandent d'installer c'est Android Sdk, studio donc quel gain puisque c'est justement installer ce bousin qui me dérange.
Exact c'est d'un compliqué tout cela
0  0 
Avatar de tails
Membre chevronné https://www.developpez.com
Le 07/06/2019 à 9:42
Personnellement, c'est peut être l'alternative dont j'avais besoin.
Et comme je n'ai pour habitude que de développer des projets avec partage de sources dans le cadre personnel : la licence GPL ne me gêne pas tant que cela.
Mais c'est sûr, je ne serais pas contre une 3e license en mode MIT par exemple, et qui permettrait de développer sans avoir à partager le code source.
0  0 
Avatar de archqt
Membre émérite https://www.developpez.com
Le 18/07/2019 à 10:13
Bon, apparemment ils proposent maintenant la licence LGPL, un bon début...par contre le programme de démonstration sur le Play Store plante sur mon téléphoné mobile.

Reste plus qu'à proposer une implémentation sur Desktop :-)
0  0