Elementele de bază ale gtk, partea 3 a implementării aplicației gtk, cum să implementați gtk

Acest conținut face parte din seria: Fundamentele GTK +, Partea 3: Implementarea aplicației GTK +.

Aveți grijă de articole noi din această serie.

Unicitatea este o trăsătură bună, dar nu pentru o bibliotecă. În ceea ce privește software-ul, popularitatea largă și popularitatea înseamnă mai multe recenzii, mai multe mesaje de eroare (și, ca urmare, eliminarea lor), există mai multe șanse ca software-ul să fie testat în medii neobișnuite și în situații atipice. Toate acestea conduc doar la îmbunătățirea și simplificarea utilizării bibliotecii. Din fericire, GTK + este o figură destul de mare între instrumente și unul dintre cele mai utilizate pachete software. Uită-te la următoarea listă de platforme diferite pe care rulează GTK +:







Conducta de aplicare

Indiferent dacă vă place sau nu, dezvoltarea unei aplicații constă nu numai în a vă bucura de liniile de scriere de cod. Pentru a crea un produs de succes, în primul rând, trebuie să creați o conductă care să permită dezvoltatorului să funcționeze normal.

programator

Partea cea mai critică a unei astfel de conducte este, desigur, un programator. Dacă biblioteca este dificil de folosit, are cerințe ciudate sau este puțin compatibilă cu alte aplicații - nu va fi o bază bună pentru produsul dvs. Din fericire, GTK + nu are aceste dezavantaje. API-ul său este consistent (cu excepția unor acorduri rare pentru compatibilitate înapoi), ușor de învățat și de utilizat. De aceea programatorii sunt atât de îndrăgostiți de GTK +. În mod corespunzător GTK + creatori asigurat că, pentru a evita incompatibilitatea cu alte biblioteci: spațiul de nume bine gândită (subiect folosit limbaje de programare), numărul de funcții exportate este redus pentru a realiza programe de bibliotecă mai fiabile și mai rapide de asamblare.

Sistem de asamblare

Comanda pkg-config

Comanda pkg-config este renumită pentru abordarea simplă a afacerii. Această abordare este diferită de metodele tradiționale de căutare a bibliotecilor pe sistemele UNIX, care, în majoritatea lor, oferă să utilizeze scripturile gândite cu atenție (dar, din păcate, care conțin erori). Spre deosebire de acestea, GTK + a implementat o altă metodă - a fost folosit un script de configurare gtk-config configurat exact (precum și glib și gnome-config). În versiunea 2.0, această metodă a fost pusă în ordine și transformată într-o soluție universală numită pkg-config. și este prezentat pentru standardizare în proiectul freedesktop. Noua soluție a fost atât de convenabilă încât a devenit, de facto, standardul pentru căutarea bibliotecilor. Iar datorită documentației detaliate, pentru erori în ea nu mai este suficient spațiu.

Nu există cerințe speciale pentru utilizarea GTK +, tot ce trebuie să folosiți este să includeți un fișier antet în program. Nu sunt necesare preprocesoare sau compilatoare speciale, precum și nimic altceva care poate produce rezultate imprevizibile.

Sam GTK + folosește autotools GNU, deci are un macro-uri gata făcute pentru Autoconf și Automake (scrise pentru proiectul GNOME), care vă permit să găsiți și să configurați biblioteca GTK + cu un singur apel. Dar chiar dacă utilizați un sistem construi diferit, puteți integra cu ușurință în GTK +. Tot ce aveți nevoie este un apel corect definit pkg-config. Dacă utilizați un sistem bazat pe directoare (cum ar fi Microsoft Visual Studio) - rândul său, doar câteva directoare pentru a construi calea.

Distribuiți produsul finit

Distribuirea aplicației terminate în rândul utilizatorilor depinde în mare măsură de platforma pe care o utilizează, deci trebuie să vă pregătiți pentru modul în care integrarea aplicației dvs. și GTK + va varia de la sistem la sistem. Pe o platformă UNIX și, în special, pe Linux®, GTK + este o bibliotecă de sistem distribuită de furnizorul de sistem de operare. Dacă nu sunteți adecvat preinstalat în sistemul GTK + sau nu există acolo, puteți consulta proiectul Autopackage (consultați Resurse). Autopackage este o soluție care vă permite să colectați pachetele care instalează automat bibliotecile lipsă.

Pe platforma Windows există un număr mare de instalatori. Pentru distribuirea majorității programelor, inclusiv GTK +, instalatorul standard Windows InstallShield și NSIS Nullsoft sunt utilizate pe scară largă. Toate distribuțiile binare ale bibliotecii GTK + utilizează chei de registry standard și date de configurare, permițând aplicațiilor diferite să partajeze aceeași copie a bibliotecii.

Cross-platform

În funcție de sistemul țintă, modul de accesare a bibliotecii (și, în consecință, modul în care este instalat programul) se poate schimba:

  • În ceea ce privește distribuțiile Linux, puteți considera în mod rezonabil că GTK + va fi disponibil ca pachet standard. Cele mai multe distribuții includ rapid cele mai recente versiuni ale GTK +, astfel încât aproape 100% poate fi de așteptat ca cel puțin una dintre ultimele două versiuni de GTK + să fie inclusă în distribuția utilizatorului. Cu toate acestea, deoarece nimeni nu poate garanta că toți utilizatorii vor folosi ultima distribuție Linux, încercați să vizați cea mai veche versiune de Linux, în care programul dvs. va putea funcționa;
  • Pe computerele care rulează Windows GTK + cu o componentă complet terță parte. Cu toate acestea, datorită aranjamentului uniform al diferitelor pachete de instalare, vă puteți baza în întregime pe instalarea GTK + existentă, dacă este prezentă, sau puteți să vă creați într-un alt caz. Deoarece instalarea runtimei GTK + este inclusă în procesul de instalare, puteți selecta mai liber versiunea țintă a bibliotecii, dar, dacă este posibil, să rămânem la versiuni mai vechi;
  • Pentru Mac OS X, GTK + este, de asemenea, un pachet software complet extern. Pe acest sistem va fi mai sigur să creați un pachet autonom pentru a proteja utilizatorul de problemele de dependență. Pentru a examina un exemplu al unui astfel de pachet, aruncați o privire asupra modului în care Gimp.app este compilat (a se vedea resursele).

Există câteva remarci despre GTK + pe Mac OS X. În toate emise la versiuni actualizate ale bibliotecii, ar trebui să utilizați X11-la-OS X. Cu toate acestea, versiunea de dezvoltare actuală GTK + pod de la Apple, a fost adăugat un sistem nou, nativ Mac ferestre OS X care, în viitorul apropiat, va atinge nivelul de integrare acum observat pe platforma Win32.







De asemenea, trebuie să fii clar despre ceea ce înseamnă GTK + pentru compatibilitate la nivelul interfeței binare (ABI). Dezvoltatorii bibliotecii încearcă să mențină compatibilitatea înapoi cu GTK +, dar pentru aplicația dvs. aceasta înseamnă numai compatibilitatea cu noile versiuni ale GTK + va fi păstrată. În special, chiar dacă codul sursă utilizează versiunea API 2.2. dar aplicația a fost compilată utilizând bibliotecile versiunii 2.6, fișierul executabil rezultat nu va funcționa cu versiunea 2.2 a bibliotecilor. Și toate deoarece, la momentul compilației, s-au folosit referințele la cea mai recentă versiune a ABI, care, la versiunile anterioare, produc erori atunci când sunt chemați.

Pentru a obține compatibilitatea codului binar cu o versiune anterioară a bibliotecii, de exemplu 2.2, trebuie să instalați GTK + din această versiune, adică. 2.2 și compilați programul folosind fișierele antetului acestei biblioteci. Deși acest lucru nu este cel mai simplu mod pentru dezvoltatori, dar este singurul de încredere.

Există, de asemenea, abordări alternative pentru a rezolva această problemă, de exemplu, prin identificarea parametrilor versiunii, le puteți specifica în timpul compilării pentru a comuta între versiunile fișierelor antet. Apropo, această tehnică este folosită în setul de instrumente de dezvoltare Windows SDK. Cu toate acestea, această metodă are de asemenea o parte negativă, astfel încât fișierele antetului programului devin greu de înțeles și, prin urmare, susțin și, uneori, chiar provoacă un comportament imprevizibil al programului. Din aceste motive, dezvoltatorii GTK + au decis să renunțe la această metodă de compilare.

Dacă folosiți Linux, puteți obține vechi antete GTK + într-un mod convenabil ambalate împreună cu alte instrumente care simplifică crearea de fișiere executabile pentru o varietate de distribuții prin vizitarea proiectului Autopackage. Consultați resursele pentru mai multe informații.

Personalizăm GTK + la nevoile noastre.

Uneori este posibil să nu aveți setări GTK + în mod prestabilit. Motivul pentru aceasta poate fi dublu: fie doriți să obțineți funcții suplimentare care nu sunt disponibile în setul de bază, fie doriți să influențați anumite aspecte ale activității bibliotecii, astfel încât să se potrivească mai bine necesităților dvs.

Primul caz este rezolvat destul de simplu. Este necesar să găsiți o bibliotecă externă care oferă funcțiile dorite. Există mai multe locuri în care puteți începe să căutați o astfel de bibliotecă. Foarte des, nevoile similare cu ale dvs. apar în proiecte mari, cum ar fi GNOME. Din acest motiv, GNOME, există mai multe module care îndeplinesc rolul unui „Sandbox“, în care funcțiile sunt, atâta timp cât nu „copt“ pentru a fi incluse în GTK +, cu toate acestea, ele sunt utile și funcționează bine. Cel mai remarcabil modul de acest gen din GNOME CVS se numește libegg. De asemenea, puteți căuta pe site-urile care oferă găzduire pentru proiecte deschise, cum ar fi SourceForge.net și freshmeat (a se vedea Resurse).

Alte cazuri apar atunci când trebuie să schimbați unele aspecte ale GTK + în sine. De exemplu, este posibil să fie necesar să rulați GTK + pe un dispozitiv încorporat cu o arhitectură rară sau să adăugați suport pentru anumite tipuri speciale de interacțiuni cu utilizatorul. În funcție de nevoile dvs. (și oportunități), există mai multe opțiuni pentru rezolvarea acestei probleme.

Cu toate acestea, dacă proiectul dvs. este foarte dificil, puteți decide și închiria o companie de consultanță specializată, care va ajuta la stabilirea de contacte cu comunitatea și la identificarea punctelor critice ale proiectului dumneavoastră. Asta a făcut Nokia, hotărând să utilizeze GTK + ca bază pentru interfața pentru noua sa linie de dispozitive mobile. Rezultatul acestei decizii a fost apariția platformei maemo, primită călduros de comunitate. Alegerea atentă a partenerilor și a metodelor poate duce la crearea unui proiect benefic pentru ambele părți. Compania va putea atrage mulți proiectanți cu experiență în proiect, dornic să încerce o nouă jucărie, în același timp, comunitatea va primi multe îmbunătățiri făcute în timp ce lucrează la proiect și alt mod de utilizare a bibliotecii, extinderea gamei de capacități GTK +.

Comunitatea GTK +

Hackerii și GTK +

În listele de discuții și alte materiale veți vedea referințe la hackeri. Asta nu înseamnă că cineva încearcă să spargă programul. De fapt, acesta este un indiciu că cineva lucrează și cunoaște produsul, păstrând sensul original al programului. Prin urmare, puteți vedea legături către hackeri GTK +, hackeri GNOME și alții în forumuri și liste de discuții.

Tot timpul în timpul comunicării cu GTK +, comunitatea adunată în jurul ei va fi serviciul dvs. de asistență. Prin urmare, este important să știți de unde să începeți. Aceste cunoștințe vor economisi mult timp și vă vor proteja de eventualele neînțelegeri atunci când comunicați.

Persoanele implicate în dezvoltarea legate de GTK + se concentrează în principal pe trei liste de discuții:

Dezvoltatorii GTK + citesc în mod regulat toate aceste trei liste de discuții, așa că nu vă faceți griji cu privire la pierderea mesajului.

Un alt lucru de care trebuie să aveți o idee se numește Bugzilla. Acesta este un sistem de înregistrare a erorilor, care are și o bază de date de eroare în GTK +. Dacă observați un comportament ciudat sau ilogic al programului GTK +, înainte de a raporta această eroare în liste, căutați în Bugzilla, dacă cineva v-a spus deja despre acest lucru. Aici puteți face sugestii pentru a ajuta GTK + chiar mai bine. Nu ezitați să înregistrați ceva despre care nu sunteți sigur, descrieți-l în detaliu. Cel mai rău lucru care se poate întâmpla este că cineva va pune pe mesaj mesajul NOTABUG (nu o eroare).

În plus față de aceste surse de informații, puteți obține rapid asistență pe multe canale IRC (chat-uri). Serverul principal al tuturor chat-urilor de pe GTK + este GIMP.net. În canalele # gtk și # gnome puteți găsi de obicei persoane care vă pot ajuta. Dar fii politicos și răbdător: "poate", nu înseamnă că "timp de 5 minute".

Când intri în contact cu comunitatea, vei găsi o mulțime de oameni minunați și celebri acolo. Prin urmare, puteți să vă distrați foarte mult cu acești oameni, ajutându-i pe altcineva cu lucruri pe care le cunoașteți bine. Pentru a nu fi dezamăgit de comunitate, amintiți-vă două lucruri: în primul rând, nu este deloc necesar să fiți imediat observați, iar al doilea ca totul să fie în ordine.

O privire în viitor

Dezvoltarea GTK + se concentrează pe îmbunătățirea instrumentelor și facilitarea activității dezvoltatorilor, astfel încât, cu fiecare nouă versiune, să apară noi funcții, menite să ușureze viața programatorilor. Prin urmare, GTK + implementează mai multe standarde de interacțiune similare cu cele definite de proiectul freedesktop (a se vedea resursele).

Cu toate acestea, în prezent se dezvoltă un proiect foarte interesant, al cărui scop este de a sprijini furnizorii independenți de software (ISV) și de a face procesul de găsire a instrumentelor potrivite pentru dezvoltatori mai simple. Această activitate se desfășoară în cadrul proiectului Ridley și constă în integrarea multor biblioteci și module independente anterior într-o platformă unică, ușor de utilizat și coerentă. De exemplu, GTK + va integra unele dintre bibliotecile GNOME de astăzi pentru a-și folosi capabilitățile pe platformele în care funcționează GTK +. Dintre aceste biblioteci, librăria libglade, pe care ați văzut-o deja în Partea 2. Este deja planificată pentru includerea în platforma GTK +. Este de așteptat ca, după finalizarea proiectului Ridley, platforma rezultantă să primească numărul 3, adică Se va afișa GTK + versiunea 3.0 (compatibilitatea cu ramura curentă 2.x va fi păstrată).

concluzie

În acest ultim articol din ciclul "GTK + Basics", ați ajuns să cunoașteți multe aspecte legate de crearea unui produs software de succes. Ați văzut cum este suportat GTK + pe diferite platforme, cât mai bine să distribuiți aplicația dvs. în rândul utilizatorilor. Ați învățat modalitățile prin care puteți schimba GTK + pentru a vă potrivi mai bine nevoilor dvs. În concluzie, ați primit o scurtă referire la viitoarea versiune a platformei și informații despre locul unde să începeți călătoria dvs. mare cu GTK +.

Sper că vom întâlni în curând cu dvs. pe o listă de discuții sau poate chiar într-o cameră de chat. Ne vedem curând!

Descărcați resurse

Subiecte conexe

  • Vizitați pagina de pornire GTK + GTK.org;
  • Descoperiți pachetul de autopachete, un sistem de instalare a pachetelor pentru multe distribuții Linux;
  • Descărcați Gimp.app. un exemplu de pachet de programe GTK + pentru Mac OS X;
  • SourceForge oferă găzduire pentru multe aplicații și biblioteci GTK +;
  • Vizitați un depozit al diferitelor proiecte de carne proaspătă. există proiecte GTK + în el;
  • Uită-te la sistemul de logare a erorilor în GNOME și GTK + GNOME Bugzilla;
  • Familiarizați-vă cu proiectul freedesktop;
  • Proiectul Ridley se concentrează pe aducerea GTK + la un nou nivel;
  • Vizitați site-ul dezvoltatorWorks Opensource. pentru a obține mai multe informații despre metodele, instrumentele și schimbările din proiectele de dezvoltare folosind tehnologii deschise și utilizarea acestora cu produsele IBM.
  • Utilizați inovații în următorul proiect deschis utilizând software-ul de testare IBM. disponibile pentru descărcare și pe DVD.






Trimiteți-le prietenilor: