Obligement - L'Amiga au maximum

Vendredi 06 juin 2025 - 12:45  

Translate

En De Nl Nl
Es Pt It Nl


Rubriques

Actualité (récente)
Actualité (archive)
Comparatifs
Dossiers
Entrevues
Matériel (tests)
Matériel (bidouilles)
Points de vue
En pratique
Programmation
Reportages
Quizz
Tests de jeux
Tests de logiciels
Tests de compilations
Trucs et astuces
Articles divers

Articles in English


Réseaux sociaux

Suivez-nous sur X




Liste des jeux Amiga

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z,
ALL


Trucs et astuces

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Glossaire

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Galeries

Menu des galeries

BD d'Amiga Spécial
Caricatures Dudai
Caricatures Jet d'ail
Diagrammes de Jay Miner
Images insolites
Fin de jeux (de A à E)
Fin de Jeux (de F à O)
Fin de jeux (de P à Z)
Galerie de Mike Dafunk
Logos d'Obligement
Pubs pour matériels
Systèmes d'exploitation
Trombinoscope Alchimie 7
Vidéos


Téléchargement

Documents
Jeux
Logiciels
Magazines
Divers


Liens

Associations
Jeux
Logiciels
Matériel
Magazines et médias
Pages personnelles
Réparateurs
Revendeurs
Scène démo
Sites de téléchargement
Divers


Partenaires

Annuaire Amiga

Amedia Computer

Relec


A Propos

A propos d'Obligement

A Propos


Contact

David Brunet

Courriel

 


Test de Feelin
(Article écrit par Olivier Laviale - novembre 2006)


Feelin est un cadre d'applications à code source ouvert orienté objet destiné à AmigaOS et ses amis (AmigaOS 4, AROS, MorphOS). Il se présente sous la forme d'une bibliothèque partagée et d'un système extensible de classes, qui sont actuellement orientées vers la création d'applications. Feelin se veut résolument moderne, mettant à profit des standards tels que le XML et le CSS pour révolutionner le développement des applications - au moins sur Amiga. ;-)

Feelin

Feelin apporte ainsi son lot de nouveautés et de raffinements, notamment un puissant moteur objet modulable, des attributs, des valeurs et des méthodes dont les identifiants sont dynamiques, une gestion d'applications au format XML, un système de préférence modulable et dynamique, une UI moderne, des objets partagés, un système de rapport d'erreur pratique.

Un puissant moteur objet

La fin des identifiants numériques

La plus grande force de Feelin vient de son moteur objet. Très tôt dans son développement il a été décidé d'utiliser des attributs, des valeurs et des méthodes dont les identifiants seraient des chaînes de caractères plutôt que des valeurs numériques. Le principal objectif était d'en finir une fois pour toutes avec les collisions pouvant se produire sous certains systèmes.

Ainsi, le développeur n'a pas à se soucier de savoir si tel ou tel identifiant est déjà utilisé par un autre développeur. Il n'a pas besoin d'obtenir un numéro de série auprès d'un quelconque arbitre, puisque les représentations numériques des attributs et des méthodes sont allouées selon les besoins, au moment même où les applications fonctionnent.

Cette particularité fut le déclencheur d'une longue liste d'améliorations et de possibilités.

La fin du dispatcher

Les identifiants des méthodes n'étant plus accessibles à la compilation des classes, il a fallu revoir totalement le système d'invocation.

Si l'on prend l'exemple de BOOPSI, utilisée comme moteur de MUI, BGUI et Reaction, chaque classe définit une fonction centrale, appelée "dispatcher", qui ordonne l'appel (ou invocation) aux méthodes. Pour chaque méthode invoquée, le dispatcher choisi d'intercepter l'invocation en exécutant une fonction privée adaptée, ou de passer l'invocation à sa super-classe.

Ce fonctionnement est bien trop lourd avec des identifiants dynamiques. Sous Feelin, les classes ne définissent pas de point central, mais associent pour chaque méthode interceptée ou implémentée une fonction. Ainsi, lorsqu'une méthode est invoquée, Feelin recherche dans la table de méthodes de la classe, la fonction associée. S'il ne trouve rien, il poursuit la recherche dans celle de sa super-classe et ainsi de suite. Ce mécanisme est "in-loop", c'est-à-dire que la recherche se fait sans quitter une boucle unique et très simple.

Ainsi, malgré un système d'identifiants dynamiques qui pourrait sembler plus lourd, l'exécution est en fait bien plus optimisée et rapide.

Des invocations sécurisées

A noter, par ailleurs, que les invocations sous Feelin sont sécurisées : une invocation sur un objet détruit ou sur une adresse aléatoire ne plantera pas bêtement l'application. Un message d'erreur sera simplement inscrit au journal, ce qui permettra au développeur de corriger son code.

Les identifiants dynamiques n'ont pas été qu'une amélioration pour le développeur et une évolution du moteur objet, ils ont aussi permis d'apporter à Feelin un de ses plus grands atouts : la génération à la volée d'applications au format XML.

Des applications au format XML

Les identifiants des attributs et des méthodes étant des chaînes de caractères, il ne fallut que peu d'efforts et de temps pour mettre en place la génération d'objets au format XML, ainsi que la gestion d'applications complètes. Un "Hello world !" en XML ressemble à ceci :

<?xml version="1.0" ?>

<!ENTITY hello "Hello world !">

<feelin:application>
 <Application>
  <Window id="win" Title="Feelin : &hello;" Open="true">
   <Button>_&hello;</Button>
  </Window>
 </Application>

 <notify>
  <win attribute="CloseRequest" value="true" target="application" method="Shutdown" />
 </notify>
</feelin:application>

Les attributs et les méthodes utilisés dans l'application XML sont ceux disponibles dans les classes. Il n'existe pas de catalogue. Le système est une nouvelle fois totalement dynamique, n'importe quelle classe peut ainsi être utilisée dans l'application, au même titre qu'une application écrite en C. Bien sûr, l'utilisation de l'XML n'est pas une obligation pour la conception d'application, juste un moyen plus simple pour définir leur UI.

Le principal objectif des applications au format XML et de séparer l'UI et le code de l'application. Pour le développeur, et l'utilisateur, c'est aussi la possibilité de modifier, avec un simple traitement de texte et sans la moindre compilation, l'UI de son application.

La génération depuis des fichiers XML est principalement utilisée par l'éditeur de préférence de Feelin.

Un système de préférence dynamique et modulable

En lui-même, l'éditeur de préférence de Feelin n'est capable de rien. Sa puissance vient de sa modularité.

Chaque classe pouvant définir des propriétés, ainsi qu'un fichier XML définissant le groupe de préférence permettant de les ajuster, l'éditeur de préférence agit comme un agrégateur, générant chaque groupe de préférence pour les réunir dans une application unique.

Les préférences sont basées sur une version simplifiée du CSS, qui ne gère pas encore les sélectionneurs, mais offre tout de même l'héritage, les classes multiples ainsi que les pseudo-classes. Des ingrédients sympathiques pour une UI moderne et extrêmement configurable.

Une UI moderne

L'adoption du CSS a considérablement amélioré l'UI. Ainsi les pseudo-classes "touch", "focus" et "ghost" ont permis de définir quatre états différents par objet, avec chacun leurs couleurs, marges, remplissage, bordures... comme les éléments d'un page Web.

Les propriétés classiques de CSS sont ainsi disponibles, telles que : margin, padding, border, min-width, min-height, max-width, max-height, width, height, background... Certaines, comme la propriété "background" ont été étendues pour proposer de nouvelles possibilités comme des dégradés, des motifs ou encore des images multiples (une image divisée en quatre parties, une pour chaque état). Feelin introduit également de nouvelles propriétés : "palette", par exemple, permet de définir les couleurs à utiliser pour dessiner un objet, avec le contrôle de leur contraste, leur luminosité et leur saturation.

Feelin pose ainsi une distinction très claire entre les attributs et les propriétés de style.

Feelin Feelin Feelin


Un développement clair

D'une façon générale, développer pour Feelin se fait simplement. Les attributs, valeurs, méthodes, propriétés, macros, etc. sont toujours clairement identifiables. Par exemple les macros qui commencent par "_", comme la macro _area_x, permettent d'obtenir une valeur, ici la position gauche d'un objet de la classe Area. Les macros de fonctions sont en majuscules et commencent par "F", comme la macro F_SUPERDO(). La lettre "F" est souvent utilisée pour identifier des éléments de Feelin.

Feelin emploie très peu de structures, préférant définir des types : FBox, FRender, FAreaPublic.

En conclusion

Feelin offre de nombreux avantages et des possibilités uniques. Même si ses bases deviennent de plus en plus établies, ce système objet est encore jeune, il manque de classes et de soutien. Malgré l'aide merveilleuse de Guillaume Roguez (MorphOS) et de Jean-Christophe Frisch (AmigaOS 4), Feelin reste le fruit d'un développement individuel.

En plus d'être une solution libre et gratuite, cet ambitieux projet a également pour volonté de fédérer une communauté dispersée.

Nom : Feelin.
Développeurs : Olivier Laviale.
Genre : cadre d'applications.
Date : 2006.
Configuration minimale : Amiga AGA ou RTG, 68020 ou PowerPC, 4 Mo de mémoire, AmigaOS 3.0, AmigaOS 4.0 ou MorphOS.
Licence : gratuiciel.
Téléchargement : www.feelin.fr.


[Retour en haut] / [Retour aux articles]