Az Objective-C programozási nyelv

Étoilé



Étoilé

Az Étoilé egy GNUstep alapú felhasználói környezet, melyet rugalmasan kezelhető komponensekből és modulokból állítottak össze annak érdekében, hogy a felhasználó a saját igényeinek megfelelően kombinálhassa a szolgáltatásokat (alkalmazásokat) és komponenseket.

A rendszer fő jellemzői a projekt alapítói szerint:

Az Étoilé honlapja: http://etoileos.com

A rendszer legfontosabb projektjei a következők:

CoreObject

A CoreObject az ú.n. EtoileSerialise projekt alapjain épült és az Objective-C futásidejű sajátosságait használja ki, így nyújtva automatikus perzisztenciát és verziókezelést az egyes objektumoknak.

EtoileUI

Az EtoileUI magasszintű, objektumorientált eszközkészlete egységes grafikus felhasználói felületmodellt ad az összes Étoilé alkalmazásnak.

Ez a toolkit számos tervmintát tartalmaz, melyek további kód hozzáírása nélkül felhasználhatóak, így az EtoileUI csökkenti a reprezentáció és a tényleges implementáció közötti űrt. A User Interface-t érintő elemek, tehát a layout-ok, controller-ek, stílusok, model objektumok stb. cserélhetőek, futásidőben hozzáadhatóak, eltávolíthatóak. Egy már létező, EtoileUI-on alapuló user interface könnyen átalakítható a felhasználó igényei, képernyő méret, bemeneti eszközök és egyéb célok szerint.

Minták

Az EtoileUI a következő mintákat tartalmazza:

  • Tool (mozgatás, kiválasztás, rajzolás stb.)
  • Action (csoportosítás, rendezés stb.)
  • Méretezés
  • Megjelenítés (arányok, szegélyek stb.)
  • Panelek
  • Sablonok
  • Űrlapok
  • Ikonok
  • Drag and Drop, Copy Paste funkciók
  • Model/View

Layout

Az EtoileUI által megjelenített elemek egy fa absztrakt / szemantikus csúcsai, amelyekhez különböző funkciók köthetők. Ez az egységes fa szerkezet bármilyen struktúrált tartalmat (dokumentum, felület stb) leír, és az egyes csúcsokhoz futásidőben különböző feladatokat rendelhet.

A csúcsok lehetnek:

  • Layout Item (levél)
  • Layout Item Group (ág)

Ezek a csúcsok több funkcióval bírhatnak:

  • Represented object
  • Style
  • Action handler
  • Layout
  • View
  • Decorator
  • Controller

Runtime

Az Objective-C nyelv folyamatosan fejlődik, ezt a projekt tagjai egy új runtime library létrehozásával kívánják támogatni. Az Étoilé Runtime Library egy kutatási prototípusként jött létre. Sok, a GNU és Apple Objective-C runtime-ban nem megtalálható eszközzel rendelkezik, amely egy magasabbszintű keretrendszereket (pl. CoreObject) tehet jóval hatékonyabbá. A legtöbb ezirányú fejlesztés a GNU runtime-ra is lett portolva, ezért akár a következő GNUstep verzióban már meg is jelenhet. Az új runtime az új Objective-C 2.0 API-t használja, de a régebbi ObjectiveC2 keretrendszerű GNU runtime-okat is támogatja.

LanguageKit

A LanguageKit egy dinamikus nyelveket fordító compiler-ek fejlesztésére készült keretrendszer, mely a kódot LLVM segítsévégel Objective-C runtime kódra fordítja. Lehetővé teszi, hogy más, magasszintű nyelveken írt kódokat Objective-C nyelvű kódokkal együtt használjunk egy objektumon belül.

Keretrendszerek

A legtöbb munka, amit az Étoilé fejlesztése során véghezvittek arra összpontosult, hogy egy erős alapot szeretnének létrehozni a további környezet számára. Az OpenStep terminológiában a keretrendszer egy tároló, mely shared library-ket és azok header file-jait tartalmazza, azaz mindent, amire annak fejlesztésekor szükség van. Az Étoilé szerkezeti fája számos ilyen framework-öt tartalmaz, hogy megkönnyítse a fejlesztők dolgát.

A framework-ök legfrissebb éles verziói az alábbi címen keresztül érhetők el: http://svn.gna.org/svn/etoile/trunk/Etoile/Frameworks/

Ezek közül a legfontosabbak:

  • EtoileUI (dinamikus felhasználói felület)
  • EtoileFoundation (alkalmazások főbb funkcionalitásai)
  • EtoileThread (asszinkron üzenetküldés)
  • LuceneKit (az ApacheLucene-en alapuló indexelés és keresés)
  • OgreKit (reguláris kifejezések)

Alkalmazások

Az Étoilé-t komponens alapú rendszernek tervezték. Az alkalmazások valójában szolgáltatások, melyek néhány felhasználói beavatkozás észlelésére alkalmas komponenst nyújtanak, valamint szolgáltatást más komponensek számára.

A szerkezeti fa jelenleg sok szolgáltatást tartalmaz, ezeket két fő csoportra lehet osztani: felhasználói és privát. A felhasználói szolgáltatások azok a szolgáltatások, melyek közvetlenül a felhasználóval létesítenek kapcsolatot, mint a hagyományos alkalmazások, míg a privát szolgáltatások a felhasználói felület építőköveit alkotják.