[C++] nxi - navigateur générique

a marqué ce sujet comme résolu.
Auteur du sujet

Salut,

Après avoir expérimenté une première version, j’ai pu peaufiner l’architecture de la prochaine version et la liste des possibilités. Le but est d’avoir un navigateur entièrement paramétrable et modulable.

Architecture

Système

Donnée

La manipulation des données sera effectuée par ndb - Sauvegarde d’objets (fait)

  • Sauvegarde de configurations (key/value)

  • Gestion de connexions entre entités (arborescences)

Commande

Toutes les actions sont gérées par des commandes, les modules peuvent ajouter des commandes.

Raccourcis

Ils sont organisés sous forme d’arborescence pour effectuer des séquences ou des combinaisons. On peut y associer une commande.

Modules

Les modules seront de différents types (nxi ou spécifique au moteur de rendu)

UI

Fenêtre

Une fenêtre possède une interface interchangeable.

Rendu

Plusieurs moteurs de rendu seront disponibles (web et 3D) qui seront utilisés par les interfaces.

Interface

Une interface va s’occuper d’afficher les données en fonction du système. (ex: onglets, moteurs de rendu, arborescences) Elle peut afficher d’autres interfaces dont la disposition sera paramètrable.

Ressource graphique

[à améliorer] Chaque élément graphique possèdera un type, une interface.

Ce qui permet par exemple pour un élément de type onglet dans une arborescence, d’afficher son interface (qui contiendra le moteur de rendu)

Ou pour un élément de type onglet qui possède des connexions, choisir une interface qui affichera toutes les interfaces des onglets connectés.

En partant de cette base, on pourra ainsi développer des fonctionnalités très facilement.

  • Un explorateur pour faciliter le lien entre les données locales et distantes.

  • Navigation 3D pour le changements d’onglets.

  • Système de favoris (nécessite seulement la création d’un type))

Et de nombreuses autres apportées par l’intégration de nex

  • Partage de fichiers

  • Synchronisation de données

  • Gestionnaire de librairies

  • Système de flux

  • etc …

Aperçu

Voici quelques screen de la version expérimentale (qui changera pour cette version)

Recrutement

Je cherche donc de l’aide pour finaliser l’architecture, le développement des outils nécessaires, du système et de l’UI.

Si vous avez des compétences en C++ et que ça vous intéresse ou si vous avez des questions, faites moi signe !

Merci.

Édité par ads00

+2 -0

Et bien super ! Alors je vais présenter de nouveau le projet nxi à l’occasion de mon arrivé dans le projet et de la fusion avec Sielo car on ne va pas se mentir, @ads00 explique mal. :P

Les bases

C’est assez simple, nxi est un navigateur. Par exemple, un navigateur web est un logiciel qui utilise un moteur web pour afficher des données venant du web. Et bien nxi est multi-protocolaire et donc pas seulement un navigateur web !

Cela veut dire que nxi pourra être un navigateur web puisqu’il peut utiliser un moteur de rendu web, mais il peut aussi utiliser un moteur de rendu 3D par exemple.

Il est important de noter qu’à la base nxi devait être un navigateur nex, nex étant une sorte de protocole développé par @ads00. Mais je ne m’étendrai pas dessus puisque @ads00 a fait un post dédié à nex.

Une architecture puissante

Le gros point fort de nxi sera son architecture. L’architecture sera pensée pour fournir un système d’interfaces flexibles, génériques et modulaires. Il sera donc très simple d’intégrer toutes sortes de fonctionnalité avec de simples commandes et interfaces. Voilà une image pour illustrer brièvement :

Image utilisateur

De plus, chaque action sera liée à une commande pour rendre le tout encore plus facile à utiliser. (pour reprendre un exemple, nxi::tab_switch;interface=bidule;page=3 changera d’onglet)

Un exemple concret

Ce qui fait la force de Sielo, ce sont les espaces d’onglets. Et bien les espaces d’onglets seront simplement des interfaces dans des interfaces, il y a donc beaucoup plus de possibilités comme ce créer des "workspace" d’espaces d’onglets, ou avoir des espaces d’onglets dans des espaces d’onglets… Vous voyez la puissance de la bête ? :P

De plus, je réfléchissais à l’ajout du support des WebExtension dans Sielo. Cela aurai été un processus assez long et difficile. Or, avec nxi ce sera assez simple. Les WebExtension étant faites en JS on pourra traduire cela comme ça :

1
commande WebExtension -> commande nxi -> action sur nxi

Comment placer nxi par rapport à un navigateur web

Et bien déjà, c’est plus qu’un navigateur web comme je l’ai déjà dit. Il y a une image que j’aime beaucoup avec nxi, c’est celle de Linux.

On peut ainsi voir nxi comme le noyau avec ses distributions. Ainsi par exemple, Sielo sera simplement une "distribution" de nxi. Sielo se contentera d’apporter des configurations par défaut un peu différentes pour mettre en avant le côté navigateur web de nxi ainsi que les espaces d’onglets. Quelqu’un pourrait très bien prendre nxi, y ajouter une configuration qui utilise un moteur 3D pour afficher un "switcher" d’onglet 3D a la Windows 7, et distribuer sa build avec cette configuration par défaut.

Bien sur il sera possible de changer ces configurations et donc d’avoir le switcher 3D dans Sielo, mais nous savons tous que l’humain est relativement flemmard et donc que les configurations par défaut ont leur importance.

En conclusion

Je le sais, c’est assez compliqué à bien tout saisir. Le but de nxi est assez en profondeur et tellement générique qu’on peut voir énormément de cas d’utilisation et donc s’y perdre. De plus le concept peut paraître assez fou et va demander pas mal d’efforts à développer. Mais c’est pour ça que @ads00 a besoin d’aide et m’a finalement trouvé ! Bref, si vous avez des questions n’hésitez pas, elles seront importantes et pourront m’aider à clarifier ce post.

Je compte donc sur vous !

Édité par Feldrise

Venez donc faire un tours sur http://feldrise.com;)

+0 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte